【MATLAB与C语言在图像FFT处理中的对比研究9300字论文】.doc
PAGE13
PAGE14
MATLAB与C语言在图像FFT处理中的对比研究
摘要
随着计算机技术的发展,数字图像也越来越常见,因此提高图像分辨率和对其进行降噪也尤为重要。由于图像中像素的不连续性,需要使用离散傅里叶变换(DFT)来代替常规的傅里叶变换(FT)。为了降低运算复杂度,提高处理效率,便引出了快速傅里叶变换(FFT)。本课题首先阐述了FFT在图像处理中的意义与作用,然后在MATLAB软件以及c语言程序中分别实现1维和2维FFT并将结果进行对比,最后再用stm32微控制器实现图像的FFT处理,并将处理之前和处理之后的图像通过LCD进行显示。最终结果表明图像的FFT在MATLAB、C语言程序仿真以及STM32实现中都具有一致的结果。
关键词:数字图像;像素;快速傅里叶变换(FFT);图像显示
目录
TOC\o1-3\h\z\u0引言 1
1FFT理论研究 1
1.1一维离散傅里叶变换(DFT) 1
1.2一维快速傅里叶变换(FFT) 2
1.2.1 FFT的必要性 2
1.2.2 FFT的原理 2
1.2.3 FFT的方法 3
1.3二维快速傅里叶变换(FFT) 4
2 研究内容 5
2.1一维和二维FFT 5
2.2图像处理 5
2.3STM32实现图像FFT 5
3 核心程序设计 5
3.1 VC++实现一维FFT 5
3.2 MATLAB实现图像的二维FFT 6
3.3 STM32微控制器实现图像FFT 8
4 课题研究结果 9
4.1 一维FFT的实现 9
4.1.1MATLAB实现一维FFT 9
4.1.2VC++实现一维FFT 10
4.2二维FFT的实现 10
4.2.1 MATLAB实现二维FFT 10
4.2.2 VC++实现二维FFT 11
4.3 对图像进行二维FFT处理 12
4.3.1 MATLAB对图像进行FFT处理 12
4.3.2 VC++对图像进行FFT处理 12
4.4 STM32实现FFT 13
5 课题总结 15
参考文献 16
致谢 18
附录:源程序 19
MATLAB实现一维FFT 19
MATLAB实现二维FFT 19
MATLAB实现图像二维FFT 19
VC++实现一维FFT 20
VC++实现二维FFT 22
VC++实现图像二维FFT 25
LCD实现FFT 28
0引言
傅里叶变换(FT)早在1807年就由法国数学家和物理学家傅里叶JeanBaptisteJosephFourier(1768-1830)提出(林哲宏、赵文辉、宋承志,2022)REF_Re\r\h[1],它可以将图像在时域和频域间转换,可以简化对图像特征的提取和分析,在这样的情况里是描述图像信息的第二种语言,其在图片的编码,压缩,分割与重建中被广泛应用(高宇彬、刘子腾、周晓峰,2023)REF_Re\r\h[2],因此对于广泛研究FT以及其扩展形式的特性是非常有价值的。在计算机中的所有信号都是离散的是,所以对于离散傅里叶变换(DFT)的研究也是必不可少的,从这些迹象可以看出为了降低运算复杂度,提高图像处理的速度,DFT的快速算法快速傅里叶变换(FFT)在1965年被库利(Cooley)和图基(Tukey)发现(邓明煜、郑泽涛、梁佳俊,2021)REF_Re\r\h[3],随着之后的发展,目前最常用的FFT算法是基2,基4和分裂基算法。
数字图像处理最早也出现在1964年美国喷气推进实验室使用计算机对月球照片进行处理使原本模糊的图片变得清晰(罗毅和、唐昱泽、李浩然,2021)REF_Re\r\h[4],由此可以看出图1为月球照片(处理前),图2为月球照片(处理后),通过对比发现FFT对图像处理的效果是非常显著的。随着技术的不断发展与完善,数字图像处理技术在气象,生物医学,军事等众多领域都有着不可取代的作用(张成栋、刘志远、黄睿智,2023)REF_Re\r\h[5],对于数字图像处理最常用的方法便是FFT。由于FFT一般为复数其结果比较复杂,为了结果的准确性,本课题采用了MATLAB和C语言程序两个语言对图像进行FFT运算并对比结果(陈思远、吴东升、王俊豪,2023)。