2016-03-16 134 views
2

我想知道如何在matlab中保存由imshow創建的圖像。下面的代碼使用imshow函數,並指定了最小和最大參數 - 我如何直接將此應用於圖像本身,而不是指定Matlab來顯示它?imshow顯示比imwrite不同的輸出

maxBlur=3; 

a = imshow(fDmap,[0 maxBlur]); 

imwrite(a, 'img.png'); 

寫入文件會產生與imshow顯示內容不同的輸出。

任何人都可以建議如何獲得從imshow輸出保存爲圖像?

回答

4

要爲imwrite(類似於你爲imshow做了什麼)指定上下強度極限,你將要使用第二個輸入mat2gray調整與imwrite拯救它之前的圖像的對比度。

imwrite(mat2gray(fDmap, [0 maxBlur]), 'img.png'); 

如果你從字面上希望你與imshow看到的的圖像,你可以使用saveas採取截圖。這可能會比先前的方法更低的分辨率,並且還會在圖像周圍包含空白。

imshow(fDmap, [0 maxBlur]); 
saveas(gcf, 'img.png'); 

注意:你傳遞給imwrite在您的文章中a變量是一個MATLAB graphics handle to an image object用來操縱渲染圖像。 imwrite預計圖像數據矩陣不作爲圖形句柄。