前言:之前的关于图像识别的傅里叶变换的文章发布后,有一部分读者私信关于傅里叶变换的部分看的雾蒙蒙的,于是下文便把图像方面的傅里叶变换讲解一遍,便于大家的理解,如果希望入门基于Python的fft2()函数进行傅里叶变换,请认真研读每一句话,欢迎私信交流.
作者:张一极
转载请注明出处,谢谢
关于傅里叶变换在图像方面的应用,在一些计算机教材上把他写的过于复杂,导致许多人看的不是很懂,其实有些东西,深入理解之后并不难理解,下面带大家去探究傅里叶变换的具体细节
首先,傅里叶变换变换的是图像的高低频信号,所谓高低频信号,通俗来说 , 高频信号就是图像灰度变化强烈的地方,低频区域就是变化较小的地方 , 如果图像信号表示成一个函数,那么高频区域就是变换强烈的地方,低频区域就是变换平缓的地方,最直观的体现就是,我们第一眼看到一个图像信息,看到的肯定是图像主题的边缘,边缘就是信号变换强烈的地方,也就是所谓高频区域.
关于傅里叶变换 , 讲的是任何正弦波都可以由若干个简单的正弦波组成,由弯也能变直,那么怎么去理解这个定义呢,来自wiki的一组动图可以让我们理解一下正弦函数的叠加:
由图中可以看出越叠加,对应的波形越来越平缓,在某个极限时刻是有可能达到视觉直线的.
那么这和图像的信号变换有什么关系呢?
引用上一篇文章中的内容:
傅里叶函数变换以后的图像信号变化会变成复数形式如下图:输出部分就是fft2()函数的返回值
这里就必须提到大家可能没有接触过的一种三角函数表达方式:cos(x)+isin(x)⇔a+ib
一个三角函数的表示:
cos(x)+isin(x)⇔a+ib
其中我们在代码中利用abs()函数获取其绝对值就是[i],就是图像的高低变化量,反应的图我们需要用一个新的名词来形象的描述 一 高低频差图
这里又要放出wiki的动图了,方便大家理解:
最后得到的蓝线图像就是高低频差图,反应一个图像各部分信号变化强弱,其实就是各个分量正弦函数的振幅,对应到图像上就是不同明暗的点.
了解了傅里叶变换基本的定义之后之后,让我们来看两张图片了解基于python的傅里叶变换:
上图是一个二维坐标轴,经过傅里叶变换之后,显示出来的图像如下图:
可以看出,中间亮点的地方是图像灰度变换强烈的地方,越往两边越弱,于是亮点越来越暗淡,由此可以清晰地看到,傅里叶变换对于图像反映的是一个点和它邻域的差异强弱,在Python中主要应用的就是利用傅里叶变换后的频率图得到需要的数据,进行滤波操作或者边缘检测形状检测等.
如果还有不是很明白的朋友,可以私信我,我会尽力解答.
参考资料:
本文动图来源
Fourier transform