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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
# g& n" z1 ^4 g8 d9 `7 s; R: R4 H& _
一次,在一篇paper上看到一张图,可惜里面的曲线数据没有提供。0 r* w" d" t  Y7 b0 O  o- L6 s' r
那么如何利用这张图,自己获取数据呢?" w( B3 h- a0 I; s. P0 E* {
比如有下面这么一张图,我们要用鼠标取得曲线的数值,并记录下来:# e. |$ u& \/ a* c
8 E! E  N% ?- N1 E7 J
clear all;
% Q0 i0 D5 S  {clc;
. m; h2 y* m/ ?2 v& Y: G3 ]y=imread('./input.JPG'); %读取该图
: K9 t! m* G2 R8 `imshow(y); %显示该图4 u3 i; x. L3 V3 y
set(gcf,'outerposition',get(0,'screensize')); %使该图显示最大化,便于取点
8 m$ f0 k: Z: H$ W4 T0 u- R& W% j$ P/ `2 C
[x0,y0] = ginput;  %利用鼠标取点,按回车键结束。9 d& A" }; V; L/ ]; v' J& I
%这个时候可以顺序点取图中坐标轴的,左下,左上,右上,右下四个点。
/ J2 |  m6 ~( t& i5 f
/ Y9 O( A+ b8 L/ z  G+ \1 r%存取角点坐标信息
$ F, u8 Y$ i0 e# {, O* ?save corner.mat x0 y0) l8 C% {4 {/ w8 h  v0 n
: a$ I9 j" G6 N! M; ]
%开始撷取其中一条实线上的点,按你需要的精度,点取任意多的点,回车结束
; a; {1 S# d: ~  V6 Y# @5 E[x1,y1] = ginput;$ n2 z2 d% O! F: _( Y$ r) N  W

: M& [3 G, X% I; G( p4 K! _ . i# v# [8 i- n9 g" z2 u* h9 u
%存取曲线1的点源信息& z, V! s3 A; {1 e5 M0 S$ \
save line1.mat x1 y1* A7 \2 _. p2 M
: F5 m0 U, p2 h/ R$ |
%其余曲线类推
3 D4 D/ y: e- e2 K* f4 D
( j5 c* F, F6 O%重画" ]( {  C! a5 Q
%因为屏幕坐标是从左上角为坐标原点开始的,需要做些变换
) A; A% u$ S# l# \%四个角点对应的坐标为(0,0) (0,4),(8,4),(8,0)
& u5 R9 |! ~: C$ @' Ax1 = (x1-min(x0))*8.0/(max(x0)-min(x0));5 T3 l+ P; N8 L6 s- W: F' J
y1 = (y1-max(y1))*4.0/(min(y0)-max(y0));
" U* E9 }( x& Y# i7 Lplot(x1,y1,'k.','Markersize',5);
! T4 f4 B8 l" c5 }. }axis equal;# G) u+ m% h1 c0 Q
axis([0 8 0 4]);5 b; `* i4 r5 k( T% h1 K# e% U( M
set(gcf,'outerposition',get(0,'screensize'));) C! `" K$ d/ [$ O  \

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 01:31 , Processed in 0.156250 second(s), 26 queries , Gzip On.

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

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

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