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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
7 o0 M# v' ?+ F1 M" \5 R( A6 ~
一次,在一篇paper上看到一张图,可惜里面的曲线数据没有提供。- W7 K6 U1 `! V, Q9 S
那么如何利用这张图,自己获取数据呢?
1 w1 K5 f" V" H" h2 h7 n! A比如有下面这么一张图,我们要用鼠标取得曲线的数值,并记录下来:5 U7 }; |$ Y/ v7 P# t2 U6 d

- N0 G8 m0 ~5 a7 u4 nclear all;! O* m" m/ C* u  E/ e; I
clc;
9 L9 q# T6 e# fy=imread('./input.JPG'); %读取该图6 e* V/ m+ y9 e' \6 B
imshow(y); %显示该图4 Q. D. i9 S' M3 R# w
set(gcf,'outerposition',get(0,'screensize')); %使该图显示最大化,便于取点
9 X' \2 l5 r) p, |% j& G/ a7 q
3 [8 N( v. s" Y[x0,y0] = ginput;  %利用鼠标取点,按回车键结束。
* K6 ~+ l8 `+ k& ?# V%这个时候可以顺序点取图中坐标轴的,左下,左上,右上,右下四个点。
& z, q9 I0 u: c; K- c( c" P( X/ p; @7 i& \. H
%存取角点坐标信息
1 M) M. Q5 A% E; m0 q; @save corner.mat x0 y0
+ [$ j) x  Z, ^' a3 r" X" \
/ N1 P1 ?9 {- G) M8 m& S4 N8 ^%开始撷取其中一条实线上的点,按你需要的精度,点取任意多的点,回车结束
; R0 ?& u; X4 S3 |[x1,y1] = ginput;. d: ^( a" L8 V4 Y2 m. b: d! {5 y
: ]# S1 X2 ]9 E& H/ X. z/ {
! U4 |0 N3 K. P- u. f
%存取曲线1的点源信息. Y3 n9 P0 b0 }, ^$ D  H" `% O
save line1.mat x1 y1) R" x1 |  }7 Y5 }9 H
" [+ s# Y6 g: |5 @2 w- N, l/ d
%其余曲线类推
' g) u& P( q  h' U1 f6 v+ N2 X. T6 g
%重画5 i5 T4 Q9 i$ X4 ~. X
%因为屏幕坐标是从左上角为坐标原点开始的,需要做些变换! i/ U3 A" C8 D4 p  C
%四个角点对应的坐标为(0,0) (0,4),(8,4),(8,0)
/ R0 y) F. `& G( s3 Q$ ?- ~x1 = (x1-min(x0))*8.0/(max(x0)-min(x0));; c; d) ^! w4 Q/ Y# W9 {) D
y1 = (y1-max(y1))*4.0/(min(y0)-max(y0));
# a' q4 G8 ~, ^" Cplot(x1,y1,'k.','Markersize',5);
& Z4 k# _7 J! s9 t& j0 [axis equal;
/ F4 V$ f2 B& a# paxis([0 8 0 4]);" B0 f7 A& T; a% L
set(gcf,'outerposition',get(0,'screensize'));
  _% `" g2 T( z3 Z" I0 w4 {- V

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-4 04:04 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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