影象顯示—關於MATLAB裡顯示.mat形式的影象
直接貼程式碼
clc
close all
load('F:\遙感資料\Indian_pines_class.mat')
figure,imagesc(indian_pines_class)
colorbar,title('show by imagesc in figure')
這裡顯示用的imagesc()顯示彩色影象,出來的是如下彩色圖
點選figure圖中的編輯—顏色圖—工具—標準顏色圖,就可以可以改變顏色型別
另外,點選顏色圖中的顏色可以改成自己喜歡的顏色哦。
如果我們用imshow()來顯示的話,出來是黑白影象:
而用image()顯示出來的圖是這樣的:
至於為什麼是這樣的,答案在這裡:
image:將double型資料取整(正數取整就是把小數部分舍掉)然後使用直接對映的方法按照顏色表顯示。
imagesc:這個函式很好,會對資料進行縮放再顯示,也就是把顯示範圍自動設定成[min(I(:)) max(I(:))],也就是線性對映。
imshow:這個函式呼叫方式不同,顯示效果也不同,如下:
imshow(I):直接呼叫,因為當影象為double型時imshow函式會把顯示範圍設定成[0 , 1],這樣小於0的就變成黑色了,大於1的就變成白色了,所以處理不當就會出現全白的情況。
imshow( I/(max(I(:))):針對直接呼叫imshow函數出現的問題,用max(I(:) )
imshow(uint8(I)):這種方式把I轉化成uint8,負數會被歸零,超過255的被置為255,而且小數也會被round(四捨五入),當引數為uint8型時,imshow函式把顯示範圍設定成[0,255],這樣影象雖然也能顯示出來,但與原始資料相比來說,丟掉很多資訊,但有時可能卻是想要的結果,這個要看具體情況。
imshow(I,[ ]):這種方式就是把imshow的顯示範圍設定成[min(I(:)) max(I(:))],也就是線性對映,相當於imagesc(I),colormap(gray(256))
以上內容為個人總結,歡迎批評指正