|
|
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 \
|
|