imshow是用來顯示圖片的,如
>> I = imread('lena.jpg');
>> figure,imshow(I);正常
為了把讀取的圖片信息轉化為更高的精度, 加上double
>> I = double(imread('moon.tif'));
figure,imshow(I);異常 全白色
此時.如果直接運行imshow(I),我們會發現顯示的是一個白色的圖像.這是因為imshow()顯示圖像時對double型是認為在0~1范圍內, 大於1的值,都認為是1 , 而imshow顯示uint8型時是0~255范圍.而經過運算的范圍在0-255之間的double型數據就被不正常得顯示為白色圖像了.
所以除以256
imshow(I/256); -----------將圖像矩陣轉化到0-1之間
或者
imshow(I,[]); -----------自動調整數據的范圍以便於顯示.
類似除以256
或者采用imfilter函數進行濾波 Img1=imfilter(img,fspecial('average',3)) ,不用除以256