1. 程式人生 > >matlab 儲存影象解析度改變問題(saveas、imwrite、print)

matlab 儲存影象解析度改變問題(saveas、imwrite、print)

總結: 儲存圖片使用:‘border’屬性,getframe,imwrite。 注意cdata大小寫
            繪製資料表格等,用saveas

(太晚不想放圖了,程式碼執行一遍就知道啥意思了)

clc;clf
img=imread('./seq/000.bmp');
h1=figure(1)
h2=imshow(img)
 
whos img
whos h1
whos h2
 
%saveas(img,'./aaa.bmp'); 錯誤,img是一個矩陣
saveas(h1,'./aaa.bmp'); %儲存的是figure視窗,有空白則會把空白也儲存下來;圖片解析度也變了
saveas(h2,'./bbb.bmp'); %同上
imwrite(img,'./ccc.bmp');  %可直接儲存,尺寸與解析度均與原圖一直
 
data=getframe(figure(1));
imwrite(data.cdata,'./ddd.bmp'); %儲存的figure視窗,含有空白(因為figure中含有空白)
imwrite(h2.CData,'./fff.bmp')    %直接儲存的img,尺寸與解析度不變
 
figure(2)
h3=imshow(img,'border','tight');  %figure視窗中,圖片四周不留空白
f=getframe(figure(2))
imwrite(f.cdata,'./ggg.bmp'); %儲存的figure視窗,尺寸與解析度不變
imwrite(h3.CData,'./hhh.bmp')    %直接儲存的img,尺寸與解析度不變 
 
%總結: 儲存圖片使用:‘border’屬性,getframe,imwrite。 注意cdata大小寫
%       繪製資料表格等,用saveas
%       print也會改變解析度  用法:
%       print(figure(3), strcat( './sauvegarde/', 'cross_', number, '.png' ), '-dpng', '-r150');
--------------------- 
作者:Lee_Dk 
來源:CSDN 
原文:https://blog.csdn.net/Lee_Dk/article/details/81879885 
版權宣告:本文為博主原創文章,轉載請附上博文連結!