中值濾波時K = filter2(fspecial('average',3),img)/255,原因


 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM