matlab图片数据读取总结

2022-10-21 13:26:18   文档大全网     [ 字体: ] [ 阅读: ]

#文档大全网# 导语】以下是®文档大全网的小编为您整理的《matlab图片数据读取总结》,欢迎阅读!
读取,总结,数据,matlab,图片

1: 若fig图像文件存在,而其数据丢失,可直接使用函数从fig文件中将数据导出

①open('d:\filename.fig');% filename是文件名

% 取出曲线的handle,这里gca表示当前图形的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格式的其他常见图片格式,如.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'));

请教各位大虫,我用Matlab计算然后用Plot命令画了一个图,但是我想把图上的数据导出来到origin处理,但是自己对M不太了解,请问最简单的方法怎么把数据导出来,txt, worksheet, Xls, csv等等都可以。

用save命令,可以直接将变量保存为文本文件。

如:

x = 0 : pi / 100 : 2 * pi;

y = sin( x );

save( 'test.txt', 'x', 'y', '-ASCII' )

也可以直接导出到excel。

如:

d = {'Time', 'Temp'; 12 98; 13 99; 14 97};

xlswrite('climate.xls', d, 'Temperatures', 'E1');

本文来源:https://www.wddqxz.cn/73c4bc3f580216fc700afd4e.html

相关推荐