基于matlab对图像进行高通低通带通滤波Word文件下载.docx
《基于matlab对图像进行高通低通带通滤波Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于matlab对图像进行高通低通带通滤波Word文件下载.docx(22页珍藏版)》请在冰点文库上搜索。
使
=D0,可以将滤波器表示为:
(4)
其中,D0是截止频率。
当D(u,v)=D0时,滤波器下降到它最大值的0.607倍处。
由于高斯低通滤波器的傅里叶反变换也是高斯的,这就是说通过式(3)或式(4)的傅里叶反变换而得到的空间高斯滤波器将没有振铃。
根据以上分析,设计Gaussian低通滤波器,处理结果如下:
可见,当滤波器的半径不同时,对应的滤波效果也不同。
半径越小,平滑效果越明显,但半径过小,会使得图像变得模糊不清。
计算得test1(r=5)的功率谱比L=0.4674。
test2(r=5)的功率谱比为L=0.2930。
1、频域高通滤波器:
设计高通滤波器包括butterworthandGaussian,在频域增强边缘。
选择半径和计算功率谱比,测试图像test3,4:
实验原理分析
高通滤波是要保留图像中的高频分量而除去低频分量。
理想高通滤波器传递函数表示为:
Butterworth滤波器设计:
n阶Butterworth高通滤波器(BLPF)的传递函数(截止频率距原点的距离为)定义如下:
(5)
其中,
(6)
不同于ILPF,BLPF变换函数在通带与被滤除的频率之间没有明显的截断。
对于有平滑传递函数的滤波器,定义一个截止频率的位置并使H(u,v)幅度降到其最大值的一部分。
在式
(1)中,当D(u,v)=D0时,H(u,v)=0.5(从最大值降到它的50%)。
根据以上原理设计Butterworth高通滤波器,其处理结果如下图示:
计算得test3的功率谱比为0.0851。
test4的功率谱比为0.0547。
二维高斯高通滤波器,其传递函数的形式为:
(7)
(8)
由于高斯低通滤波器的傅里叶反变换也是高斯的,这就是说通过式(7)或式(8)的傅里叶反变换而得到的空间高斯滤波器将没有振铃。
根据以上分析,设计Gaussian高通滤波器,处理结果如下:
半径越小,边缘效果越明显。
一般图像中的大部分能量集中在低频分量里,高通滤波会将很多低频分量滤除,导致增强图中边缘得到加强但光滑区域灰度减弱变暗甚至接近黑色。
为解决这个问题,可对频域里的高通滤波器的转移函数加一个常数以将一些低频分量加回去,获得既保持光滑区域又改善边缘区域对比度的效果。
这样得到的滤波器称为高频增强滤波器。
计算得test3(r=5)的功率谱比L=0.0591,test4(r=5)的功率谱比为L=0.4449。
3、其他高通滤波器:
拉普拉斯和Unmask,对测试图像test3,4滤波;
比较并讨论空域低通高通滤波(Project3)与频域低通和高通的关系;
拉普拉斯高通滤波器
公式表示如下:
(9)
从这个简单的表达式可以得到:
(10)
所以,
(11)
即频域的拉普拉斯算子可以有如下滤波器实现:
(12)
前提是F(u,v)的原点在进行图像变换之前已通过执行运算
中心化了,使得变换中心(u,v)=(0,0)就是频率矩形的中点(M/2,N/2)。
因此
根据以上分析,设计拉普拉斯算子高通滤波器,处理结果如下:
由于拉普拉斯高通滤波器将原始图像完全加回到滤波后的结果中,因此解决了Butterworth滤波器和Gaussian滤波器除去了傅里叶变换的零频率成分的问题,从而使得滤波后的图像其背景的平均强度增加、变亮。
但同时引入了噪声干扰,使得滤波后的图像有一定程度的失真。
Unsharpmasking高通滤波器
Unsharpmasking高通滤波器模板由以下公式确定:
(13)
(14)
(15)
当K=1时,为钝化模板;
K>
1时,为高频提升滤波器。
由以上算法设计Unsharpmasking高通滤波器,其中
使用Butterworth滤波算法实现,处理结果如下图示:
可见,反锐化掩膜后的图像边缘信息更加清晰,但同时带来了过度锐化的问题,出现了多重轮廓。
空域低通高通滤波与频域低通和高通的关系:
空域滤波主要包括平滑滤波和锐化滤波。
平滑滤波是要滤除不规则的噪声或干扰的影响,从频域角度看,不规则噪声具有较高的频率,所以可用具有低通能力的频域滤波器来滤除。
由此可见,空域的平滑滤波对应频域的低通滤波。
锐化滤波是要增强边缘和轮廓处的强度,从频域角度看,边缘和轮廓处都具有较高的频率,所以可用具有高通能力的频域滤波器来增强,由此可见空域的锐化滤波对应频域的高通滤波。
附录
一、参考文献
[1]冈萨雷斯著.数字图像处理(第三版).北京:
电子工业出版社,2010
[2]杨杰李庆著.数字图像处理及MATLAB实现——学习与实验指导.北京:
[3]苏金明王永利著.MATLAB图形图像.北京:
电子工业出版社,2005
[4]朱习军隋思涟等著.MATLAB在信号与图像处理中的应用.北京:
电子工业出版社,2009
[5]XX文库.
二、源代码:
频域低通滤波器
1.Butterworth低通滤波器(以处理test1.pgm为例)
I=imread('
E:
\大三下\图像处理英文课件\作业\第五次作业\test1.pgm'
'
pgm'
);
figure;
subplot(1,2,1);
imshow(I);
title('
源图像test1.pgm'
f=double(I);
g=fft2(f);
%傅立叶变换
g=fftshift(g);
%转换数据矩阵
[M,N]=size(g);
nn=2;
%二阶巴特沃斯(Butterworth)低通滤波器
d0=50;
m=fix(M/2);
n=fix(N/2);
fori=1:
M
forj=1:
N
d=sqrt((i-m)^2+(j-n)^2);
h1=1/(1+0.414*(d/d0)^(2*nn));
%计算低通滤波器传递函数
result1(i,j)=h1*g(i,j);
end
end
result1=ifftshift(result1);
J2=ifft2(result1);
J3=uint8(real(J2));
subplot(1,2,2);
imshow(J3);
低通滤波图test1.pgm'
%显示滤波处理后的图像
S=0;
S1=0;
L=(abs(result1(I,j)))^2;
%计算结果图像的功率谱
S=S+L;
L1=(abs(g(I,j)))^2;
%计算源图像的功率谱
S1=S1+L1;
L=S/S1%计算功率谱比
2、Gaussian低通滤波器(以处理test1.pgm为例)
I=imread('
r=5;
Im=double(I);
F=fft2(Im);
F_result=fftshift(F);
g=F_result;
[m,n]=size(F_result);
M=fix(m/2);
N=fix(n/2);
foru=1:
m
forv=1:
n
D=sqrt((u-M)^2+(v-N)^2);
H=exp(-D^2/(2*r^2));
F_result(u,v)=F_result(u,v)*H;
G_result=ifftshift(F_result);
g_result=ifft2(G_result);
f=real(g_result);
f=uint8(f);
imshow(f);
Gaussian低通滤波后的test1.pgm(r=5)'
L=(abs(F_result(i,j)))^2;
L1=(abs(g(i,j)))^2;
L=S/S1%计算功率谱比
频域高通滤波器
1、Butterworth滤波器(以处理test3_corrupt.pgm为例)
\大三下\图像处理英文课件\作业\第五次作业\test3_corrupt.pgm'
源图像test3_corrupt.pgm'
%数据类型转换,MATLAB不支持图像的无符号整型的计算
%二阶巴特沃斯(Butterworth)高通滤波器
d0=5;
n=fix(N/2);
if(d==0)
h2=0;
else
h2=1/(1+0.414*(d0/d)^(2*nn));
%计算传递函数
result2(i,j)=h2*g(i,j);
result3=ifftshift(result2);
J4=ifft2(result3);
J5=uint8(real(J4));
imshow(J5);
高通滤波图test3_corrupt.pgm'
%滤波后图像显示
L=(abs(result2(i,j)))^2;
2、Gaussian滤波器(以处理test3_corrupt.pgm为例)
g=F_result;
H=1-exp(-D^2/(2*r^2));
Gaussian低通滤波后的test3_corrupt.pgm(r=5)'
L=(abs(F_result(i,j)))^2;
2、Laplacian滤波器(以处理test3_corrupt.pgm为例)
H=1+4*pi^2*((i-m)^2+(j-n)^2);
%计算高通滤波器传递函数
result1(i,j)=H*g(i,j);
Laplacian高通滤波图test3_corrupt.pgm'
4、Unmask滤波器(以处理test4copy.bmp为例)
\大三下\图像处理英文课件\作业\第五次作业\test4copy.bmp'
bmp'
源图像test4copy.bmp'
result2(i,j)=(1+h2)*g(i,j);
result2=ifftshift(result2);
J4=ifft2(result2);
反锐化掩膜滤波图test4copy.bmp'