找回密码
 注册
关于网站域名变更的通知
查看: 379|回复: 1
打印 上一主题 下一主题

Matlab手动点取图形曲线数据并重画

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-3-16 09:26 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
) c5 k) R: ]: L! B- ]. X) @& M( l
一次,在一篇paper上看到一张图,可惜里面的曲线数据没有提供。2 Y$ ~" P, J, M( ^* ?
那么如何利用这张图,自己获取数据呢?( t; u, m* V7 t1 h6 _- Z0 ]
比如有下面这么一张图,我们要用鼠标取得曲线的数值,并记录下来:
' }+ Z4 E4 a7 M/ V$ m
) |- P' T; V2 p5 \+ ~* d; Wclear all;1 |7 N1 R1 h& `( J; b/ d" o
clc;* q  {3 F7 _7 z- i9 @
y=imread('./input.JPG'); %读取该图
# N+ X/ G1 r3 i1 I  Limshow(y); %显示该图) X+ \! Z0 V- F/ w, x! \
set(gcf,'outerposition',get(0,'screensize')); %使该图显示最大化,便于取点
- w, f; b, \# i: }
( @8 Z  J, `- G( e  H: ]# k[x0,y0] = ginput;  %利用鼠标取点,按回车键结束。7 @. [  ?7 p: x0 r
%这个时候可以顺序点取图中坐标轴的,左下,左上,右上,右下四个点。
8 j% m; w  R  w0 Q. M% q! u# U& v
1 C6 w! `% S0 o, U) L%存取角点坐标信息: x/ h* K4 ?; ^) ?7 _; L* E/ N, X
save corner.mat x0 y0
# {: j, G4 P" R, ]3 Q! R. t
/ v# M0 }3 ~  p$ j7 d%开始撷取其中一条实线上的点,按你需要的精度,点取任意多的点,回车结束
+ x" M4 x, R+ T6 s; }' G& A[x1,y1] = ginput;, k% V1 [2 M* ?4 r/ V9 l

7 P- ]9 g7 Z5 E3 h% L
. d& e! ^5 R7 P& r  X" _%存取曲线1的点源信息
" F2 r+ H# I( f2 D, [4 ksave line1.mat x1 y1
% d3 o5 d1 ]6 V4 }
7 g1 B* _: Q3 [0 h%其余曲线类推
. c5 }' g- K9 D3 F4 G5 D0 a- ?
; ]) k# c5 @* t: s  Z%重画
5 f% |4 W8 x# h/ |%因为屏幕坐标是从左上角为坐标原点开始的,需要做些变换  @" {$ W/ o1 N8 K* X! T7 F
%四个角点对应的坐标为(0,0) (0,4),(8,4),(8,0)
6 t% X* f  n2 |3 H  Lx1 = (x1-min(x0))*8.0/(max(x0)-min(x0));9 u7 V5 N& }9 `; ?4 D
y1 = (y1-max(y1))*4.0/(min(y0)-max(y0));
# |3 Q0 ^6 n) B5 \plot(x1,y1,'k.','Markersize',5);
, D: i* |- G  Z' m# `! |( Z" Zaxis equal;5 a0 d' j$ q) g% s6 E/ e
axis([0 8 0 4]);
6 m0 p8 t  H7 vset(gcf,'outerposition',get(0,'screensize'));* N. \8 ?) w* {' q1 W$ a

该用户从未签到

2#
发表于 2020-3-16 16:40 | 只看该作者
Matlab手动点取图形曲线数据并重画
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-13 05:39 , Processed in 0.140625 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表