窗函数在图像处理中的应用

1. 频谱混乱的三角函数图像

下图是一个45度倾斜的单一频率的余弦函数图像,请注意图中的边界都不是均匀过渡到外界的,全是不连续的跳变。

下面来看看这幅图的频谱会是什么样?

频谱混乱的原因有两个:

第一个重要的原因就是一个域(不论是时域还是频域)的不连续导致了另一个域的振荡,拖尾,泄漏。所以下图中的频谱就会看起来非常混乱。

第二个原因就是DFT的周期性。当使用MATLAB中的函数FFT或FFT2的时候,一定要意识到,所做的计算本质上离散傅里叶级数(为什么是级数而不是变换,我会再写一篇文章说明)Discrete Fourier transform(DFT)。要知道,DFT的计算隐含着默认的周期性,这一周期性不论是在时域还是在频域都是无穷的,都是无限循环的,从二维信号上讲,即沿着X方向循环复制,也在Y方向循环复制。下图中用红色方框框出的只是其中的一个周期。

请注意上图中左图中(空间域)余弦信号图和他相邻的图像在红色边缘处的各种不连续(discontinuity)。这种不连续直接导致了右图中(频率域)及其混乱,复杂的频谱。所以,在处理任何图像时,千万不要忽视了图像的边缘。比如说,FFT之前的0填充,这也是一种会经常用到的避免频谱泄漏的有效方式。

汉宁窗

现在对原始图像进行加窗,这里选择的是汉宁窗(hanning window)。下图为汉宁窗的时间域函数图像及其频谱特征。

总的来说,窗函数都比较光滑,就好像一个高斯滑动均值滤波器磨平了原始信号中边缘的不连续。

请注意上图中我用红框框出的几个重要参数,这是衡量窗函数的三个重要指标。

对图像加窗

加窗后的频谱图远比加窗前的更集中,更清晰。

2. 著名的Cameraman.tiff

刚才的那个例子中,空间域的不连续是非常明显,显而易见的(TIPS:一个域的不连续导致了另外一个域的频振荡和拖尾,不只是从空间域/时间域到频域是这样)。下面用图像处理中的经典图像来看另外一种情况。在这个例子中,边界上的跳变远没有上一个例子那么明显,但也会引起频谱的泄露,污染了(smear)真实的频谱信息,而这种情况最为常见,最容易被忽视。

下图为cameraman的原图和频谱图,注意频谱图中我用箭头标出的一条白色的中轴线,也是频谱的泄漏造成的。

产生这根白线的原因主要是,原始图像在DFT周期复制的时候,头顶的蓝天部分较亮,而脚下草坪部分较暗。由于图像横向边缘的灰度值突变(见下图),在频谱图中的Y方向产生了频谱的泄露。当然了,图像的纵向边缘也能看到一些灰度的不平滑过渡,势必也会引起图像频谱在X方向的改变,但在此例中并不明显。

下面看看加窗后的图像和加窗后频谱的改变。

频谱图中间的那条白线,没了!

3. 上三角矩阵和下三角矩阵

理论上讲上三角矩阵和下三角矩阵的频谱都应该只有一条斜线,不管是左斜还有右斜,但是往往大家看到的上/下三角矩阵的频谱图当中还有一个十字架。这都是因为没有加窗出现了DFT周期性的边界不连续。

注意图中的十字架,这是本不该出现在频谱图中的成分。

下图是加窗后的真实频谱,见下图。

总结,这篇文章用三个简单的例子,粗略的解释了窗函数在DIP中的应用。实际图像处理的工作中,但凡是用到了频谱操作,很多时候正确的使用窗函数往往是大有裨益的!

【转载】https://blog.csdn.net/daduzimama/article/details/80079215

窗函数在图像处理中的应用相关推荐

  1. 数字图像处理 --- 窗函数在图像处理中的应用

    窗函数在图像处理中的应用 上次我初略的讲了一下什么是窗函数,以及窗函数在DSP应用中的例子.之所以要引用窗函数,主要是为了防止突然的截断导致的频谱泄露.频谱的泄露在DIP的频域中也是非常常见的,我这里 ...

  2. 傅里叶变换在图像处理中的应用初步学习

    1 理解傅里叶变换在图像处理中的应用 一维傅里叶变换的作用对象是信号,信号是一维连续的:随着时间不断推移,信号强度的变换情况,可称为时域. 图像处理中的傅里叶变换的作用对象是二维矩阵.随着位置的不断改 ...

  3. 傅里叶变换在图像处理中的作用

    傅立叶变换在图像处理中非常的有用.因为不仅傅立叶分析涉及图像处理的很多方面,傅立叶的改进算法, 比如离散余弦变换,gabor与小波在图像处理中也有重要的分量. 印象中,傅立叶变换在图像处理以下几个话题 ...

  4. 5、VTK在图像处理中的应用

    5.VTK在图像处理中的应用 图像是VTK中一个非常重要的数据.数字图像广泛应用于工业生产.生物医学.媒体娱乐.地质.气象等重要领域,数字图像处理具有重要的应用价值.我们在掌握了VTK的基本知识后,这 ...

  5. 寻找下一款Prisma APP:深度学习在图像处理中的应用探讨

    在9月23日到9月24日的MDCC 2016年中国移动者开发大会"人工智能与机器人"专场中,阿里云技术专家周昌进行了题为<寻找下一款Prisma APP:深度学习在图像处理中 ...

  6. 中blur函数_Comonad在图像处理中的应用

    前几天我回答了一个关于comonad的问题Monad和Comonad到底是什么东西?.其中有讲到comonad的应用例子,但都还不够直观和实用.后来找到一个Comonad在图像处理中的应用的例子,觉得 ...

  7. matlab在图像处理中的应用论文,MATLAB在数字图像处理中的应用

    摘要:数字图像处理是一门新兴技术,经过计算机硬件的快速发展,数字图像的实时处理已经成为可能,由于数字图像处理的各种算法的出现,这就使得其处理速度越来越快,能更好的为人们服务.数字图像处理是一种通过计算 ...

  8. 模糊数学在计算机方面的应用,模糊数学理论在图像处理中的应用

    摘要:用计算机来处理图片已成为计算机研究的一个重要方向,基于模糊数学的图像处理技术是计算机图像处理中的重要计算.图像本质上具有模糊性,因此模糊信息处理技术在图像处理中的使用有其必然性.提出一种基于模糊 ...

  9. 【图像识别】【读论文】模式识别方法概论模式识别及其在图像处理中的应用

    <模式识别及其在图像处理中的应用> 1.模式识别基本框架 一般认为,模式识别是通过具体的事物进行观测所得到的具有时间.空间分布的信息,模式所属的类别或同一类中模式的总体成为模式类,其中个别 ...

最新文章

  1. 2018深度学习引用数最高的十大论文
  2. NHibernate应用二:第一个NHibernate程序
  3. 遥感计算机分类实验的难点,8-遥感实验.doc
  4. 参考文献中会议名称怎么缩写_期刊缩写查询总结
  5. c语言头文件和源文件_C语言头文件防卫式声明
  6. 非root用户sudo_ssh免密钥
  7. 正在中止线程 iis_Zephyr线程生命周期及状态
  8. 高级文件系统管理——Linux基本命令(15)
  9. Cadence学习笔记
  10. Java毕业设计-企业员工考勤打卡管理系统
  11. Java进阶之FileUpload完成上传
  12. PDF编辑器里的测量工具如何使用?
  13. Excel表格实现下拉复选框多选
  14. 2022变更调查 举证照片查看器
  15. 合天网络靶场-大规模网络环境仿真服务平台
  16. Endnote实用快捷键
  17. linux教程试卷_linux基础教程试卷及答案.doc
  18. viper4android历史版本,VIPER4Android最新版本
  19. 2022 极术通讯-从CPU、DSA到软硬件融合
  20. Machine learning strategies for systems with invariance properties( 具有不变性系统的机器学习策略 )2016年Julia Ling

热门文章

  1. C++11 显示类型转换
  2. oracle大数据量迁移,分批量导入样例(fetch...bulk collect)以及forall结合使用
  3. ubuntu如何删除刚添加的源?
  4. 携程Apollo(阿波罗)配置中心在Spring Boot项目快速集成
  5. 【转】 CSS3实现10种Loading效果
  6. 转换和删除重复命令tr
  7. 阶乘、斐波那契数列(java版)
  8. Linux之/etc/group文件
  9. Centos7 安装Oracle JDK1.8和OpenJDK 1.8
  10. mysql关键字test_MySQL关键字Distinct的详细介绍