|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
7 N, n! `6 w# m; E) S一次,在一篇paper上看到一张图,可惜里面的曲线数据没有提供。
: n1 c. |: z$ i/ [; l那么如何利用这张图,自己获取数据呢?7 G9 t# @; i, h* j. r
比如有下面这么一张图,我们要用鼠标取得曲线的数值,并记录下来:
; O( z8 G- k6 l( M0 O7 T
! h1 P$ m/ b8 N0 |( X V9 pclear all;
: x* s8 r& E* @clc;+ F! b7 O3 _. t- g
y=imread('./input.JPG'); %读取该图
4 C g' i% m) D; Pimshow(y); %显示该图
0 u4 Y C1 t- hset(gcf,'outerposition',get(0,'screensize')); %使该图显示最大化,便于取点
2 m) C3 l7 g. ~# @; u$ ?' i$ ~) }% _; y0 \- \: X( c# Y7 m6 j9 c5 q) m
[x0,y0] = ginput; %利用鼠标取点,按回车键结束。' x: ], G& a. x# q( s
%这个时候可以顺序点取图中坐标轴的,左下,左上,右上,右下四个点。& F; k6 ^- q6 B
. h9 Y ]# ^, j: z/ v3 L. X%存取角点坐标信息
( L( N5 \9 L# F4 j/ nsave corner.mat x0 y0. X( s* s) i# [" o$ Z8 t
) P. K) N1 `" D. j7 d6 K; s: L- F%开始撷取其中一条实线上的点,按你需要的精度,点取任意多的点,回车结束
- S* y% O+ x) I5 Z+ R! M2 w[x1,y1] = ginput;7 r/ `9 g% A/ x" t; N
0 ~: ~; _5 `' {8 X- V
' a9 c0 X. D! ~4 l3 \9 d$ f2 v
%存取曲线1的点源信息
# B4 l1 i S& nsave line1.mat x1 y1
+ u0 }8 c7 i) a% Q+ N. ]. _( K" X% R/ m* X
%其余曲线类推 X& M! C2 c6 p6 l# ?
% }5 u3 d) q6 X) D. v% q+ L%重画
0 r! A' a$ N: D7 O, O: y, e%因为屏幕坐标是从左上角为坐标原点开始的,需要做些变换5 ^1 o. m( i9 A3 `
%四个角点对应的坐标为(0,0) (0,4),(8,4),(8,0)/ S$ d4 l# L# L l1 r
x1 = (x1-min(x0))*8.0/(max(x0)-min(x0));5 h/ g/ p8 ?# k: R
y1 = (y1-max(y1))*4.0/(min(y0)-max(y0));/ @ Z! E5 {1 G T% r; I
plot(x1,y1,'k.','Markersize',5); |% h, \+ }) D3 P
axis equal;5 d/ C/ [2 N: Z' d
axis([0 8 0 4]);
- w ?4 m: a4 I; W% Tset(gcf,'outerposition',get(0,'screensize'));
$ Z4 E; S8 g. U \8 D# {, L+ A, h( r
|
|