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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

. {  P* Y% C6 A一次,在一篇paper上看到一张图,可惜里面的曲线数据没有提供。$ C$ I& \) U  Q. Q. \
那么如何利用这张图,自己获取数据呢?
5 ]& w- z/ X) b比如有下面这么一张图,我们要用鼠标取得曲线的数值,并记录下来:
$ S- O& |. u  y : z2 t7 R1 z! r/ ?
clear all;2 H  r6 z: Z  T4 v4 V" K
clc;+ Z$ g, }% u) I6 ^
y=imread('./input.JPG'); %读取该图& \! C) R% m& e! ^/ J
imshow(y); %显示该图4 A# k0 s, ^1 `  X
set(gcf,'outerposition',get(0,'screensize')); %使该图显示最大化,便于取点
9 V4 q# s# |$ \; a$ H# i. W  N! e' M, ~- m
[x0,y0] = ginput;  %利用鼠标取点,按回车键结束。
7 T1 ~& h- g9 |: p# a0 n, ~/ ?%这个时候可以顺序点取图中坐标轴的,左下,左上,右上,右下四个点。
5 w2 A6 H# S9 B3 P
: B5 w5 ^' L: G: ?4 B% R%存取角点坐标信息
0 d( t8 F3 `! L9 nsave corner.mat x0 y0
7 l$ n( l' m: u9 z( N+ m5 |6 {! A
%开始撷取其中一条实线上的点,按你需要的精度,点取任意多的点,回车结束0 p6 M- L5 W2 `; J; L
[x1,y1] = ginput;
& H( _6 }! H  s% @7 ^
% B4 a# d: f& j- |. Z" c- p3 W 2 q/ F' c; E9 ]
%存取曲线1的点源信息1 ?  E( ~/ E, R& |' T" ~1 D) X
save line1.mat x1 y1
& K. i7 E/ `5 D. z+ a. Z* ~# q
8 X" [6 w$ \% G+ ?' J& Z%其余曲线类推/ ^0 O; T: n  k6 f+ i( ~6 _8 ~6 x
2 O5 |  h. e, d+ L% @1 r/ |6 M
%重画: p* j4 c- L& b5 x
%因为屏幕坐标是从左上角为坐标原点开始的,需要做些变换
: u+ ~& v1 _! E5 T%四个角点对应的坐标为(0,0) (0,4),(8,4),(8,0)
' C3 I/ L- ^1 P2 d; p# e- D0 Px1 = (x1-min(x0))*8.0/(max(x0)-min(x0));
3 P2 \" O8 y5 K" r: ~8 py1 = (y1-max(y1))*4.0/(min(y0)-max(y0));
3 k0 I, k7 [$ {" Zplot(x1,y1,'k.','Markersize',5);
1 _( X$ _) ?7 {+ C& paxis equal;- ?3 a, ^$ \" W0 V4 i/ {
axis([0 8 0 4]);6 g$ \2 [& ^8 o7 `
set(gcf,'outerposition',get(0,'screensize'));
" w6 l+ m7 }* f( g) i

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 02:46 , Processed in 0.156250 second(s), 27 queries , Gzip On.

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

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

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