大家好,又见面了,我是你们的朋友全栈君。
最近在写毕业论文, 需要保存一些高分辨率的图片. 下面介绍几种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(2npix), 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’)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/194490.html原文链接:https://javaforall.cn