matlab 保存图片的几种方式
2018-05-16 17:44 ChangChun_He 阅读(76279) 评论(0) 编辑 收藏 举报最近在写毕业论文, 需要保存一些高分辨率的图片. 下面介绍几种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\')