实验要求
该实验的目的是开发一个2-D FFT 程序包。要求程序能完成下面的功能:
(1.a) 用因子 (-1)x+y 乘以输入图像,以实现滤波的中心化变换;
(1.b) 计算付立叶变换;
(1.c) 用一个实矩阵乘以一个复数矩阵,即用实矩阵中的元素同时乘以复数矩阵对应位置上的复数的实部与虚部。可以通过调用两个图像的乘法程序来实现对应元素的相乘;
(1.d) 计算反付立叶变换;
(1.e) 结果乘以 (-1)x+y,并取其实部;
(1.f) 计算频谱。
(1.g) 计算图4.41(a)的中心化后的付立叶谱;
(1.f) 使用二维图像和三维图形两种形式显示计算的幅度谱和相位谱;该实验主要实现4.7.3 节的算法。若试验中使用MATLAB 语言实现, 则在(1.b)和(1.d)中二维付立叶变换和反变换程序可以使用Matlab 的函数FFT2 和IFFT2。
(2.a) 编写一个实现公式(4.8-6)所示的高斯低通滤波器的程序。
(2.b) 对图4.41(a)进行高斯低通滤波以获得图4.48(c)。
(3.a) 如公式(4.9-1)所示,原始图像减去实验(2.b)中的图像得到锐化后的图像。观察结果图像与图4.56 中得到的高斯高通滤波结果图的差异, 并解释其中的原因。
(3.b) 调整高斯低通滤波器变量,使(3.a)中的减法锐化图与图4.56(c)接近为止,并解释你的结果。
技术论述
1、傅里叶变换2-D FFT
频率域滤波由修改一幅图像的傅里叶变换然后计算其反变换得到处理后的结果组成。
给定一幅大小为 M×N 的数字图像f(x,y),其基本率滤波公式为:
其中,F(u,v)是输入图像的DFT,H(u,v)是滤波函数即滤波器,g(x,y)是滤波后的输出图像。函数F、H和g是大小与输入图像相同的 M×N 阵列。使用中心化可以显著简化H(u,v)的技术条件,它要求F(u,v)也被中心话,通过计算变换前使用(-1)x+y乘以输入图像来完成。
频率域滤波可以总结为以下步骤
(1) 给定一幅大小为M×N的输入图像f(x,y),设定填充参数为 P=2M 和 Q=2M;
(2) 对f(x,y)添加必要数量的0,形成大小为P×Q的填充后的图像fp(x,y);
(3) 用因子 (-1)x+y 乘以输入图像,以实现滤波的中心化变换;
(4) 计算付立叶变换;
(5) 用一个实矩阵乘以一个复数矩阵,即用实矩阵中的元素同时乘以复数矩阵对应位置上的复数的实部与虚部,可以通过调用两个图像的乘法程序来实现对应元素的相乘;
(6) 计算反付立叶变换;
(7) 结果乘以 (-1)x+y,并取其实部。
(8) 从结果图像的左上象限提取M×N区域,得到最终处理结果g(x,y)。
2、高斯低通滤波器
高斯低通滤波器的二维形式为:
其中,D0是截止频率,D(u,v)是距频率矩形中心的距离。高斯滤波器的宽度由参数 D0 表征,决定了平滑程度,而且 D0越大,高斯滤波器的频带就越宽,平滑程度就越好。因为噪声主要集中在高频段,所以通过高斯低通滤波器可以滤除噪声信息、平滑图像,但与此同时会滤除图像的细节信息,使图像变得模糊。
3、高斯高通滤波器
截止频率处在距频率矩形中心距离为 D0的高斯高通滤波器(GHPF)的传递函数为: