OpenCV傅里叶变换篇

OpenCV傅里叶变换

  • 傅里叶变换
  • 理论基础
  • 实现逆傅里叶变换

Fu Xianjun. All Rights Reserved

傅里叶变换

讲傅里叶变换前,首先介绍一下图像处理,图像处理一般分为空间域处理和频率处理。
空间域处理是直接对图像内的像素点进行处理。而我们今天要讲的傅里叶变换是频域变换的一种,同时也是应用最为广泛的一种频率变换,它能够将图像从空间域变换到频率域,傅里叶变换在图像处理领域内有着非常重要的作用。

理论基础

傅里叶变换非常抽象,很多人即使用了很多年的傅里叶变换,也不能彻底的了解傅里叶变换的原理,傅立叶变换能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅立叶变换和离散傅立叶变换。最初傅立叶分析是作为热过程的解析分析的工具被提出的。
#Numpy实现傅里叶变换
今天主要说明用Python中的Numpy模块来实现傅里叶变换,首先我们知道,Numpy模块提供了傅里叶变换的功能,Numpymokuaizhongdefft2()函数可以实现图像的傅里叶变换,其中,Numpy实现傅里叶变换的语法格式是:返回值 = numpy.fft.fft2(原始图像)
这里需要主要的是, 参数“原始图像”的类型一定得是灰度图,而函数的返回值是一个复数数组。

实现逆傅里叶变换

注意,如果之前已经进行过傅里叶变换的操作,我们首先得使用numpy.fft.ifftshift()函数来将零频率分量转移到原来的位置,再进行逆傅里叶变换。
numpy.fft.ifft2()函数可以实现逆傅里叶变换,返回空域复数数组。该函数的语法格式为:
返回值 = numpy,fft.ifft2(频率数据)
该返回值仍然是一个复数数组
逆傅里叶变换得到的空域信息是一个复数数组,需要将该信息调整至[0,255]灰度空间内,使用的公式为:iimg = np.abs(逆傅里叶变换结果)

你可能感兴趣的:(OpenCV傅里叶变换篇)