中值濾波:基於排序理論的一種能有效抑制噪聲的非線性信號處理技術。
方法:取含有基數(偶數會有半像素的差)個模板數據的滑動模板,對模板中的數據從小到大排序,取排在中間位置上的數據作為最終的處理結果。
matlab程序:
[height, width]=size(result2); x1=double(result2); x2=x1; n=3; for i=1:height-n+1 for j=1:height-n+1 c=x1(i:i+(n-1),j:j+(n-1)); e=c(1,:); for u=2:n e=[e,c(u,:)]; end m=median(e); x2(i+(n-1)/2,j+(n-1)/2)=m; end end imshow(uint8(x2));
對椒鹽噪聲的處理結果:
對高斯噪聲的處理結果:
由以上對兩種造聲濾波結果可以看出:
對於椒鹽噪聲,其只在畫面中部分點隨機出現,通過中值濾波,數組排序,其被污染的點排在邊上,中間為未被污染的點,將未被污染的點替代噪聲點,因此濾波效果很好,畫面的清晰度也基本保持;而對於高斯噪聲,由於高斯噪聲以隨機大小的幅值污染所有的點,無論怎樣濾波,得到的還是被污染的值,因此濾波效果不是特別好。