前陣子想輸出一張圖片,沒有邊框的,無奈不知道如何搞,費了半天勁。今天發現原來可以通過設置figure的position屬性搞定。
在matlab的help中,搜索"Automatic Axes Resize",就可以看到調節坐標的幾個屬性。假設隨機生成一張圖片100*100,然后保存為png格式,且DPI=300。
imagesc(rand(100,100)); % generate a random image axis off % set off the axis set(gca, 'position', [0 0 1 1 ]); % the axis must be normalized print('-f1', '-r300', '-dpng','xxx.png'); % set the DPI
這樣就得到一張沒有邊框的圖片。
這是網上提供的一種解決方案,但是最終並沒有解決我的問題,因為保存圖片時總是大小有所改變,又經過半天的琢磨和墨跡,最終突發靈感,我保存圖像時,為什么一定要經過imagesc()顯示后保存,因為我有源圖像的矩陣信息,所有最后我通過先把矩陣轉化為圖像對應的灰度信息圖然后保存。
I_new=mat2gray(Img); figure, imshow(I_new); imwrite(I_new,'123.tif');
這樣保存后大小灰度均無變化