首先安利一个网站,在线做傅里叶变换,不用等MATLAB漫长的启动了
https://sci2fig.herokuapp.com/fourier
文章中部分图片来自
https://blog.csdn.net/ViatorSun/article/details/82387854
理论部分参考了:
https://homepages.inf.ed.ac.uk/rbf/HIPR2/fourier.htm
https://plus.maths.org/content/fourier-transforms-images

零基础也能理解傅里叶变换后的频谱图

  • 频谱图
    • 类比
  • 图像的傅里叶变换原理
    • 位置信息
    • 图像高频低频含义
  • 对图像的操作所造成的影响
  • 具体公式和理论应用
  • 常见的傅里叶变换结果
  • 练习题
    • 解答

频谱图

声音的频谱图很好理解,尖峰代表着该频率有着更多的分量

关于数字信号处理的更多内容,这里安利我的学习笔记【持续更新中】:【从零开始学信号与系统】

但是图像的傅里叶变换抽象的多,下面讲讲述如何看懂傅里叶图。

类比

将图像视为变化的函数,不过不是随时间变化,而是跨图像的二维空间变化
在灰度数字图像中,每个像素的值在0到255之间,代表该像素的暗度。因此,该像素的暗度或强度是水平坐标和垂直坐标的函数,给出了该像素的位置。您可以将图像视为起伏的景观,而高度由像素值确定。


图像也可以表示为正弦波的总和,但是这次,它们不是一维波,而是二维变化的波,就像纸张上的波纹。

二维正弦波写为

z=sin(hx+ky)z =sin(hx + ky)z=sin(hx+ky)

其中x和y给出“图纸”上各点的坐标,z是该点处波浪的高度或强度,a给出波浪的振幅(最大高度),h和k给出数字波分别在x和y方向重复的次数(它们是 x和y频率)。

当k = 0时,正弦波仅沿x轴波动。当h = 0时,它仅沿y轴波动。但是,如果k 和h都不为零,则正弦波在片材上对角移动,并且波的传播方向(垂直于波阵面)与斜率h / k成一定角度 。

图像的傅里叶变换原理

图像的傅立叶变换将图像(起伏的地形)分解为正弦波的总和。就像声波一样,对频率绘制傅立叶变换。但是与那种情况不同,频率空间具有二维,对于x和y维 中的波的频率 h和k。因此,它不是以一系列尖峰的形式绘制的,而是以与原始图像(大约)相同的像素尺寸绘制的图像

位置信息

傅立叶变换中的每个像素都有一个坐标(h,k)表示在傅立叶变换中具有x频率h和 y频率k的正弦波的贡献。

  • 中心点表示(0,0)波–没有波纹的平面–其强度(灰度颜色的亮度)是图像中像素的平均值。
  • 中心左侧和右侧的点代表沿x轴变化的正弦波,即k = 0)。这些点的亮度表示傅立叶变换中具有该频率的正弦波的强度(强度是正弦波的振幅的平方)。
  • 在中心点上下垂直的那些代表那些在y中变化但在x中保持恒定(即h = 0)的正弦波。傅立叶变换中的其他点表示对角波的贡献。

    例如,考虑上面的图像,在左侧。这是二维波sin(x)被视为灰度图像。它的旁边是此灰度图像的傅立叶变换。
  • 它具有与原始像素相同的尺寸(像素),并且全黑
  • 在中心处有一些明亮的像素
  • 放大傅立叶变换的中心(您可以在上面在右侧看到),您会看到恰好有三个不是黑色的像素。
    • 一个是明亮的中心点,坐标为(0,0),代表(0,0)波对图像的贡献。
    • 两侧的明亮像素具有坐标(1,0)和反射(-1,0),表示(1,0)波(我们原始图像中的正弦波)的贡献。
    • 傅立叶变换中的所有其余像素都是黑色的,因为仅使用原始(1,0)波精确描述了原始图像。

图像高频低频含义

图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度

简短概括:

  • 图像的高频,意味着灰度变化剧烈
  • 图像的低频,意味着灰度变化平坦

不同频率信息在图像结构中有不同的作用:

  • 图像的主要成分是低频信息,它形成了图像的基本灰度等级,对图像结构的决定作用较小;
  • 中频信息决定了图像的基本结构,形成了图像的主要边缘结构;
  • 高频信息形成了图像的边缘和细节,是在中频信息上对图像内容的进一步强化。

图像进行二维傅立叶变换得到频谱图,就是图像梯度的分布图,当然频谱图上的各点与图像上各点并不存在一一对应的关系,即使在不移频的情况下也是没有。
傅立叶频谱图上我们看到的明暗不一的亮点,实际是上图像上某一点与邻域点差异的强弱,即梯度的大小,也即该点的频率的大小(可以这么理解,图像中的低频部分指低梯度的点,高频部分相反)。

对图像的操作所造成的影响

在二维傅里叶变换中,空间域中横向的周期变化会反应在频谱图中的Y轴上,而空间域中纵向的周期变化会反应在频谱图中的X轴上。空间域中东南方向的周期变化会反应在频谱图中的东北方向,反之亦然。说明见下图。

具体公式和理论应用

参考:https://homepages.inf.ed.ac.uk/rbf/HIPR2/fourier.htm
由于我们只关注数字图像,因此我们将讨论仅限于离散傅立叶变换(DFT)。

DFT是采样的傅立叶变换,因此不包含构成图像的所有频率,而仅包含足够大以完全描述空间域图像的一组采样。频率的数量对应于空间域图像中的像素数量,即,空间域和傅立叶域中的图像具有相同的大小。

对于大小为N×N的正方形图像,二维DFT由下式给出:

其中f(a,b)是空间域中的图像,指数项是与傅立叶空间中每个点F(k,l)对应的基函数。该方程式可以解释为:通过将空间图像乘以相应的基函数并将结果相加得出每个点F(k,l)的值。

基本函数是频率增加的正弦和余弦波,即 F(0,0)表示图像的DC分量,该分量对应于平均亮度,F(N-1,N-1)表示最高频率。

以类似的方式,可以将傅立叶图像重新变换到空间域。傅里叶逆变换由下式给出:
【这里不太会翻译,看图吧】

原网站还有关于低通滤波等操作的详细知识,吃透了再补文。

常见的傅里叶变换结果

不同频率的正弦波:

MIT的摄影师:

练习题

判断上面两张傅里叶变换频谱图和下面两张原始图像如何对应?

解答

右下角的图片灰度变化更剧烈,由于图像的频率是灰度的梯度,且傅里叶变换后高频特征位于边缘,因此对应着亮点分布在更边缘地区的左上图:

【零基础】看懂理解傅里叶变换后的频谱图-附例题相关推荐

  1. ICCV 2021 Oral | 姿态估计——零基础看懂RLE

    最近ICCV 2021上有一项姿态识别领域非常厉害的工作,它就是今天要介绍的残差似然估计(Residual Log-likelihood Estimation).其工作的核心在于,通过flow方法,估 ...

  2. 极客公园-零基础看懂全球 AI 芯片:详解「xPU」

    https://www.sohu.com/a/169062329_413980 随着 AI 概念火爆全球,做 AI 芯片的公司也层出不穷.为了让市场和观众能记住自家的产品,各家在芯片命名方面都下了点功 ...

  3. 《零基础看得懂的C++入门教程 》——(10)面向对象

    一.学习目标 了解C++类是什么 了解类对象与类型修饰一样进行创建 了解了类的属性如何使用 了解了类方法的使用方法 目录 预备第一篇,使用软件介绍在这一篇,C++与C使用的软件是一样的,查看这篇即可: ...

  4. 《零基础看得懂的C++入门教程 》——(5) 容我套个娃 循环

    一.学习目标 了解循环的使用方法 目录 预备第一篇,使用软件介绍在这一篇,C++与C使用的软件是一样的,查看这篇即可:<软件介绍> 想了解编译原理和学习方法点这篇,学习方法和一些原理C++ ...

  5. 《零基础看得懂的C++入门教程 》——(4)条件判断原来如此

    一.学习目标 了解什么是条件判断 了解多个条件判断 了解输入 了解什么是逻辑与.逻辑或 目录 预备第一篇,使用软件介绍在这一篇,C++与C使用的软件是一样的,查看这篇即可:<软件介绍> 想 ...

  6. 《零基础看得懂的C++入门教程 》——(2)什么是数据类型、变量?一看便会

    一.学习目标 了解基本常用的数据类型 了解什么是变量 目录 预备第一篇,使用软件介绍在这一篇,C++与C使用的软件是一样的,查看这篇即可:<软件介绍> 想了解编译原理和学习方法点这篇,学习 ...

  7. 《假如编程是魔法之零基础看得懂的Python入门教程 》——(七)我把魔法变成了积木

    学习目标 了解魔法积木的使用--自定义函数 了解魔法积木的结果反馈--自定义函数返回值 了解魔法积木的原料传递--自定义函数传参 了解魔法积木的类型分类--类与对象 推荐 1.<备受好评的看得懂 ...

  8. 《假如编程是魔法之零基础看得懂的Python入门教程 》——(六)精简魔法更强大

    学习目标 了解对相似逻辑的简化编写--循环 推荐 1.<备受好评的看得懂的C语言入门教程> 目录 第一篇:<假如编程是魔法之零基础看得懂的Python入门教程 >--(一)既然 ...

  9. 《假如编程是魔法之零基础看得懂的Python入门教程 》——(三)使用初始魔法跟编程魔法世界打个招呼吧

    学习目标 完成显示魔法的使用--输出print 完成传入魔法的使用--输入input 使魔法生效--运行python文件 目录 第一篇:<假如编程是魔法之零基础看得懂的Python入门教程 &g ...

最新文章

  1. R语言ggplot2可视化:使用pracma包的interp1函数对缺失值进行线性插值后进行可视化分析、用虚线标记进行数据填充的区域
  2. 域名怎么设置非80端口_深信服网关怎么设置端口映射
  3. easy-ui表单校验---针对单个字段,多重校验(有参数校验+无参数检验)
  4. 2006年4月计算机等级考试二级Java笔试答案
  5. % mysql 代表_MySQL中的星号(*)和百分号(%)代表表示什么,MySQL的库名、表名、字段名、字段值是否区分大...
  6. ASP.NET Core使用Nacos SDK访问阿里云ACM
  7. centos7 安装mysql php_Centos7 安装mysql与php
  8. mkdir: 无法创建目录“/home/lj/.tldr“: 文件已存在
  9. JAVA团队开发手册 - 2.代码管理
  10. Resteasy配置及其使用
  11. 终端运行python报联网_终端里为什么无法运行python
  12. u8 附件上传后存放路径_用友U8生产不良退料案例教程
  13. flowchart流程图编程语言下载_c语言流程图生成器下载
  14. windows环境下,CMD控制台查看进程、结束进程相关命令
  15. Spring核心模块及功能汇总
  16. 各领域医疗机器人分析
  17. linux下部署maven的web项目
  18. 学计算机能考南京哪个大学,这三所南京市高校,适合报考计算机类专业,适合的考生不要错过...
  19. Java 1082 射击比赛
  20. 0685-6.2.0-什么是Cloudera虚拟私有集群和SDX-续

热门文章

  1. css精灵,又叫css背景精灵
  2. 我的世界java手机版1.16地狱更新_我的世界:mc大神发布1.16地狱更新,玩家:你这是要逼死官方?...
  3. GBase 8s 数据库类型
  4. 中级职称计算机考试复习多久,你以为备考中级看书听课就够了吗?电脑答题会输入公式才能得分!...
  5. Anti-Aliasing
  6. Java后端阿里云短信平台发送短信
  7. 使用PYTHON绘制直流电机和交流电机机固有械特性曲线
  8. android手机电池温度,安卓手机电池温度查看方法图文教程
  9. 即构SDK5月迭代:新增声道选择、网络探测、智能消噪等功能,打造更优的视听体验
  10. OpenGl 之学习笔记 glTexCoord2f() 函数以及纹理相关知识总结