频率域低通滤波及其应用论文
- 格式:doc
- 大小:1.27 MB
- 文档页数:7
频率域低通滤波及其应用
摘要:数字图像处理的主要目的是改善图像视觉效果,以便于人们对其更进一步的理解,而图像增强技术是采用某种技术手段改变图像的视觉效果,其中一种技术就是频率域增强技术,本论文重点介绍了用MATLAB 对图像分别进行理想低通滤波、布特沃斯低通滤波和高斯低通滤波。
关键词:MATLAB 滤波 理想低通滤波 布特沃斯低通滤波 高斯低通滤波
一.引言
滤波是将信号中特定波段频率滤波的操作,是抑制和防止干扰的一项重要措施。根据观察某一随机过程的结果,对另一与之有关的随机过程进行估计的概率理论与方法。而低通滤波则是让低频信号能正常通过,而超过设定临界值的高频信号则会被阻隔、减弱,但是阻隔或减弱的幅度会根据不同的频率以及不同的滤波程序而改变。
二.频率域滤波基础
频率域滤波有修改一幅图像的傅里叶变换然后计算其反变换得到处理后的结果组成。由此,若给定一副大小M ×N 的数字图像f(x,y),则基本滤波公式有如下形式
()ℑ=y x ,g -1()()][v u F v u H ,,
其中,ℑ-1
是IDFT ,()v u F ,是输入图像()y x f ,的DFT ,()v u H ,是滤波函数()y x g ,是滤波后的(输出)图像。函数F ,H 和g 是大小与输出图像相同的N M ⨯阵列。乘积()()v u F v u H ,,是阵列相乘而得到的,滤波函数通过修改输入的图像数据的变换得到处理后的输出()y x g ,。
变换中的低频与图像中缓慢变化的灰度分量有关,而高频由灰度的尖锐过程造成。因此我们所利用的让高频衰减而让低频通过的滤波器()v u H ,(也就是我们下面即将讨论的低通滤波器)将会使图像变得模糊。
三.常用的低通滤波器
在这门课程中我们主要学习的低通滤波器有三种,分别是:理想滤波器、布特沃斯滤波器和高斯滤波器。这三种滤波器涵盖了从非常尖锐到非常平滑的滤波范围。
3.1 理想滤波器
在以原点为圆心,以D 0为半径的圆内,无衰减地通过所有频率,而在该圆外“切断”所有频率的二维低通滤波器,称为理想低通滤波器(ILPF );它由下面的函数确定:
1, D v u D ≤),(0
=),(v u H
0, ),(v u D >D 0
其中,D 0是一个正常数,),(v u D 是频率域中点),(v u 与频率矩形中心的距离,即
()[2/),(P u v u D -=2()2/Q v -+2]1/2 (*) 其中,与以前一样,P 和Q 是12-≥M P 和12-≥N Q 填充后的尺寸。图4.40(a)显示了()v u H ,的透视图,图4.40(b)显示了以图像显示的滤波器。理想这一名称表明在半径D 0的圆内,所有频率无衰减地通过,而在此圆之外的所有频率则完全被衰减。理想低通滤波器是关于原点径向对称的,这意味着该滤波器完全由一个径向横截面来定义,如图4.40(c)所示。将该横截面旋转360o 得到二维滤波器。
3.2布特沃斯低通滤波器
截止频率位于距原点D 0处的n 阶布特沃斯低通滤波器(BLPF )的传递函数定义为
其中,),(v u D 由(*)式给出。图4.44显示了该BLPF 函数的透视图、图像显示和径向剖面图。
3.3高斯低通滤波器
二维高斯滤波器的形式由下式给出:
22(u,v)/2(u,v)D H e σ-=
其中,),(v u D 是距频率矩形中心的距离。是关于中心的扩展度的度量。通过令σ=0D ,我们可以使用其他滤波器的表示法来表示该滤波器:
22
0(u,v)/2D (u,v)D H e -=
其中,0D 是截止频率。当0(u,v)D D 时,GLPF 下降到其最大值的0.607处。
四.Matlab 实现:
4.1理想低通滤波matlab 实现:
函数程序:
function LowPass=LiXiangLowPass(ima,D0)
[Row,Col]=size(ima);
ima=im2double(ima);
for i=1:Row
for j=1:Col
ima(i,j)=(-1)^(i+j)*ima(i,j);
end
end
FourIma=fft2(ima);
[FRow,FCol]=size(FourIma);
P=2*FRow-1;
Q=2*FCol-1;
for i=1:FRow
for j=1:FCol
D(i,j)=[(i-P/2)^2+(j-Q/2)^2]^0.5;
if D(i,j)<=D0
H(i,j)=1;
else
H(i,j)=0;
end
G(i,j)=H(i,j)*FourIma(i,j);
end
end
IFourIma=ifft2(G);
for i=1:FRow
for j=1:FCol
LowPass(i,j)=(-1)^(i+j)*IFourIma(i,j);
end
end
LowPass=real(LowPass);
4.2 布特沃斯低通滤波matlab 实现
函数程序:
function f=lowpassfilter(sze,cutoff,n)
if cutoff<0|cutoff>0.5
error('cutoff frequency must be between 0 and 0.5');
end
if rem(n,1)~=0|n<1
error('n must be an integer >=1');
end