Two-Dimensional Fourier Transform and Filtering

本文介绍利用傅立叶变换进行图像处理的方法,包括图像分析、增强与压缩。实验通过编写2-DFFT程序和高斯低通滤波器程序,实现了图像滤波、锐化等功能,并展示了图像的幅度谱与相位谱。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘   要:傅立叶变换在图象处理的应用领域中起着极其重要的作用,通过傅里叶变换进行图象分析、图象增强及图象压缩等来获得需要的信息。本实验采用二维快速傅里叶变换对图像进行频域滤波,共编写了一个2-D FFT程序和一个高斯低通滤波器的程序,对图像进行滤波,并通过原图减去高斯低通滤波后的图像实现锐化并且显示图片在二维和三维当中的幅度谱和相位谱。

 


一、实验目的

该实验的目的是开发一个 2-D FFT 程序包。要求程序能完成下面的功能:

(1.a) 用因子 乘以输入图像,以实现滤波的中心化变换;

(1.b) 计算傅里叶变换;

(1.c) 用一个实矩阵乘以一个复数矩阵,即用实矩阵中的元素同时乘以复数矩阵对应位置上的复数的实部与虚部。可以通过调用两个图像的乘法程序来实现对应元素的相乘;

(1.d) 计算反傅里叶变换;

(1.e) 结果乘以 ,并取其实部;

(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 离散傅里叶变换—DFT

(a)、离散傅里叶变换不是一个新的傅里叶变换形式,它来自于DFS,不过是在时域和频域各取一个周期,再经过周期延拓便可得到整个变换。离散傅里叶变换在时域和频域上都呈现离散的形式,且都是有限长。将时域信号的采样变换为在离散时间傅里叶变换(DTFT)频域的采样,而实际上这两组序列都应当被认为是离散周期信号的主值序列。DFT的公式为:

(b)、由于我们要处理的图像是二维的,所以需要用到二维离散傅里叶变换,设f(x,y)是大小为M*N的数字图像,与一维离散傅里叶变换一样必须在离散变量u和v在u=0,1,2,…,M-1和v=0,1,2,…,N-1范围内求值,二维离散傅里叶变换的公式为:

二维傅里叶反变换公式:

通常二维傅里叶变换的是复函数,因此可以用极坐标的形式来表示,令R和I是F(u,v)的实部和虚部,则:

幅度谱:

相位谱:φ(u,v)=arctan(I(u,v)/R(u,v))

功率谱:

(c)、快速傅里叶变换FFT不是与傅里叶变换不同的另一种变换,而是为了减少DFT运算次数的一种改进算法。它使其成为若干小点数的组合对变换式进行一次次分解,从而减少运算量。通常FFT以2为基数,长度N=2l,当要变换的序列长度不是2的整数次方时,仍然取2为基数的FFT,然后在末位进行补零,使其长度延长至2的整数次方。FFT具有使用非常方便、运算效率高、程序简单等优点。

2 傅里叶谱的中心化处理

在数字图像处理中通常为了清楚地观察F(u,v)的谱线情况需要将原点移到M*N频域的中心。令: ,便得到:

因此若要将图像谱的原点从(0,0)移到图像的中心点(N/2,N/2)处,只要将 乘上 因子,然后进行傅立叶变换即可。

4 频率域滤波步骤

(1)    大小为M*N的输入图像f=(x+y),选择填充参数P>=2M-1和Q>=2N-1;

(2)    对f(x+y)添加必要数量的0,形成大小P*Q的填充后的图像 ;

(3)    用 乘以 移动到其变换中心;

(4)    计算自步骤3的DFT,得到 ;

(5)    生成一个实的、对称的滤波函数 P*Q,中心在(P/2,Q/2)处,用阵列相乘形成H和F的乘积;

(6)    得到处理后的图像G(x,y);

(7)    通过从G(x,y)的左上象提取M*N区域,得到最终的处理结果个g(x,y)。

5 高斯低通滤波器

    低通滤波是要保留图像中的低频分量而去除图像中的高频分量。图像中的边缘和噪声都对应图像频域中的高频部分,所以通过在频域中的低通滤波可以除去或消弱噪声影响并模糊边缘轮廓,与时域中的平滑方法效果类似。要实现低通滤波需要选一个合适的模板h(u,v)以得到消弱图像频率域H(u,v)的高频分量。高斯滤波器的二维函数为:

式中 是距频率矩形中心的距离。 是截止频率。

四、实验结果讨论

通过素材Fig4.41(a).jpg进行二维快速傅里叶变换、图像傅里叶频谱、相位谱的计算及高斯低通滤波器的设计与验证。如图4-1所示是原图像傅里叶变换的幅度谱和相位谱,图4-2是原图像的傅里叶变换三维幅度谱和相位谱,图4-3是fftshift函数中心变换后的二维傅里叶幅度谱和fft_zxzh中心变换后的二维傅里叶图,图4-4是自编程序fft_zxzh中心变换图的二维傅里叶幅度谱和相位谱,图4-5是fft_zxzh中心变换的三维傅里叶幅度谱和相位谱,图4-6是中心化变化图和原始图。(程序见附录)

图4-1 原图像傅里叶变换的幅度谱和相位谱

图4-2原图像的傅里叶变换三维幅度谱和相位谱

图4-3是fftshift和fft_zxzh函数中心变换后幅度谱和二维傅里叶图

图4-4是自编程序fft_zxzh中心变换图的二维傅里叶幅度谱和相位谱

 

图4-5 fft_zxzh中心变换的三维傅里叶幅度谱和相位谱

图4-6 中心化变化图和原始图

设计高斯低通滤波器程序,通过不同的截止频率D0=30、60、160可以对图4.41(a)进行高斯低通滤波以获得滤波后的图像如图4-7所示。通过原图像减去高斯低通滤波后的图像可以得到锐化后的图像如图4-8所示。

图4-7 不同截止频率时GLPF滤波后的输出图像

图4-3(b) 不同截止频率时锐化后的图像

 

五、实验结论

经过对2-D FFT和高斯低通滤波后的图像生进行对比分析可知:

通过图4-1原图像傅里叶变换的幅度谱和相位谱和图4-2原图像傅里叶变换三维的幅度谱和相位谱的对比分析可知,两者在二维的幅度谱和相位谱上没有太大的区别,但是在三维上的幅度谱和相位谱有明显是区别,经过滤波处理后的幅度谱填满了整个坐标轴,其相位谱也更加的集中在三维坐标的中心,将整个相位图进行了移动。

通过图4-3、图4-4、图4-5和图4-6的对比可以发现,图片乘以因子 后,整个图片灰度变暗,是因为乘以该因子后,图片的灰度级有一半变为负数,而图片的灰度范围只有[0 255],因此灰度级为负的话默认为0,图片再进行取实和反傅里叶变化后,整体图片与原图相比变得比较模糊,那是因为该图片只取了实部的原因。对比前后的频谱图还可以发现,经过滤波后图像的频谱更加的集中了,中间的光点变小,说明达到了滤波的效果。

图4-7为经过高斯低通滤波后的图像,其中使用了不同的截止频率D0为30,60,160,可以发现随着D0的变换,得到的输出图像也会发生变换,当D0变大的时候,输出图像会越来越清晰,当D0=160时,输出图像出现了原图像没有的细节,同时边缘也出现了渐变的黑色区域,因为由于图像是在一个填充区域上实现滤波,故输出的图像边缘出现了渐变的黑色区域。

图4-8为用原图像减去不同截止频率 的滤波图像后的锐化效果。可以看到在 取较小的值的时候锐化效果更为明显,当 =30时,图像要比其他的图片要清晰。观察结果图像与课本图4.56中得到的高斯高通滤波结果图的差异,在 取值相同的情况下,原图像减去滤波图像后的输出图像的边缘亮度要高于直接使用高斯滤波器的滤波图像。调整高斯低通滤波器变量 时得到的减法锐化图像与图4.56(c)效果接近。


 



 

在电子设计自动化(EDA)领域,Verilog HDL 是一种重要的硬件描述语言,广泛应用于数字系统的设计,尤其是在嵌入式系统、FPGA 设计以及数字电路教学中。本文将探讨如何利用 Verilog HDL 实现一个 16×16 点阵字符显示功能。16×16 点阵显示器由 16 行和 16 列的像素组成,共需 256 个二进制位来控制每个像素的亮灭,常用于简单字符或图形显示。 要实现这一功能,首先需要掌握基本的逻辑门(如与门、或门、非门、与非门、或非门等)和组合逻辑电路,以及寄存器和计数器等时序逻辑电路。设计的核心是构建一个模块,该模块接收字符输入(如 ASCII 码),将其转换为 16×16 的二进制位流,进而驱动点阵的 LED 灯。具体而言,该模块包含以下部分:一是输入接口,通常为 8 位的 ASCII 码输入,用于指定要显示的字符;二是内部存储,用于存储字符对应的 16×16 点阵数据,可采用寄存器或分布式 RAM 实现;三是行列驱动逻辑,将点阵数据转换为驱动 LED 矩阵的信号,包含 16 个行输出线和 16 个列使能信号,按特定顺序选通点亮对应 LED;四是时序控制,通过计数器逐行扫描,按顺序控制每行点亮;五是复用逻辑(可选),若点阵支持多颜色或亮度等级,则需额外逻辑控制像素状态。 设计过程中,需用 Verilog 代码描述上述逻辑,并借助仿真工具验证功能,确保能正确将输入字符转换为点阵显示。之后将设计综合到目标 FPGA 架构,通过配置 FPGA 实现硬件功能。实际项目中,“led_lattice”文件可能包含 Verilog 源代码、测试平台文件、配置文件及仿真结果。其中,测试平台用于模拟输入、检查输出,验证设计正确性。掌握 Verilog HDL 实现 16×16 点阵字符显示,涉及硬件描述语言基础、数字逻辑设计、字符编码和 FPGA 编程等多方面知识,是学习
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值