文档库

最新最全的文档下载
当前位置:文档库 > 实验报告六频域图像增强的方法

实验报告六频域图像增强的方法

实验报告六

姓名:学号:班级:

实验日期: 2016.5.13 实验成绩:

实验题目:频域图像增强的方法

一.实验目的

(1)熟练掌握频域滤波增强的各类滤波器的原理及实现。

(2)分析不同用途的滤波器对频域滤波增强效果的影响,并分析不同的滤波器截止频率对频域滤波增强效果的影响。

二.实验原理

变换最慢的频率分量与图像的平均灰度成正比,当远离变换的原点时,低频对应于图像中变换缓慢的灰度分量,当从原点离开得更远时,较高的频率开始对应图像中越来越快的灰度变换,频率域滤波是通过傅里叶变换在频域上对频谱进行修改后再回到空间域的一种方法,在频域中直流项决定了图像的平均灰度,衰减高频通过低频的低通滤波器会模糊一副图像,而衰减低频通过高频的高通滤波器则会增加尖锐的细节,但会导致图像对比度的降低。

三.实验内容及结果

(1)选择图像fig620.jpg,对其进行傅里叶变换,在频率域中实现五种不同半径(截止频率)的butterworth低通滤波器的平滑作用。

显示原始图像和滤波图像。

实验报告六频域图像增强的方法

图1不同半径巴特沃斯低通滤波图

(2)选择图像fig620.jpg,对其进行傅里叶变换,在频率域中实现五种不同半径(截止频率)的butterworth高通滤波的锐化效果,显示原始图像和滤波图像。

实验报告六频域图像增强的方法

图2 不同半径巴特沃斯高通滤波图

四.结果分析

(1)观察图1,可以发现巴特沃斯低通滤波器半径越小,图像越模糊,但图像的背景亮度大小和原图像别无二致,这是因为低通滤波器实现的是滤除高频分量,保留低频分量的功能,所以半径越小,通过的低频分量越少,所以越模糊,但不论半径多小,它的整体亮度不变,这是由于决定图像平均灰度的直流分量处于图像中点(经过fftshift平移后),它一直是通过的,同时观察变量区的原图像傅里叶变换后的数据矩阵发现,最大数据小于并接近100,所以第五个滤波器设定为100半径,但是发现,滤波后图像的小a还是有一定的模糊,这是因为巴特沃斯滤波器不是理想滤波器,在截止频率处存在一定的过度带,所以小尺寸的物体可能会有模糊。

(2)观察图二,可以发现进过巴特沃斯高通滤波器后的图像背景均为黑色,这是由于高通滤波器阻止了代表图像平均灰度的直流分量通过,且发现半径越大,图像物体中边缘细节越尖锐,这表明滤波器中高频分量占的比重越来越大,同时观察图中字母a会有一定的缺口,这正是由于巴特沃斯平滑截止程度不够所带来的振铃现象,在低通中没有表现出来是由于背景的亮度掩盖了缺口,并且发现通过高通滤波器后图像的对比度也降低了。

五、实验总结

本次实验主要是掌握了巴特沃斯低通和高通滤波器改变图像的不同效果,程序的实现完全是按照书上频域滤波的步骤一步步执行的,在一开始的时候我把巴特沃斯滤波器分母少加了个1,导致图像变全黑,这是由于分母少了加1,直流分量计算就会无穷大(从1/1变成了1/0),而由傅里叶变换关系可知频域上的每一项都对空间域的每一个像素的灰度值有贡献,所以理论上空间域中每一项都无穷大,但是double类型范围是0到1,所以系统内部可能自动将其取为0值或是接近0值,就变黑了。

附录(程序)

A=imread('F:\数字图像处理\图片\fig622.jpg');

A=rgb2gray(A);%彩色图像转换成灰度图像

A1=double(A);%将数据类型uint8转换成double类型,目的是提高数据处理精度

FA=fftshift(fft2(A1));%fft变换,同时平移坐标原点到图像中点,相当于(-1)^(i+j)

[M,N]=size(FA);%读取原图像傅里叶变换矩阵大小

D1=5;%半径是5

D2=20;%半径是20

D3=40;%半径是40

D4=80;%半径是80

D5=100;%半径是100

n=2;%选取巴特沃斯滤波器的阶数为二阶

x0=floor(M/2);%令原点为图像的中点

y0=floor(N/2);

for i=1:M

for j=1:N

D=sqrt((i-x0)^2+(j-y0)^2);%判定相对原点(图像中点)的距离

H1(i,j)=1/(1+(D/D1)^(2*n));%巴特沃斯低通滤波器

H2(i,j)=1/(1+(D/D2)^(2*n));

H3(i,j)=1/(1+(D/D3)^(2*n));

H4(i,j)=1/(1+(D/D4)^(2*n));

H5(i,j)=1/(1+(D/D5)^(2*n));

H11(i,j)=1/(1+(D1/D)^(2*n));%巴特沃斯高通滤波器

H22(i,j)=1/(1+(D2/D)^(2*n));

H33(i,j)=1/(1+(D3/D)^(2*n));

H44(i,j)=1/(1+(D4/D)^(2*n));

H55(i,j)=1/(1+(D5/D)^(2*n));

end

end

FAH1=H1.*FA;%点乘,实现频域滤波

FAH2=H2.*FA;

FAH3=H3.*FA;

FAH4=H4.*FA;

FAH5=H5.*FA;

FAH11=H11.*FA;

FAH22=H22.*FA;

FAH33=H33.*FA;

FAH44=H44.*FA;

FAH55=H55.*FA;

g1=uint8(real(ifft2(ifftshift(FAH1))));%先从图像中点平移回图像左上方顶点,再

%做傅里叶反变换回到空间域,取实部是为

%了忽略计算不准确导致的寄生复分量,最

%后从double类型回到原图像的uint8类型g2=uint8(real(ifft2(ifftshift(FAH2))));

g3=uint8(real(ifft2(ifftshift(FAH3))));

g4=uint8(real(ifft2(ifftshift(FAH4))));

g5=uint8(real(ifft2(ifftshift(FAH5))));

g11=uint8(real(ifft2(ifftshift(FAH11))));

g22=uint8(real(ifft2(ifftshift(FAH22))));

g33=uint8(real(ifft2(ifftshift(FAH33))));

g44=uint8(real(ifft2(ifftshift(FAH44))));

g55=uint8(real(ifft2(ifftshift(FAH55))));

subplot(2,3,1);imshow(A);title('原图');

subplot(2,3,2);imshow(g1);title('巴特低半径5');

subplot(2,3,3);imshow(g2);title('巴特低半径20');

subplot(2,3,4);imshow(g3);title('巴特低半径40');

subplot(2,3,5);imshow(g4);title('巴特低半径80');

subplot(2,3,6);imshow(g5);title('巴特低半径100');

hold on;

figure;

subplot(2,3,1);imshow(A);title('原图');

subplot(2,3,2);imshow(g11);title('巴特高半径5');

subplot(2,3,3);imshow(g22);title('巴特高半径20');

subplot(2,3,4);imshow(g33);title('巴特高半径40');

subplot(2,3,5);imshow(g44);title('巴特高半径80');

subplot(2,3,6);imshow(g55);title('巴特高半径100');