声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1945|回复: 0

[绘图技巧] Matlab手动点取图形曲线数据并重画

[复制链接]
发表于 2016-4-29 09:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
一次,在一篇paper上看到一张图,可惜里面的曲线数据没有提供。
那么如何利用这张图,自己获取数据呢?
比如有下面这么一张图,我们要用鼠标取得曲线的数值,并记录下来:

1.jpg
  1. <font color="#000000">clear all;
  2. clc;
  3. y=imread('./input.JPG'); %读取该图
  4. imshow(y); %显示该图
  5. set(gcf,'outerposition',get(0,'screensize')); %使该图显示最大化,便于取点

  6. [x0,y0] = ginput;  %利用鼠标取点,按回车键结束。
  7. %这个时候可以顺序点取图中坐标轴的,左下,左上,右上,右下四个点。

  8. %存取角点坐标信息
  9. save corner.mat x0 y0

  10. %开始撷取其中一条实线上的点,按你需要的精度,点取任意多的点,回车结束
  11. [x1,y1] = ginput;


  12. %存取曲线1的点源信息
  13. save line1.mat x1 y1

  14. %其余曲线类推

  15. %重画
  16. %因为屏幕坐标是从左上角为坐标原点开始的,需要做些变换
  17. %四个角点对应的坐标为(0,0) (0,4),(8,4),(8,0)
  18. x1 = (x1-min(x0))*8.0/(max(x0)-min(x0));
  19. y1 = (y1-max(y1))*4.0/(min(y0)-max(y0));
  20. plot(x1,y1,'k.','Markersize',5);
  21. axis equal;
  22. axis([0 8 0 4]);
  23. set(gcf,'outerposition',get(0,'screensize'));</font>
复制代码
2.jpg
转自:http://blog.sina.com.cn/s/blog_5def5a660101332c.html
回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-28 14:20 , Processed in 0.093946 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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