噪聲圖像的三種低通濾波演示系統

理想低通濾波器(ILPF):

二維理想低通濾波器的傳遞函數H(u,v)爲:

                               

式中:D_{0}爲理想低通濾波器的截止顆率,是一個規定非負的量,這裏理想是指小於等於D_{0}的題率可以完全不受影響地通過濾波器,而大於D_{0}的頻率則完全通不過,因此也叫截斷頻率。這種理想低通濾波器儘管在計算機中可模擬實現,但理想低通濾波器無使用實際的電子器件硬件實現這種從1到0陡峭突變的截斷頻率。是從頻率平面上點(u,v)到頻率平面原點(0,0)的距離。

巴特沃斯低通濾波器(BLPF):

n階巴特沃斯低通濾波器(BLPE),它的傳遞函數爲:

                       

D\left ( u,v \right )=D_{0},n=1時,H\left ( u,v \right )D_{0} 處的值降爲其最大值的1/2。

它的另一種巴特沃斯低通濾波器傳遞函數爲:

           

巴特沃斯低通法波器傳遞函數特性爲連續性衰減,而不像ILPF理想低通濾波那樣是陡峭和明顯的不連續性衰減。在它的尾部保留有較多的高頻,所以對噪聲的平滑效果不如HLPE。採用該濾波器在抑制噪聲的同時,圖像邊緣的模糊程度大大減木,振鈴效應不明顯。

指數型低通濾波器(ELPF)

指數型低通濾波器(ELPE),它的傳遞函數爲:

          

式中D_{0}爲截止頻率,n爲階數。當D\left ( u,v \right )=D_{0},n=1時,對於式(3.1),H\left ( u,v \right )降爲最大值的1/e;對於式(3.2),H\left ( u,v \right )降爲最大值的1/\sqrt{2},所以兩者的衰減特徵性仍有不同。由於ELPF具有比較平滑的過濾帶,經此平滑後的圖像沒有“振鈴”現象,而與巴特沃斯濾波相比,它更具有更快的衰減特性,處理的圖像稍微模糊一些。通法波器傳遞函數特性爲連續性衰減,而不像ILPF理想低通濾波那樣是陡峭和明顯的不連續性衰減。在它的尾部保留有較多的高頻,所以對噪聲的平滑效果不如HLPE。採用該濾波器在抑制噪聲的同時,圖像邊緣的模糊程度大大減木,振鈴效應不明顯。

梯形低通濾波器(TLPF):

梯形低通濾波器(TLPF)的傳遞函數爲:

                    

式中:D_{0}爲梯形低通濾波器的截至頻率。D_{0}D_{1} 按要求預先指定爲D_{0}< D_{1},它的性能介於理想低通濾波器與巴特沃斯低通濾波器之間,對圖像有一定的模糊和振鈴效應。

實驗步驟

1.GUI界面設計:

(1)打開guidequick start窗口,生成新的fig文件

(2)可視化的窗口設計,在窗口中拖入幾個按鈕用於交互程序的事件觸發,如下圖1,圖2:

                                                                                             圖   1 

                                                                                              圖  2

2.頻率濾波基本步驟:

(1)給定一幅大小爲m*n的圖像f(x,y)。選擇適當的填充參數P和Q,一般令P = 2m,Q = 2n。

(2) 對圖像f(x, y)填充0,填充後得到圖像大小爲P*Q的圖像fp(x,y)。

(3)用(-1)^(x+y)乘以fp(x,y)將其移到變換中心(中心化)。

(4)計算fp(x,y)的DFT,得到F(u,v)。 

(5)生成一個實的,對稱的濾波函數H(u, v),大小爲P*Q,中心在(P/2, Q/2)處。然後相乘(矩陣點乘)得到G(u,v) = H(u,v)F(u,v)。

(6)對G(u, v)反傅里葉變換,然後取實部,再乘以(-1)^(x+y)進行反中心變換最後得到gp(x,y)。

(7)提取gp(x,y)左上角的m*n區域,對提取的部分進行標準化處理,得到最終的結果圖像g(x,y)。

實驗結果

相關代碼:

(1)“高斯低通濾波”按鈕

 function noisyy_Callback(hObject, eventdata, handles)
% hObject    handle to noisyy (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
axes(handles.axes2);
global S
global Image2
g=imnoise(S,'gaussian',0.01);
imshow(g);
Image2=g;
title('噪聲處理');

(2)巴特沃斯低通濾波按鈕

function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
axes(handles.axes2);
global S
global Image2
I=im2double(S);
M=2*size(I,1);              %濾波器行數
N=2*size(I,2);              %濾波器列數
u=-M/2:(M/2-1);
v=-N/2:(N/2-1);
[U,V]=meshgrid(u,v);
D=sqrt(U.^2+V.^2);
D0=50;
n=6;
H=1./(1+(D./D0).^(2*n));    %構造巴特沃斯濾波器
J=fftshift(fft2(I,size(H,1),size(H,2)));    %轉換到頻域
K=J.* H;
L=ifft2(ifftshift(K));      %傅里葉反變換
L=L(1:size(I,1),1:size(I,2));
imshow(L);
Image2=L;title('巴特沃斯');

(3)“理想低通濾波”按鈕

 function pushbutton2_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
axes(handles.axes2);
global S
global Image2
I=im2double(S);
M=2*size(I,1);               %濾波器行數
N=2*size(I,2);               %濾波器列數
u=-M/2:(M/2-1);
v=-N/2:(N/2-1);
[U,V]=meshgrid(u,v);
D=sqrt(U.^2+V.^2);
D0=80;                         %截止頻率設置爲80
H=double(D<=D0);             %理想低通濾波器
J=fftshift(fft2(I,size(H,1),size(H,2)));  %時域圖像轉換到頻域
K=J.*H;                         %濾波處理
L=ifft2(ifftshift(K));       %傅里葉反變換
L=L(1:size(I,1),1:size(I,2));
%figure;
imshow(L);                      %顯示濾波後的圖像
Image2=L;title('理想濾波¨');

(4)“梯形低通濾波”按鈕

 function pushbutton3_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton3 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
axes(handles.axes2);
global S
global Image2
IA=im2double(S);
[f1,f2]=freqspace(size(IA),'meshgrid');
%D=1020/size (IA,1) ;
D0=0.1 ;
D1=0.4;
r=sqrt (f1.^2+f2.*2) ;
Hd=zeros (size (IA)) ;
Hd(r<D0)=1;
Y= fft2 (double (IA)) ;
Y= fftshift (Y) ;
Ya=Y.*Hd;
Ya=ifftshift (Ya) ;
L= real (ifft2 (Ya)) ;
imshow (uint8(L)) ;
imshow(L);                        %顯示濾波後的圖像
Image2=L;title('梯形濾波');

(5)“導入”按鈕

function btn_show_Callback(hObject, eventdata, handles)
% hObject    handle to btn_show (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
[filename,pathname]=uigetfile({'*.bmp;*.jpg;*.png;*.jpeg;*.tif','文件類型(*.bmp,*.jpg,*.png,*.jpeg,*.tif)';'*.*', '所有文件(*.*)'},'Pick an image');
axes(handles.axes1);        %用axes命令設定當前操作的座標軸爲axes1;
fpath=[pathname filename];   %將文件名和目錄組成一個完整的路徑
Image=imread(fpath);
global S
S = Image;
imshow(Image);
set(handles.pushbutton1,'Enable','on');  %使其在打開命令使用後,可繼續使用,放在最後。
guidata(hObject,handles);               %用來更新句柄

運行結果:

1.高斯噪聲處理:

                                                                                          圖   3 

                                    

                                                                             圖   4(高斯噪聲處理後)

2.巴特沃斯低通濾波:

                                                                                               圖  5

                                     

                                                                            圖   6(巴特沃斯低通濾波處理後)

3.理想低通濾波:

                                                                                             圖   7 

                                   

                                                                         圖   8(理想低通濾波處理後) 

4.梯形低通濾波:

                                                                                             圖   9

                                   

                                                                         圖   9(梯形低通濾波處理後) 

(1)低通濾波器濾除了高頻成分,所以使得圖像模糊。由於理想低通濾波器的過度特性過於急峻,會產生了振鈴現象。

(2)巴特沃低通濾波對噪聲的平滑效果不如理想低通濾波,採用該濾波器在抑制噪聲的同時,圖像邊緣的模糊程度大大減小,振鈴效果不明顯。

(3)梯形低通濾波器對圖像有一定的模糊和振鈴效果。

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章