matlab保存图片的几种方式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
matlab保存图⽚的⼏种⽅式最近在写毕业论⽂, 需要保存⼀些⾼分辨率的图⽚. 下⾯介绍⼏种MATLAB保存图⽚的⽅式.
⼀. 直接使⽤MATLAB的保存按键来保存成各种格式的图⽚
你可以选择保存成各种格式的图⽚, 实际上对于⼀般的图⽚要求⽽⾔, 该⽅法已经⾜够了.
⼆. 使⽤saveas函数
该函数实际上类似于 “另存为” 的选项,并且忽略图⽚的背景⼤⼩等等,按照默认的属性存储.
⼀般格式为为
saveas(fig, filename, formattype)
clear
clc
x = 0:0.01:2*pi;
y = sin(x);
plot(x, y)
xlabel('x')
ylabel('y')
title('y = Sin(x)')
saveas(gcf, 'test', 'png')
这的可选项有png, jpg, bmp等等, 以及⽮量图格式, eps, svg, pdf等等.
三. 使⽤imwrite函数
imwrite 实际上是保存⼀个描述图⽚的数组, 使⽤的⼀般格式为imwrite(A, filename)
clear
clc
x = 0:0.01:2*pi;
y = sin(x);
plot(x, y)
xlabel('x')
ylabel('y')
title('y = Sin(x)')
f = getframe(gcf);
imwrite(f.cdata, 'test.png');
该函数可以⽤于保存为png, jpg, bmp等等格式, 但是不可以保存为eps, svg, pdf 等⽮量图格式.
该函数还可以⽤于保存gif.
clear
clc
n = 1:10;
nImages = length(n);
x = 0:0.01:1;
im = cell{nImages, 1};
figure;
for idx = 1:nImages
y = sin(2*pi*x*idx);
plot(x,y,'LineWidth',3)
title(['y = sin(2n\pix), n = ' num2str(n(idx)) ])
drawnow
frame = getframe(gcf);
im{idx} = frame.cdata;
end
close;
filename = 'test.gif';
for idx = 1:nImages
[A,map] = rgb2ind(im{idx},256);
if idx == 1
imwrite(A,map,filename,'gif','LoopCount',Inf,'DelayTime',1);
else
imwrite(A,map,filename,'gif','WriteMode','append','DelayTime',1);
end
end
四. 使⽤ printf 函数clear
clc
x = 0:0.01:2*pi;
y = sin(x);
plot(x, y)
xlabel('x')
ylabel('y')
title('y = Sin(x)')
printf(gcf,'-dpng','test.png') 。