首页 Matlab手动点取图形曲线数据并重画[修订]

Matlab手动点取图形曲线数据并重画[修订]

举报
开通vip

Matlab手动点取图形曲线数据并重画[修订]Matlab手动点取图形曲线数据并重画[修订] z=imread('1.jpg'); imshow(z) I=imread('f:/1.jpg') imshow(I) 1: 若fig图像文件存在,而其数据丢失,可直接使用函数从fig文件中将数据导出 ?open('d:\filename.fig');% filename是文件名 % 取出曲线的handle,这里gca表示当前图形的CurrentAxes属性 % 如果图中有多条曲线,lh为一个数组 lh = findall(gca, 'type', 'l...

Matlab手动点取图形曲线数据并重画[修订]
Matlab手动点取图形曲线数据并重画[修订] z=imread('1.jpg'); imshow(z) I=imread('f:/1.jpg') imshow(I) 1: 若fig图像文件存在,而其数据丢失,可直接使用函数从fig文件中将数据导出 ?open('d:\filename.fig');% filename是文件名 % 取出曲线的handle,这里gca 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示当前图形的CurrentAxes属性 % 如果图中有多条曲线,lh为一个数组 lh = findall(gca, 'type', 'line'); % 取出x轴数据 xc = get(lh, 'xdata');%多条曲线,若取第i条线的数据,则xc=get(lh(i),'xdata') % 取出y轴数据 yc = get(lh, 'ydata'); %结果显示 xc %x轴数据矩阵 yc %y轴数据矩阵 解释: gcf 返回当前Figure对象的句柄值 gca返回当前axes对象的句柄值 gco返回当前鼠标单击的句柄值,该对象可以是除root对象外的 任意图形对象,并且Matlab 会把当前图形对象的句柄值存放在Figure的CurrentObject属性中。 2:若为非fig 格式 pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载 的其他常见图片格式,如.jpg,.png等等,可采取手动点击和程序取值等方式。 ?手动点击取值作图 clear all; clc; y=imread('d:\xx.png'); %读取该图 imshow(y); %显示该图 set(gcf,'outerposition',get(0,'screensize')); %使该图显示最大化,便于取点 [x0,y0] = ginput; %利用鼠标取点,按回车键结束。 %这个时候可以顺序点取图中坐标轴的,左下,左上,右上,右下四个点。 %存取角点坐标信息 save corner.mat x0 y0 %开始撷取其中一条实线上的点,按你需要的精度,点取任意多的点,回车结束 [x1,y1] = ginput; %存取曲线1的点源信息 save line1.mat x1 y1 %其余曲线类推 %存取曲线2的点源信息 [x2,y2] = ginput; save line2.mat x2 y2 %重画 %因为屏幕坐标是从左上角为坐标原点开始的,需要做些变换 根据实际修改为自己的坐 标 %四个角点对应的坐标为(0,0) (0,4),(8,4),(8,0) x1 = (x1-min(x0))*8.0/(max(x0)-min(x0)); y1 = (y1-max(y1))*4.0/(min(y0)-max(y0)); plot(x1,y1,'r-','Markersize',5);%修改线的属性设置 hold on; x2 = (x2-min(x0))*8.0/(max(x0)-min(x0)); y2 = (y2-max(y2))*4.0/(min(y0)-max(y0)); plot(x2,y2,'m-','Markersize',5);%修改线的属性设置 axis equal; axis([0 8 0 4]); set(gcf,'outerposition',get(0,'screensize')); 如果是彩图,则M为三维矩阵,可分解为三色二维矩阵: R=M(:,:,1) G=M(:,:,2) B=M(:,:,3) 处理后,显示为 :imshow(M1) [Z,cmap]=imread('lyl.jpg'); >> imshow(Z) >> axis on (3)提取图片中曲线的数据: 如图: 假设图片保存在D盘,图片名字为:一般图像.jpg,jpg格式。 打开matlab ,如下输入: >> y=imread('d:\一般图像.jpg'); %读取该图 >> imshow(y) %显示该图 >> set(gcf,'outerposition',get(0,'screensize')); %使该图显示最大化,便于取点 >> [x0,y0] = ginput; %利用鼠标取点,按回车键结束。这个时候应顺序点取图中坐标轴 左下,左上,右上,右下四个点。 >> [x1,y1] = ginput; %开始撷取其中一条实线上的点,按你需要的精度,点取任意多的点, 回车结束 %因为位图的屏幕坐标是从左上角为坐标原点开始的,需要 做些变换: >> x1= (x1-min(x0))*350/(max(x0)-min(x0))+375;%如果坐 标原点不为0,则需在该轴加上 上坐标轴数(此处为x轴加上375);350是图像X轴的标长(725-375=350);3.5*10^5是图像Y轴的标长(3.5*10^5-0=3.5*10^5) >> y1=(y1-max(y1))*3.5*10^5/(min(y0)-max(y0)); %y轴做同样的处理; >> plot(x1,y1,'k.','Markersize',5); %画图,设置为黑色的点图 >> axis([400,700,0,350000]);%定义坐标范围 >> set(gcf,'outerposition',get(0,'screensize')); %使该图显示最大化,便于观察 Matlab手动点取图形曲线数据并重画 比如有下面这么一张图,我们要用鼠标取得曲线的数值,并记录下来: clear all; clc; y=imread('./input.JPG'); %读取该图 imshow(y); %显示该图 set(gcf,'outerposition',get(0,'screensize')); %使该图显示最大化,便于取点 [x0,y0] = ginput; %利用鼠标取点,按回车键结束。 %这个时候可以顺序点取图中坐标轴的,左下,左上,右上,右下四个点。 %存取角点坐标信息 save corner.mat x0 y0 %开始撷取其中一条实线上的点,按你需要的精度,点取任意多的点,回车结束 [x1,y1] = ginput; %存取曲线1的点源信息 save line1.mat x1 y1 %其余曲线类推 %重画 %因为屏幕坐标是从左上角为坐标原点开始的,需要做些变换 %四个角点对应的坐标为(0,0) (0,4),(8,4),(8,0) x1 = (x1-min(x0))*8.0/(max(x0)-min(x0)); y1 = (y1-max(y1))*4.0/(min(y0)-max(y0)); plot(x1,y1,'k.','Markersize',5); axis equal; axis([0 8 0 4]); set(gcf,'outerposition',get(0,'screensize'));
本文档为【Matlab手动点取图形曲线数据并重画[修订]】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_321575
暂无简介~
格式:doc
大小:38KB
软件:Word
页数:6
分类:初中语文
上传时间:2017-10-22
浏览量:45