( 二 )影象的空間域增強_椒鹽高斯噪聲_空域均值中值濾波
1,實驗原理
影象增強是數字影象處理的基本內容之一,其目的是根據應用需要突出影象中的某些“有用”資訊,削弱或去除不需要的資訊,以改善影象的視覺效果,或突出影象的特徵,便於計算機處理。影象增強可以在空間域進行,也可以在頻率域中進行。
空間域濾波主要利用空間模板進行,如3*3,5*5模板等,一般來說,使用大小為m×n 的濾波器對大小為M×N 的影象f進行空間濾波,可表示成:
其中,m=2a+1, n=2b+1, w(s,t)是濾波器係數,f(x,y)是影象值
均值濾波器是一種空間平滑濾波器,它是對包含噪聲的影象上的每個畫素點,用它鄰域內畫素的平均值替代原來的畫素值。例如,採用一個3×3的模板,待處理的畫素為f(i,j),則處理後圖像對應的畫素值為g(i-1,j+1)
g(i,j)=1/9*(f(i-1,j-1)+f(i-1,j)+f(i-1,j+1)+f(i,j-1)+f(i,j)+f(i,j+1)+f(i+1,j-1)+f(i+1,j)+f(i+1,j+1));
中值濾波器也是一種空間平滑濾波器,它是對以影象畫素點為中心的一個滑動視窗內的諸畫素灰度值排序,用中值代替視窗中心畫素的原來灰度值,因此它是一種非線性的影象平滑法。
2,實驗要求
對原影象分別加入高斯噪聲、椒鹽噪聲
利用鄰域平均法,分別採用3´3,5´5模板對加噪聲影象進行平滑處理,顯示原影象、加噪影象和處理後的影象
利用中值濾波法,分別採用3´3,5´5模板對加噪聲影象進行去噪處理,顯示原影象、加噪影象和處理後的影象
3,實驗過程和結果
clc; clear; close all; I = imread('test3.gif','gif'); %自己設定路徑 imshow(I); subplot(5,4,1); imshow(I); title('原圖'); G1 = imnoise(I,'gaussian',0.02); subplot(5,4,2); imshow(G1); title('加入高斯噪聲'); G2 = imnoise(I,'salt & pepper',0.05); subplot(5,4,3); imshow(G2); title('加入椒鹽噪聲'); G3 = imnoise(I,'speckle',0.04); subplot(5,4,4); imshow(G3); title('均勻分佈的隨機噪聲'); H1 = fspecial('average',[3,3]); G331 = imfilter(I,H1); subplot(5,4,5); imshow(G331); title('原圖3*3均值濾波'); G332 = imfilter(G1,H1); subplot(5,4,6); imshow(G332); title('高斯噪聲3*3均值濾波'); G333 = imfilter(G2,H1); subplot(5,4,7); imshow(G333); title('椒鹽噪聲3*3均值濾波'); G334 = imfilter(G3,H1); subplot(5,4,8); imshow(G334); title('均勻分佈的隨機噪聲3*3均值濾波'); H2 = fspecial('average',[5,5]); G551 = imfilter(I,H2); subplot(5,4,9); imshow(G331); title('原圖5*5均值濾波'); G552 = imfilter(G1,H2); subplot(5,4,10); imshow(G552); title('高斯噪聲5*5均值濾波'); G553 = imfilter(G2,H2); subplot(5,4,11); imshow(G553); title('椒鹽噪聲5*5均值濾波'); G554 = imfilter(G3,H2); subplot(5,4,12); imshow(G554); title('均勻分佈的隨機噪聲5*5均值濾波'); K331 = medfilt2(I,[3,3]); subplot(5,4,13); imshow(K331); title('原圖3*3中值濾波'); K332 = medfilt2(G1,[3,3]); subplot(5,4,14); imshow(K332); title('高斯噪聲3*3中值濾波'); K333 = medfilt2(G2,[3,3]); subplot(5,4,15); imshow(K333); title('椒鹽噪聲3*3中值濾波'); K334 = medfilt2(G3,[3,3]); subplot(5,4,16); imshow(K334); title('均勻分佈的隨機噪聲3*3中值濾波'); K551 = medfilt2(I,[5,5]); subplot(5,4,17); imshow(K551); title('原圖5*5中值濾波'); K552 = medfilt2(G1,[5,5]); subplot(5,4,18); imshow(K552); title('高斯噪聲5*5中值濾波'); K553 = medfilt2(G2,[5,5]); subplot(5,4,19); imshow(K553); title('椒鹽噪聲5*5中值濾波'); K554 = medfilt2(G3,[5,5]); subplot(5,4,20); imshow(K554); title('均勻分佈的隨機噪聲5*5中值濾波');
4,實驗結果
採用鄰域平均法即均值濾波對高斯噪聲比較有效,但造成一定的模糊,鄰域越大,模糊越嚴重。但均值濾波不能很好地處理椒鹽噪聲。
採用中值濾波法,不適用於去除高斯噪聲,而且造成影象模糊嚴重。但可以很好的抑制椒鹽噪聲,3*3模板處理過的影象接近原影象,但模板增大即鄰域擴大,加強去噪聲能力的同時,使影象模糊嚴重。
最後附上實驗原圖