一、基础知识提要

  1. 理解什么是标准正交基
  2. 理解为什么周期函数和非周期函数能够使用多个三角函数sin和cos表示
  3. 理解什么是频域,什么是时域
  4. 知晓欧拉公式,即eix = cosx + isinx

如果对以上知识点不清楚的,又想了解傅里叶变换的用处的话可以听一听李永乐老师的讲解,讲的深入浅出,非常容易理解。https://www.bilibili.com/video/BV1A4411Y7vj

二、图像中傅里叶变换计算公式:

  1. 二维傅里叶变换中的正变换计算公式:

该公式可以通过蝶形算法进行优化为快速傅里叶变换,蝶形算法也是matlab中fft的源码使用的方法。算法的推导方式如下:https://wenku.baidu.com/view/5cacb2b8bd64783e09122b9a.html
    如果上述算法难以理解,也可以根据https://www.jianshu.com/p/98f493de01db中矩阵运算分方式加速matlab中的DFT运算,个人感觉它和蝶形算法的本质是相同的。如果有错误希望各位指出并更正,谢谢!

当然直接使用matlab中的fft2(image);也是可以的,不过理解一个算法会让你更加理解傅里叶变换。

  1. 正变换+滤波后如何反变换回去,计算公式如下:

    值得注意的是matlab中的索引值是由1开始的,因此Matlab中的F(1,1),f(1,1)对应于正变换和逆变换中的F(0,0), f(0,0)。

  2. 频谱的计算公式
    根据欧拉公式可知,傅里叶变换后会将实数f(x,y)变化为复数,为此,需要计算它的频谱,并将其显示为图像,若变换后R(u,v)和I(u,v)分别表示F(u,v)的实部和虚部,则有:

    因为都是正交分解,个人认为其实可以用直角坐标系中的距离来帮助理解。

  3. 那么相对应的相位角的定义为:

  4. 二维傅里叶变换后的周期性与对称性:

  5. 为什么要对频谱进行对数变换?
        由于傅里叶变换后,频谱的范围会特别的大,使得频谱中低亮度部分被忽略,因此使用对数变换log(1+abs(Fc)),其中Fc是傅里叶变换后的频谱上所表示的振幅,abs则是计算该振幅的模(详细见第3点,频谱的计算公式),这样我们就将频谱压缩到了较小的范围。

  6. 为什么傅里叶变换后四个角落的振幅远大于中心点?为什么要ffshift进行居中?
        值得注意的是,图像处理中,认为周期是无限的,那么对于一张M*N的图像,其x方向的周期为M,y轴方向的周期为N,那么有如下等式:
        又根据傅里叶变换公式得出F(0,0)等于F(x,y)的平均值的MN倍,这里可以使用二重积分的中值定理进行证明,在此不多加阐述。但由此可以得出结论,即图像上(0,0)的振幅是远高于平均值的,因为图像像素点的特性,M和N均大于等于1,也就意味着点(0,0)的振幅是平均值的MN倍,换言之,原点处的振幅远大于中间区域的振幅,又根据上面的周期性公式,可以推导出四个角的振幅均远大于图像中心的振幅,这为之后为什么用ffshift居中图像以便于过滤而埋下伏笔。其中ffshift实际上是乘以了一个(-1)x+y进行变化,如果想要详细知道为什么,可以参考冈萨雷斯数字图像处理MATLAB版.中文版的第79-80页,我也会在文末附上解释理由。

如此一来就将图A中的频谱转化成了图B中的频谱,由此

                                        图 A

                                        图B
这样一来我们对频谱上进行滤波,就只需要扣一个圆,比原来的函数简单的多得多,这也就是为什么需要进行居中的原因了。

  1. 实验部分
        为了让大家更好地理解傅里叶变化,我会把一个极为简单的样例上传至github中,希望能够对大家有帮助!其中也有冈萨雷斯的教材!
    github:https://github.com/SkyTu/Image-Processing-Learn

    这里的窗口大小是指傅里叶变换+居中后保留频谱的半径。如果不是很懂在这篇博文中有详细阐述!https://blog.csdn.net/qq_29721419/article/details/53142320
    最后附上冈萨雷斯中对对数变换的解释,有兴趣的可以深入研究。本人着实解释水平有限,希望大家能够静下心来慢慢理解。


    如果文章中有错误,谢谢大家指出!!

傅里叶滤波去噪学习笔记相关推荐

  1. MATLAB神经网络语音去噪-学习笔记

    这里写自定义目录标题 MATLAB神经网络语音去噪例程学习 创建语音数据存储 MATLAB神经网络语音去噪例程学习 此笔记属于随记,参考资料: 使用深度学习网络对语音去噪例程 创建音频数据存储audi ...

  2. CV学习笔记-图像滤波器

    图像滤波器 1. 图像滤波 1. 图像滤波&滤波器 图像滤波: 即在尽可能保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可不可缺少的操作,其处理效果的好坏将直接影响到后续图 ...

  3. opencv进阶学习笔记5:图像模糊操作,图像锐化,边缘保留滤波EPF(图像滤镜)

    基础版传送门: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版笔记目录链接: python+opencv进阶版学习笔记目录(适合有一定基础) 模糊操作 方法:均值模糊,中值模 ...

  4. opencv学习笔记22:傅里叶变换,高通滤波,低通滤波

    傅里叶变换原理 任何连续的周期信号,都可以由一组适当的正弦曲线组合而成. 下列左上图由其他三图构成. 左图经过傅里叶变换,由时域图转换到频域图.相互可逆 相位:不是同时开始的一组余弦函数,在叠加时要体 ...

  5. 冈萨雷斯《数字图像处理》学习笔记(4)--图像复原与重建(含傅里叶切片定理推导)

    一.图像复原模型 若H是线性的,空间不变的过程,则退化图像在空间域通过下式给出: g(x,y)=h(x,y)∗f(x,y)+δ(x,y)g(x,y)=h(x,y)*f(x,y)+\delta(x,y) ...

  6. SVO 学习笔记(深度滤波)

    SVO 学习笔记(深度滤波) 这篇博客 论文中的深度滤波 深度滤波的代码流程 更新Seed对象 初始化Seed对象 结尾 这篇博客  这篇博客将介绍SVO论文中的Mapping部分,主要介绍深度滤波器 ...

  7. OpenCV学习笔记(三十六)——Kalman滤波做运动目标跟踪 OpenCV学习笔记(三十七)——实用函数、系统函数、宏core OpenCV学习笔记(三十八)——显示当前FPS OpenC

    OpenCV学习笔记(三十六)--Kalman滤波做运动目标跟踪 kalman滤波大家都很熟悉,其基本思想就是先不考虑输入信号和观测噪声的影响,得到状态变量和输出信号的估计值,再用输出信号的估计误差加 ...

  8. OpenCV学习笔记(二十一)——绘图函数core OpenCV学习笔记(二十二)——粒子滤波跟踪方法 OpenCV学习笔记(二十三)——OpenCV的GUI之凤凰涅槃Qt OpenCV学习笔记(二十

    OpenCV学习笔记(二十一)--绘图函数core 在图像中,我们经常想要在图像中做一些标识记号,这就需要绘图函数.OpenCV虽然没有太优秀的GUI,但在绘图方面还是做得很完整的.这里就介绍一下相关 ...

  9. opencv学习笔记11:图像滤波(均值,方框,高斯,中值)

    为什么要使用滤波 消除图像中的噪声成分叫作图像的平滑化或滤波操作.信号或图像的能量大部分集中在幅度谱的低频和中频段是很常见的,而在较高频段,感兴趣的信息经常被噪声淹没.因此一个能降低高频成分幅度的滤波 ...

  10. 2020-4-12 深度学习笔记18 - 直面配分函数 5 ( 去噪得分匹配,噪声对比估计NCE--绕开配分函数,估计配分函数)

    第十八章 直面配分函数 Confronting the Partition Function 中文 英文 2020-4-8 深度学习笔记18 - 直面配分函数 1 ( 配分函数概念,对数似然梯度) 2 ...

最新文章

  1. Xamarin SimplerCursorAdapter 适配器(三)
  2. docker设置固定ip地址
  3. PHP 杂谈《重构-改善既有代码的设计》之二 对象之间搬移特性
  4. unsigned a:1;
  5. 加sql查询语句导出_搞不懂这些查询语句,SQL简单查询也无法从入门到熟练
  6. 你好,弗朗索瓦丝·萨冈
  7. java输入正确的信息_判断用户输入的信息是否正确
  8. 吹毛求疵C#(1)明确赋值检查缺陷
  9. 答读者问(5):有关数学对程序猿的作用、研发工作岗位要求和实习对找工作的影响等问题...
  10. 数据结构(六)霍夫曼树与编码
  11. 阿里大文娱:不存在“优酷自制团队转入阿里影业”一说
  12. mysql免安装 配置_MySql免安装版配置方法
  13. 系统安装之十 U盘安装原版win10
  14. imx6ull调试sx1268 lora调试记录
  15. Problem 2122 又见LKity
  16. android前置摄像头预览,android - 当选择了前置摄像头CameraX预览没有显示任何东西 - 堆栈内存溢出...
  17. 【人物志】美团前端通道主席洪磊:一位产品出身、爱焊电路板的工程师 1
  18. VRF在区块链中的应用
  19. 毛巾架容易生锈,生锈后要如何处理?
  20. hyper-v下安装群晖DSM5.0

热门文章

  1. Redis数据结构(一)SDS
  2. 计算机资源管理窗口,资源管理器怎么打开,教您打开电脑资源管理器
  3. Processing 自动贪吃蛇脚本
  4. 面试系列 | 一个线程OOM,进程里其他线程还能运行么?
  5. 第二阶段 day02【Scanner类、Random类、ArrayList类】
  6. 学信网忘记原手机号码的解决办法
  7. JESD 样本量 选择 可靠性 45 77样本量
  8. 重磅推荐 | 我精选的15个电子书下载网站!
  9. ftp客户端安装,六款可以安装的ftp客户端
  10. Android体重档案代码,Android开发实现的标准体重计算器功能示例