1. 程式人生 > >matlab 保存圖片的幾種方式

matlab 保存圖片的幾種方式

type 保存 get light gb2 方法 figure tex ram

最近在寫畢業論文, 需要保存一些高分辨率的圖片. 下面介紹幾種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)‘)
print(gcf,‘-dpng‘,‘test.png‘) 

  

matlab 保存圖片的幾種方式