在寫程序的過程中,使用saveas保存的圖像不符合我的要求,於是在網上尋找解決途徑。看到下面的這篇文章,說的很透徹。作者自己理解的很好,表達的也清楚。轉載過來,希望對更多的朋友有幫助。
matlab中imwrite和saveas的區別
matlab中saveas(handle,['目錄','文件名'])
如果只有一幅圖,handle設爲gcf
如果有多副,handle需單獨設置
matlab中imwrite(image_data,['directory\','filename'])
需要與getframe連用
兩個命令都可以用來保存圖像,區別在於
1、背景色:saveas保存的圖像 背景色自動設置爲白色,imwrite保存圖像爲所見即所得
2、圖像大小: saveas無視你設置的圖像大小,按默認保存,imwrite保存所見即所得
contrast example:在當前目錄下image文件夾下找到兩個圖像,對比一下
clear
clc
x=0:pi/100:2*pi;
y=sin(x);
h=plot(x,y); % h爲plot線的句柄handle
set(gcf,'position',[80,100,400,600])
% 將圖像設置爲距屏幕左下角 [80,100]像素
% 圖像大小設置爲400*600像素
set(gcf,'color',[1,1,1]) % 背景色設置爲白色
mkdir image
% 在當前文件夾下新建image文件夾,如果已存在會warning,不影響運行
% ========================
saveas(gcf,['image\','test1.jpg'])
% ========================
f=getframe(gcf);
imwrite(f.cdata,['image\','test2.jpg'])
%% 也可以像下面這樣用
% [X,map]=getframe(gcf);
% imwrite(X,'image\test2.jpg')