利用巴特沃斯高通滤波器对受噪声干扰的图像进行平滑处理
一、 实验目的
掌握常用频域高通滤波器的设计。进一步加深理解和掌握图像频谱的特点和频域高通滤波的原理。理解图象高通滤波的处理过程和特点。
二、 实验设备
高性能计算机,操作系统为Windows XP, Matlab程序平台。
三、 实验内容
设计程序,实现二阶巴特沃斯高通滤波器对图像的滤波处理。观察处理前后图像效果,分析实验结果和算法特点。
四、 实验原理
高通滤波器让高频分量畅通无阻,而对低频分量则充分限制。去掉信号中不必要的低频成分,去掉低频干扰的滤波器。高通滤波器是指车载功放中能够让中、高频信号通过而不让低频信号通过的电路,其作用是滤去音频信号中的低音成分,增强中音和高音成分以驱动扬声器的中音和高音单元。巴特沃斯滤波器是电子滤波器的一种。巴特沃斯滤波器的特点是通频带的频率响应曲线最平滑。巴特沃斯滤波器的特性巴特沃斯滤波器的特点是通频带内的频率响应曲线最大限度平坦,没有起伏,而在阻频带则逐渐下降为零。 在振幅的对数对角频率的波得图上,从某一边界角频率开始,振幅随着角频率的增加而逐步减少,趋向负无穷大。利用巴特沃斯(Butterworth)低通滤波器对受噪声干扰的图像进行平滑处理。
二维理想高通滤波器的传递函数为:
0.D(u,v)D0H(u,v)1.D(u,v)D0
D0是从频率矩形中点测得的截止频率长度,它将以D0为半径的圆周内的所有频率置零,而毫不衰减地通过圆周外的任何频率。但其物理上是不可实现的。
巴特沃斯高通滤波器的传递函数为:
H(u,v)
1D02n1[]D(u,v)
式中D0为截止频率距远点距离。与低通滤波器的情况一样,可认为巴特沃斯高通型滤波器比IHPF更平滑。
五、源程序代码
I=imread('forest.tif');
imshow(I);
f=double(I); % 数据类型转换,MATLAB不支持图像的无符号整型的计算
g=fft2(f); % 傅立叶变换
g=fftshift(g); % 转换数据矩阵
[M,N]=size(g);
nn=2; % 二阶巴特沃斯(Butterworth)高通滤波器
d0=5;
m=fix(M/2);
n=fix(N/2);
for i=1:M
for j=1:N
d=sqrt((i-m)^2+(j-n)^2);
if (d==0)
h=0;
else
h=1/(1+0.414*(d0/d)^(2*nn));% 计算传递函数
end
result(i,j)=h*g(i,j);
end
end
result=ifftshift(result);
J2=ifft2(result);
J3=uint8(real(J2));
figure,imshow(J3); % 滤波后图像显示
六、 原图及运行结果
原图:
七、 心得体会
通过参考代码编程实现,我体会到了MATLAB作为具有高效的计算能力、灵活的图形处理与可视化功能以及易学易懂的自然化语言的数学工具软件的强大功能。通过这次写实验报告,使我对MATLAB的使用有了进一步的理解,也使我明白了自己还有很大的知识缺陷,我会在以后的学习中努力补充。
因篇幅问题不能全部显示,请点此查看更多更全内容