理想低通濾波器(ILPF):
二維理想低通濾波器的傳遞函數H(u,v)爲:
式中:爲理想低通濾波器的截止顆率,是一個規定非負的量,這裏理想是指小於等於的題率可以完全不受影響地通過濾波器,而大於的頻率則完全通不過,因此也叫截斷頻率。這種理想低通濾波器儘管在計算機中可模擬實現,但理想低通濾波器無使用實際的電子器件硬件實現這種從1到0陡峭突變的截斷頻率。是從頻率平面上點(u,v)到頻率平面原點(0,0)的距離。
巴特沃斯低通濾波器(BLPF):
n階巴特沃斯低通濾波器(BLPE),它的傳遞函數爲:
當,n=1時, 在 處的值降爲其最大值的1/2。
它的另一種巴特沃斯低通濾波器傳遞函數爲:
巴特沃斯低通法波器傳遞函數特性爲連續性衰減,而不像ILPF理想低通濾波那樣是陡峭和明顯的不連續性衰減。在它的尾部保留有較多的高頻,所以對噪聲的平滑效果不如HLPE。採用該濾波器在抑制噪聲的同時,圖像邊緣的模糊程度大大減木,振鈴效應不明顯。
指數型低通濾波器(ELPF):
指數型低通濾波器(ELPE),它的傳遞函數爲:
式中爲截止頻率,n爲階數。當,n=1時,對於式(3.1),降爲最大值的1/e;對於式(3.2),降爲最大值的,所以兩者的衰減特徵性仍有不同。由於ELPF具有比較平滑的過濾帶,經此平滑後的圖像沒有“振鈴”現象,而與巴特沃斯濾波相比,它更具有更快的衰減特性,處理的圖像稍微模糊一些。通法波器傳遞函數特性爲連續性衰減,而不像ILPF理想低通濾波那樣是陡峭和明顯的不連續性衰減。在它的尾部保留有較多的高頻,所以對噪聲的平滑效果不如HLPE。採用該濾波器在抑制噪聲的同時,圖像邊緣的模糊程度大大減木,振鈴效應不明顯。
梯形低通濾波器(TLPF):
梯形低通濾波器(TLPF)的傳遞函數爲:
式中:爲梯形低通濾波器的截至頻率。 和 按要求預先指定爲,它的性能介於理想低通濾波器與巴特沃斯低通濾波器之間,對圖像有一定的模糊和振鈴效應。
實驗步驟
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)梯形低通濾波器對圖像有一定的模糊和振鈴效果。