傅里叶变换

这篇具有很好参考价值的文章主要介绍了傅里叶变换。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


在计算机视觉中,有一个经典的变换被广泛使用——傅里叶变换。傅里叶变换是将时间域上的信号转变为频率域上的信号,进而进行图像去噪、图像增强等处理。

一、时域与频域

什么是时域(Time domain)?从我们出生,我们看到的世界都以时间贯穿,股票的走势、人的身高、汽车的轨迹都会随着时间发生改变。这种以时间作为参照来观察动态世界的方法我们称其为时域分析。而我们也想当然的认为,世间万物都在随着时间不停的改变,并且永远不会静止下来。

什么是频域(Frequency domain)?频域是描述信号在频率方面特性时用到的一种坐标系。用线性代数的语言就是装着正弦函数的空间。频域最重要的性质是:它不是真实的,而是一个数学构造。频域是一个遵循特定规则的数学范畴。正弦波是频域中唯一存在的波形,这是频域中最重要的规则,即正弦波是对频域的描述,因为时域中的任何波形都可用正弦波合成。

对于一个信号来说,信号强度随时间的变化规律就是时域特性,信号是由哪些单一频率的信号合成的就是频域特性。

时域分析与频域分析是对信号的两个观察面。时域分析是以时间轴为坐标表示动态信号的关系;频域分析是把信号变为以频率轴为坐标表示出来。一般来说,时域的表示较为形象与直观,频域分析则更为简练,剖析问题更为深刻和方便。目前,信号分析的趋势是从时域向频域发展。然而,它们是互相联系,缺一不可,相辅相成的。贯穿时域与频域的方法之一,就是传说中的傅里叶分析。傅里叶分析可分为傅里叶级数(Fourier Serie)和傅里叶变换(Fourier Transformation)。

二、傅里叶级数

傅里叶级数是一种对周期信号进行分解的方式。

如下图所示,左上角为正弦方波,余下为通过不同的正弦谐波数可以去拟合这个方波结果。
傅里叶变换,计算机视觉,计算机视觉,python,图像处理,傅里叶变换

可以看到,叠加的谐波信号越多时,越接近于方波信号。

傅里叶级数由法国数学家傅里叶提出,即满足条件(狄利克雷条件)的任何周期函数可以由一系列不同频率的正弦(余弦)函数叠加而成。这种相加形式又称为级数,所以也称为傅里叶级数。

三、傅里叶变换

那么对信号的不同频率进行分解有什么好处呢?

如下图所示,从时域上看,最下方叠加得到的信号是很难分析出里面蕴含的频率信息的。
傅里叶变换,计算机视觉,计算机视觉,python,图像处理,傅里叶变换

而通过傅里叶分解后,如下图右图所示,可以很容易地观察到频率的有无和幅度的大小(相位也有对应的相位谱,这里没有列出)。
傅里叶变换,计算机视觉,计算机视觉,python,图像处理,傅里叶变换

因此,通过傅里叶变换将某一信号分解为不同频率的信号,可以很容易地对信号中的某一段频段进行观察和操作。

3.1 傅里叶变换分类

根据原信号的不同类型,我们可以把傅立叶变换分为四种类别:

  • 非周期性连续信号(傅立叶变换(Fourier Transform))
  • 周期性连续信号(傅立叶级数(Fourier Series))
  • 非周期性离散信号(离散时域傅立叶变换(Discrete Time Fourier Transform))
  • 周期性离散信号(离散傅立叶变换(Discrete Fourier Transform))

这四种傅立叶变换都是针对正无穷大和负无穷大的信号,即信号的的长度是无穷大的,我们知道这对于计算机处理来说是不可能的,那么有没有针对长度有限的傅立叶变换呢?没有。因为正余弦波被定义成从负无穷小到正无穷大,我们无法把一个长度无限的信号组合成长度有限的信号。

面对这种困难,方法是把长度有限的信号表示成长度无限的信号,可以把信号无限地从左右进行延伸,延伸的部分用零来表示,这样,这个信号就可以被看成是非周期性离散信号,我们就可以用到离散时域傅立叶变换的方法。还有,也可以把信号用复制的方法进行延伸,这样信号就变成了周期性离散信号,这时我们就可以用离散傅立叶变换方法进行变换。

但是对于非周期性的信号,我们需要用无穷多不同频率的正弦曲线来表示,这对于计算机来说是不可能实现的,因为在计算机中只有离散的和有限长度的数据才能被处理。所以对于离散信号的变换只有离散傅立叶变换(DFT)才能被适用,对于其它的变换类型只有在数学演算中才能用到,在计算机中我们只能用DFT方法。

3.2 一维傅里叶公式

傅里叶变换,计算机视觉,计算机视觉,python,图像处理,傅里叶变换

其中,ω 表示频率, t 表示时间, 它将频率域的函数表示为时间域函数 f(t) 的积分。

3.3 二维离散傅里叶变换

我们知道,灰度图像是由二维的离散的点构成的。二维离散傅里叶变换(Two-Dimensional Discrete Fourier Transform)常用于图像处理中,对图像进行傅里叶变换后得到其频谱图。频谱图中频率高低表征图像中灰度变化的剧烈程度。图像中边缘和噪声往往是高频信号,而图像背景往往是低频信号。我们在频率域内可以很方便地对图像的高频或低频信息进行操作,完成图像去噪,图像增强,图像边缘提取等操作。

对二维图像进行傅里叶变换公式如下:
傅里叶变换,计算机视觉,计算机视觉,python,图像处理,傅里叶变换

其中,图像长 M,高 N。F(u,v)表示频域图像,f(x,y)表示时域图像。u 的范围为[0,M-1],v 的范围为[0,N-1]。

对二维图像进行傅里叶逆变换公式如下:
傅里叶变换,计算机视觉,计算机视觉,python,图像处理,傅里叶变换

其中,图像长 M,高 N。f(x,y)表示时域图像,F(u,v)表示频域图像。x 的范围为[0,M-1],y 的范围为[0,N-1]。

四、OpenCV中傅里叶变换的应用

4.1 傅里叶变换

代码如下:

import cv2
import numpy as np
import matplotlib.pyplot as plt
 
# 读取图像
img = cv2.imread('lenna.jpg', 0)
 
# 傅里叶变换
dft = cv2.dft(np.float32(img), flags = cv2.DFT_COMPLEX_OUTPUT)
 
# 将频谱低频从左上角移动至中心位置
dft_shift = np.fft.fftshift(dft)
 
# 频谱图像双通道复数转换为0-255区间
result = 20*np.log(cv2.magnitude(dft_shift[:,:,0], dft_shift[:,:,1]))
 
# 显示图像
plt.subplot(121), plt.imshow(img, cmap = 'gray')
plt.title('Original Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122), plt.imshow(result, cmap = 'gray')
plt.title('Magnitude Spectrum'), plt.xticks([]), plt.yticks([])
plt.show()

效果如下:
傅里叶变换,计算机视觉,计算机视觉,python,图像处理,傅里叶变换

4.2 傅里叶逆变换

代码如下:

import cv2
import numpy as np
import matplotlib.pyplot as plt

# 读取图像
img = cv2.imread('lenna.jpg', 0)
 
# 傅里叶变换
dft = cv2.dft(np.float32(img), flags = cv2.DFT_COMPLEX_OUTPUT)
dftshift = np.fft.fftshift(dft)
res1= 20*np.log(cv2.magnitude(dftshift[:,:,0], dftshift[:,:,1]))
 
# 傅里叶逆变换
ishift = np.fft.ifftshift(dftshift)
iimg = cv2.idft(ishift)
res2 = cv2.magnitude(iimg[:,:,0], iimg[:,:,1])
 
# 显示图像
plt.subplot(131), plt.imshow(img, 'gray'), plt.title('Original Image')
plt.axis('off')
plt.subplot(132), plt.imshow(res1, 'gray'), plt.title('Fourier Image')
plt.axis('off')
plt.subplot(133), plt.imshow(res2, 'gray'), plt.title('Inverse Fourier Image')
plt.axis('off')
plt.show()

效果如下:
傅里叶变换,计算机视觉,计算机视觉,python,图像处理,傅里叶变换

源码仓库地址

🌼图像处理、机器学习的常用算法汇总文章来源地址https://www.toymoban.com/news/detail-780340.html

到了这里,关于傅里叶变换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (数字图像处理MATLAB+Python)第四章图像正交变换-第一节:离散傅里叶变换

    一维离散傅里叶变换(Discrete Fourier Transform,DFT) :是一种数学技术,用于将代表离散时间信号的N个复数序列从 时域转换到频域 。DFT被广泛用于许多应用,如音频和图像处理、通信和控制系统。DFT是傅里叶变换的离散版本,傅里叶变换是一种用于分析频域信号的连续数学技

    2023年04月13日
    浏览(94)
  • python数字图像处理基础(七)——直方图均衡化、傅里叶变换

    均衡化原理 图像均衡化是一种基本的图像处理技术,通过更新图像直方图的像素强度分布来调整图像的全局对比度。这样做可以使低对比度的区域在输出图像中获得更高的对比度。 简单理解:改变图像对比度,让色彩更丰富,灰度值直方图:瘦高 - 均衡 本质上,直方图均衡

    2024年01月18日
    浏览(57)
  • 跟我学Python图像处理丨傅里叶变换之高通滤波和低通滤波

    摘要: 本文讲解基于傅里叶变换的高通滤波和低通滤波。 本文分享自华为云社区《[Python图像处理] 二十三.傅里叶变换之高通滤波和低通滤波》,作者:eastmount 。 傅里叶变换的目的并不是为了观察图像的频率分布(至少不是最终目的),更多情况下是为了对频率进行过滤,

    2024年02月04日
    浏览(53)
  • 图像处理之傅里叶变换

    1、傅里叶变换的定义 傅里叶变换是在以时间为自变量的“信号”与频率为自变量的“频谱”函数之间的某域研究中较复杂的问题在频域中变得简单起来,从而简化其分析过程;另一方面使信号与系统的物理本质在频域中能更好地被揭示出来。当自变量“时间”或“频率”为

    2024年02月15日
    浏览(41)
  • OpenCV图像处理之傅里叶变换

    傅里叶变换: 目的就是得到图像的低频和高频,然后针对低频和高频进行不同的处理。处理完之后,在通过逆变换恢复到图像,这时候对低频和高频的处理就会反映到图像上。 频率 高频:变化剧烈的灰度分量,例如边界。 低频:变化缓慢的灰度分量,例如一天蓝天(相似的

    2024年02月06日
    浏览(61)
  • 【MATLAB图像处理】傅里叶变换--幅度谱、相位谱、逆变换

    fft2()  傅里叶正变换 fftshift()  频谱搬移-直流量(f=0)搬移至频谱中心 幅度谱只包含亮度信息(f),逆变换后由于没有位置信息(x,y)导致无法重构图像;相位谱只包含位置信息(x,y),逆变换后由于没有亮度信息(f)导致重构图像只有轮廓没有亮度。而同时利用幅度谱

    2024年02月11日
    浏览(41)
  • 【Python入门系列】第十篇:Python图像处理和计算机视觉

    图像处理和计算机视觉是计算机科学中非常重要的领域之一。Python作为一种功能强大且易于学习的编程语言,提供了许多用于图像处理和计算机视觉的库和工具。本文将介绍一些常用的Python库,并提供一些示例代码。 Python中有几个流行的图像处理库,其中最常用的是OpenCV和

    2024年02月12日
    浏览(39)
  • [笔记]Python计算机视觉编程《一》 基本的图像操作和处理

    今天,图像和视频无处不在,在线照片分享网站和社交网络上的图像有数十亿之多。几乎对于任意可能的查询图像,搜索引擎都会给用户返回检索的图像。实际上,几乎所有手机和计算机都有内置的摄像头,所以在人们的设备中,有几 G 的图像和视频是一件很寻常的事。计算

    2024年02月02日
    浏览(56)
  • Matlab|数字图像处理02|图像的傅里叶变换(平移/旋转性质)及图像的离散余弦变换

    问题1:x,y方向同时平移后频谱有何变化? 答:经过平移后的傅里叶变换幅值图与原图像得到的傅里叶变换幅值图基本相同,平移不改变频谱的幅值。 代码运行结果: 代码: 问题2:编程验证一幅图旋转45度后,其傅里叶谱图也旋转了45度。 代码: 问题3:第8行10的数字大小对

    2024年02月08日
    浏览(47)
  • 数字图像处理Malab/C++(三)傅里叶变换及频谱图、频域滤波

    1、选择任意灰度图像。计算和显示原始图像的频谱振幅和任意因子缩放的同一图像的频谱振幅。 2、选择任意灰度图像。计算和显示原始图像的频谱振幅和任意角度旋转的同一图像的频谱振幅。 3、 使用标准Lena灰度图片,添加高斯噪声imnoise(I,‘gaussian’, 0.05) 。请用合适的频

    2024年02月06日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包