之前的matlab学习中接触了各种图片的处理方式和算法函数,现在考虑的是如何保存和输出图片
matlab中的图片保存方式
参考:http://www.ilovematlab.cn/thread-296430-1-1.html
imwrite函数
imwrite函数是和imread函数配套的图片读取输出函数,写法和imread函数一样
imwrite(I,‘lena.jpg’)
需要注意的是在保存之前需要保存一个句柄
I=getimage(gcf)
但是问题在于imwrite函数保存的图片是已经定义过的图片
在以下代码中使用imwrite函数保存的并不是修改后的图片,而是修改之前的图片Y
clear;
clc;
X=imread(‘abc.bmp’);
Y=zeros(size(X));
figure,imshow(Y),hold on
max_len=0;
for k=1:length(lines)
xy=[lines(k).point1;lines(k).point2];
plot(xy(:,1),xy(:,2),‘LineWidth’,4,‘Color’,‘white’);
end
I=getimage(gcf);
imwrite(I,‘myphoto.jpg’)%保存图像为文件
就是说这样的办法会还原之前的处理,在这里不适合使用
saveas函数
saveas函数可以将指定figure中的图像或者simulink中的框图进行保存,相当于【文件】中的【另存为】,这样的功能更加适合我的需求
它有三种书写方式
saveas(gcf,[‘D:\保存的数据文件\方法1.png’])
saveas(gcf,[‘D:\保存的数据文件\方法2’,’.png’])
saveas(gcf,[‘D:\保存的数据文件’,‘方法3’,’.png’])
用saveas命令保存图片。
Matlab提供直接的saveas函数可以将指定figure中的图像或者simulink中的框图进行保存,相当于【文件】中的【另存为】。
saveas的三个参数:
(1)图形句柄,如果图形窗口标题栏是“Figure 3”,则句柄就是3。
(2)文件名。
(3)单引号字符串,指定存储格式。
printf
用法:print(图形句柄,存储格式,文件名);
图形句柄,如果图形窗口标题栏是“Figure 3”,则句柄就是3.用gcf可以获取当前窗口句柄。
指定存储格式。常用的有:
png格式:‚-dpng‘ (推荐这一种,与bmp格式一样清晰,文件也不大)
jpeg: ‚-djpeg‘(文件小,较清晰)
tiff: ‚-dtiff‘
bmp: ‚-dbitmap‘(清晰,文件极大)
gif: ‚-dgif‘(文件小但不清晰)
例如
font color="#000000" size=“2”>% print(figure_handle,fileformat,filename)
x=-pi:2*pi/300:pi;
y=sin(x);
plot(x,y);
%Matlab根据文件扩展名,自动保存为相应格式图片,另外路径可以是绝对也可以是相对
print(gcf,’-dpng’,‘abc.png’) %保存为png格式的图片到当前路径
注意:print函数必须紧跟在plot函数之后使用。