爲何有些圖像在顯示前要除以255?(zhuan)

imshow是用來顯示圖片的,如
>> I = imread('moon.tif');
>> figure,imshow(I);
而有時爲了數據處理,要把讀取的圖片信息轉化爲更高的精度,
>> I = double(imread('moon.tif'));
爲了保證精度,通過了運算的圖像矩陣I其數據類型會從unit8型變成double型。若是直接運行imshow(I),咱們會發現顯示的是一個白色的圖像。這是由於imshow()顯示圖像時對double型是認爲在0~1範圍內,即大於1時都是顯示爲白色,而imshow顯示uint8型時是0~255範圍。而通過運算的範圍在0-255之間的double型數據就被不正常得顯示爲白色圖像了。
有兩個解決方法:
ui


1> imshow(I/256); -----------將圖像矩陣轉化到0-1之間
2> imshow(I,[]); -----------自動調整數據的範圍以便於顯示.
從實驗結果看兩種方法都解決了問題,可是從顯示的圖像看,第二種方法顯示的圖像明暗黑白對比的強烈些!
spa

相關文章
相關標籤/搜索