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

2023-05-16

首先安利一个网站,在线做傅里叶变换,不用等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 = s i n ( h x + k y ) z =sin(hx + ky) z=sinhx+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的摄影师:
在这里插入图片描述

练习题

判断上面两张傅里叶变换频谱图和下面两张原始图像如何对应?
在这里插入图片描述

解答

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • sql当前日期

    查询本周 从周一开始计算 1 7 从周日开始计算就删除1 7 SELECT FROM 表名 WHERE YEARWEEK date format 时间字段 39 Y m d 39 1 61 YEARWEEK now 7 查询当月 SELEC
  • 【乐视秒杀架构】每秒处理10万请求—数据库分库分表

    随着乐视硬件抢购的不断升级 xff0c 乐视集团支付面临的请求压力百倍乃至千倍的暴增 作为商品购买的最后一环 xff0c 保证用户快速稳定的完成支付尤为重要 所以在15年11月 xff0c 我们对整个支付系统进行了全面的架构升级 xff0c
  • 单点登录(SSO)

    单点登录概述 xff1a 多系统共存下 xff0c 用户在一处地方登录 xff0c 得到其他所有系统的信任 xff0c 无需再次登录 在前端用户点击登陆之后触发后端的登录接口 xff0c 用户名密码验证通过之后 xff0c 自动生成一个JW
  • 【超详细】Consul的安装的使用附多环境配置(傻瓜式教程)

    一 Consul概述 Consul 是 HashiCorp 公司推出的开源工具 xff0c 用于实现分布式系统的服务发现与配置 与其他分布式服务注册与发现的方案 xff0c Consul 的方案更 一站式 xff0c 内置了服务注册与发现框
  • 【IDEA报错总结】修改Java编译版本-maven工程

    Warning 21 17 java 从发行版 10 开始 xff0c 39 var 39 是受限制的本地变量类型 xff0c 无法用于类型声明 xff0c 也无法用作数组的元素类型 之前一直使用的JDK8 xff0c 这个项目因为需要用到
  • 建一个链表

    单独的一个类 public class LinkNode int val LinkNode next LinkNode int x val 61 x 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61
  • 判断数据类型的5种方法

    1 typeof 可以判断数据类型 xff0c 它返回表示数据类型的字符串 xff08 返回结果只能包括number boolean string function object undefined xff09 xff1b 可以使用type
  • 用python实现给女朋友自动发微信

    女朋友说上班都不回她微信 xff0c 于是给她安排一个定时自动发微信的功能 效果预览 实现过程 一 启动微信进程二 获取微信窗口在桌面的坐标三 发送消息1 鼠标依次点击打开聊天框2 输入发送内容 四 设置定时任务 一 启动微信进程 正常情况
  • 7. STM32——定时器中断(1秒闪烁灯)

    STM32 定时器中断 xff08 1秒闪烁灯 xff09 基本框架1 配置定时器时钟在 stm32f10x rcc h 头文件中查找相关函数函数 2 配置定时器结构体在 stm32f10x tim h 头文件中查找相关函数函数 3 开启定
  • 10. STM32——PWM 控制舵机(超声波感应开盖垃圾桶)

    STM32 PWM 控制舵机 通用定时输出PWMPWM的工作原理PWM的模式TIM OCMode PWM1 xff08 边沿对齐模式 xff09 TIM OCMode PWM2 xff08 中央对齐模式 xff09 占空比 舵机实物图接线舵
  • Windows10下Vmware开机蓝屏解决办法,亲测有效

    前言 虚拟机蓝屏的原因有很多 xff0c 这里我结合了网上的方法测试了三种 xff0c 建议大家三种都试一下 题外话 xff1a 其中有一台虚拟机蓝屏 xff0c 我把下面三种方法都用了才解决 xff1b 而另一台虚拟机我三种方法都用却解决
  • 3. 51——LCD1602显示 字符、字符串、数字

    51 LCD1602显示 字符 字符串 数字 LCD1602简介LCD1602相关引脚LCD1602写命令 写数据相关操作图 写指令 代码写数据 代码LCD1602显示程序步骤及如何初始化显示开关控制指令进入模式设置指令功能设定指令清屏指令
  • 12. STM32——硬件IIC驱动OLED屏幕显示

    STM32 硬件IIC驱动OLED屏幕显示 OLED屏幕OLED屏幕特点OLED屏幕接线说明OLED屏幕显存OLED屏幕原理OLED屏幕常用指令OLED屏幕字模软件的使用 写命令写数据OLED 初始化 xff08 厂家提供的代码 xff09
  • 15. STM32——软件IIC驱动OLED屏幕显示字符、字符串、数字、汉字

    STM32 软件IIC驱动OLED屏幕显示 OLED屏幕写命令写内容对OLED写入一个字节设置光标启动OLED关闭OLED全屏填充 xff08 清屏 xff09 显示字符显示字符串获取次方显示数字显示中文OLED驱动代码整合代码oled h
  • 16. STM32——测量空气的温度和湿度(STM32 + DHT11温湿度 + OLED显示)

    STM32 测量空气的温度和湿度 xff08 STM32 43 DHT11温湿度 43 OLED显示 xff09 DHT11温湿度相关介绍初始化GPIOB11启动DHT11获取一个字节获取数据代码整合DHT11 hDHT11 coled h
  • 17. STM32——SPI硬件

    STM32 SPI SPI协议SPI接口SPI接口框图SPI工作原理时钟信号的相位和极性CPHA 61 0CPHA 61 1 SPI中断状态标志发送缓存器空闲标志 xff08 TXE xff09 接收缓冲器非空 RXNE 忙BUSY标志 S
  • 关于anaconda下载之后在开始菜单找不到快捷方式的问题

    这是我在安装anaconda时犯的错误 xff0c 安装之后在开始菜单没有找到关于anaconda的文件夹 jupyter notebook spyder anaconda prompt 安装了好多遍 xff0c 最后才知道方法如此简单 第
  • 对帧率、I/P率、I帧间隔的理解2021-11-16

    对帧率 I P率 I帧间隔的理解 码率就是数据传输时单位时间传送的数据位数 一般我们用的单位是kbps即千位每秒 通俗一点的理解就是取样率 xff0c 单位时间内取样率越大 xff0c 精度就越高 xff0c 处理出来的文 件就越接近原始文
  • java读取jar包内的配置文件

    java读取jar包内的配置文件 span class token class name Properties span p span class token operator 61 span span class token keywor
  • 3、Proteus仿真STM32定时器TIM2与中断来控制流水灯的定时闪烁。

    一 实验说明 本次实验建立在上两次实验上 xff0c 稍加修改 xff0c 通过TIM2定时器中断控制LED流水灯的闪烁时间 xff0c 并且增加两个按键PA1 PA2 xff0c 其中PA1控制LED流水灯的启动 xff0c 8个灯先依次

随机推荐