噪声图像的三种低通滤波演示系统

理想低通滤波器(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)梯形低通滤波器对图像有一定的模糊和振铃效果。

 

 

 

 

 

 

 

 

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