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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
, i1 Y2 F* j: O: ^) d1 H) w
一次,在一篇paper上看到一张图,可惜里面的曲线数据没有提供。
- r% h1 i: B4 c$ d* s6 u2 t那么如何利用这张图,自己获取数据呢?
/ P4 c# @$ {, x3 A& w比如有下面这么一张图,我们要用鼠标取得曲线的数值,并记录下来:
) a1 _1 K5 P8 @' s5 R: O
, b, E2 X4 V$ f. yclear all;) R9 p' @0 M" x0 P' ]* M) i# H
clc;
; ~2 w! y  T4 o8 `. J% T* [y=imread('./input.JPG'); %读取该图3 B1 w6 f( Y2 b7 V# L
imshow(y); %显示该图, ]3 Z# _1 ]: F7 q+ W. j3 w* c, j$ ~9 w
set(gcf,'outerposition',get(0,'screensize')); %使该图显示最大化,便于取点
* \. A$ A  Q8 Y$ O! K6 V7 r( T: r. ]& t2 A5 H8 r& m8 t$ |
[x0,y0] = ginput;  %利用鼠标取点,按回车键结束。! [: Y1 L( Z0 `5 o) p! I
%这个时候可以顺序点取图中坐标轴的,左下,左上,右上,右下四个点。
  L3 C9 Z" W% {$ _/ N9 D
$ V( C, F: j: P! F9 A# _$ S%存取角点坐标信息) L4 a1 x4 \% k$ N
save corner.mat x0 y06 l+ p7 l3 }. e# E* p. ^, Z

& B" U7 \7 f" ^0 Y9 D% G$ _. Q/ J%开始撷取其中一条实线上的点,按你需要的精度,点取任意多的点,回车结束
; U+ H9 w; R+ z+ u- @" r[x1,y1] = ginput;
8 h3 a1 a# _+ N$ V7 L9 ?3 `5 g9 }* e

  D- p& l% W# D+ V%存取曲线1的点源信息
" Z3 \' T; l* C# n$ Xsave line1.mat x1 y1
2 t# h' I2 y2 K8 ?9 z# j0 j7 C% m0 X! p0 p
%其余曲线类推% j9 J9 ?* D, O3 {" h& i0 I
4 u0 Q0 R) L2 V  Z
%重画
! Y9 [, |) H) P+ a: J7 p1 u: C- u- [%因为屏幕坐标是从左上角为坐标原点开始的,需要做些变换% [2 B8 M* B1 }' ~& N- E1 F
%四个角点对应的坐标为(0,0) (0,4),(8,4),(8,0)
5 o: P  A9 H; C2 t' sx1 = (x1-min(x0))*8.0/(max(x0)-min(x0));
, ^$ B1 B' _( K; A1 q; o! ]y1 = (y1-max(y1))*4.0/(min(y0)-max(y0));' `8 H2 I4 Z$ @& p3 T
plot(x1,y1,'k.','Markersize',5);1 G' e! T; m& N% y4 Q9 u
axis equal;% A6 T( L# u: A/ g5 a6 ]3 v
axis([0 8 0 4]);. w2 u5 Q+ t$ B6 m" M% e
set(gcf,'outerposition',get(0,'screensize'));! x4 [0 H: p1 i7 W" F$ |

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-6 13:15 , Processed in 0.156250 second(s), 26 queries , Gzip On.

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

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

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