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
版權宣告:本文為博主原創文章,轉載請附上博文連結!