1. 程式人生 > >( 二 )影象的空間域增強_椒鹽高斯噪聲_空域均值中值濾波

( 二 )影象的空間域增強_椒鹽高斯噪聲_空域均值中值濾波

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模板處理過的影象接近原影象,但模板增大即鄰域擴大,加強去噪聲能力的同時,使影象模糊嚴重。

最後附上實驗原圖