基于傅里叶变换的MATLAB图像处理

2019-08-13 08:47任鸿鹏
科技资讯 2019年16期

任鸿鹏

摘  要:作为一项重要的技术手段,数字图像处理已经广泛地应用于当今社会的众多领域,其中最常用到的方法就是傅里叶变换。该文在MATLAB的软件环境下,简要阐述了基于傅里叶变换的图像处理原理,并给出了相关图像的处理结果。这些将有助于增加初学者对傅里叶变换的理解,提升其处理实际问题的能力。

关键词:图像变换  傅里叶变换  MATLAB

中图分类号:TP391                                 文献标识码:A                         文章编号:1672-3791(2019)06(a)-0011-03

图像是世界万物的直观反映,是人类认识世界的重要源泉。当今世界,人类不仅可以通过特定的手段观测世界来获取图像,更可以在计算机的帮助下制造出各式各样的图像,因此,图像的制作、变换等成为了热门研究方向。

图像的变换,就是在计算机的支撑下,对图像进行有目的的处理的过程。现代社会,随着科技水平的提高,人们对图像的要求也越来越高,二维码的扫描、人脸识别、网络连接以及医学界的X光[1]技术等无一不体现了对图像的高度要求,因此掌握图像变换技术也变得越来越重要。

在图像变换的诸多方法中,傅里叶变换是最为常见的一种方法。傅里叶变换是由法国数学家傅里叶提出的一种线性积分变换,其核心思想是任何连续的周期函数都可以由一组相应的正弦函数叠加而成[2]。傅里叶变换的物理效果是将图像从空间域转化到频率域,逆变换是将图像从频率域转化到空间域。而图像的频率决定了图像的基本灰度等级、基本结构与边缘细节,正是傅里叶变换与图像频率之间的密切关系,因此被广泛应用于图像变换操作中。

利用傅里叶变换对图像进行相关操作时,最常用的就是MATLAB软件。MATLAB软件是由美国MathWorks公司出品的商業数学软件,在图像处理、工程计算、信号检测、金融分析等方面有着十分广泛的应用。利用MATLAB软件的强大功能对图像进行几何操作、变换、拉伸、增强处理,可以方便、快捷地达到预期效果[3]。

该文正是以介绍3种傅里叶变换及其对应的一些实例来展开说明的,实例对应的软件环境,即MATLAB软件环境。

1  傅里叶变换

傅里叶变换就是以时间为自变量的信号和以频率为自变量的频谱函数之间的某种变换关系。这种变换同样可以用在其他有关数学和物理的各种问题之中,并可以采用其他形式的变量。当自变量时间或频率取连续时间和离散时间形式的不同组合,就可以形成各种形式的傅里叶变换对。

傅里叶变换是信号处理中最重要、应用最广泛的变换。从某种意义上来说,傅里叶变换就是函数的第二种描述语言。

傅里叶变换理论及其物理解释的结合对图像处理领域诸多问题的解决提供了有利的思路和行之有效的方法,它让人们从事物的另一方面来考虑问题,这样在分析某一问题时就会从空域和频域两个角度来考虑问题并来回切换,使图像处理过程更简单、有效,对于迂回解决图像处理中的难题非常有帮助,被广泛应用于图像处理中。

而傅里叶变换又有多种分类情况。

1.1 连续傅里叶变换

要得到每一个频率分量,需进行N次乘法和N-1次加法运算。要完成整个变换需要N2次乘法和N(N-1)次加法运算。当序列较长时,必然花费较长的时间。

2  图像傅里叶变换的一些实例

在MATLAB中,函数fft、fft2和fftn可以分别实现一维、二维和N维DFT算法;函数ifft、ifft2和ifftn用来计算反DFT;而函数ffishift可以把傅里叶操作(fft、fft2、fftn)所得结果中的零频率成分转移到矩阵的中心,从而可以方便地观察频谱。

运用MATLAB软件实现对创建的图像进行傅里叶变换的程序[7]如下,图像实现效果如图1所示。

f = zeros(60,60);

f(10:48,26:34) = 1;

F0 = fft2(f);

F2 = log(abs(F0));

F = fft2(f,256,256);

F1 = fftshift(F);

figure;

subplot(221);

imshow(f,'InitialMagnification','fit');

title('原像');

subplot(222);

imshow(F2,[-1 5],'InitialMagnification','fit');

title('确定像素值的范围');

subplot(223);

imshow(log(abs(F)),[-1 5]);

title('对数显示补零变换后的图像');

subplot(224);

imshow(log(abs(F1)),[-1 5]);

title('对数显示频移后的图像');

利用MATLAB实现对一个图像进行二维傅里叶变换的程序如下,图像实现效果如图2所示。

clear all;

I = checkerboard(40);

F = fft2(I);

subplot(1,2,1);

imshow(I);

title('原始图像');

subplot(1,2,2);

imshow(F);

title('二维傅里叶变换');

3  结语

综上,利用傅里叶变换可以对图像进行许多方便、快捷的处理。随着科技的进步,数字图像处理技术受到了越来越多的重视,因此傅里叶变换也将获得越来越广阔的应用空间。学习好傅里叶变换,不仅会提升使用者的知识水平,也会让使用者的数字图像处理能力得到极大提升。

实现图像的傅里叶变换,必然离不开MATLAB这款软件,基于MATLAB这款软件的数字图像处理技术与常规技术相比,不仅功能性更强,而且操作也更加简单,在一定程度上推动了数字图像处理技术的发展。故加深使用者对MATLAB在数字图像处理中应用原理的理解,提升使用者对MATLAB在图像处理中的熟练程度,对个人、对整个社会都有着十分重大的意义。

参考文献

[1] 张啸剑,付聪聪,孟小峰.面向人脸图像发布的差分隐私保护[J].中国图象图形学报,2018,23(9):1305-1315.

[2] 郭士龙.巧用傅里叶变换优化摄影图像[J].电脑与信息技术,2018,26(4):44-45.

[3] 江铁成.基于MATLAB的数字图像处理技术研究[J].合肥师范学院学报,2017,35(6):25-27.

[4] 楼红卫.傅里叶变换与处处连续无处可微函数[J].高等数学研究,2017,20(4):7-9.

[5] 朱兆梁,马朝翰,李健,等.基于傅里叶变换的碎片拼接复原技术[J].科技传播,2014,6(5):173-174.

[6] 陈晋.快速傅里叶变换的研究[J].黑龙江科学,2018,9(24):62-63.

[7] 王波.傅里叶变换时移性质的MATLAB辅助教学初探[J].电脑知识与技术,2018,14(33):140-141.