最佳陷波滤波器(傅里叶变换,matlab实现)

1基本概念

1.1频域滤波步骤小结
在频域中的滤波是简单明了的。它包含如下步骤:
(1)给定一幅大小为MN的输入图像f(x,y),选择填充参数P,Q,典型地,我们选择P=2M和Q=2N。
(2)对f(x,y)添加必要数量的0,形成大小为P
Q的填充后的图像fp(x,y)。
(3)用(-1)x+y乘以fp(x,y)移到其变换的中心。
(4)计算来自步骤3的图像DFT,得到F(u,v)。
(5)生成一个实的、对称的滤波函数H(u,v),其大小为PQ,中心在(P/2,Q/2)处。用阵列相乘形成乘积G(u,v)=H(u,v)F(u,v);
(6)得到处理后的图像:
(7)通过从gp(x,y)的左上象限提取M
N区域,得到最终处理结果g(x,y)。
参照课本p264进行实验,如图1所示,详细可见程序filtPro.m。

1.2带阻滤波器
理想带阻滤波器的表达式为:

其中,D(u,v)是到中心化频率矩形原点的距离,W是频带的宽度,D0是频带的中心半径。
同样,n阶的巴特沃斯带阻滤波器的表达式为:

高斯带阻滤波器的表达式为:

详细可见程序lowpfilter.m,参考课本p336利用带阻滤波器消除周期性噪声,如图4所示,具体代码可见filtCircle.m.

1.3带通滤波器
带通滤波器执行与带阻滤波器相反的操作。带通滤波器的传递函数Hbp(u,v)是根据相应的带阻滤波器的传递函数Hbr(u,v)并应用下式:

1.4陷波滤波器
陷波滤波器阻止(或通过)事先定义的中心频率领域内的频率。假定频率矩形的中心已经移动到点(M/2,N/2),(u0,v0)的值对应移动中心,则有

程序notchfilter.m为带阻陷波滤波器,分别为理想型、巴特沃斯、高斯带阻陷波滤波器,notchfilter_1.m为带阻陷波滤波器对。

2.算法思想及实验结果分析

(1)第一步,提取干扰模式的主频率成分。
通过观察傅立叶变换后的频谱图,也叫功率图,我们首先就可以看出,图像的能量分布,如果频谱图中暗的点数更多,那么实际图像是比较柔和的(因为各点与邻域差异都不大,梯度相对较小),反之,如果频谱图中亮的点数多,那么实际图像一定是尖锐的,边界分明且边界两边像素差异较大的。对频谱移频到原点以后,可以看出图像的频率分布是以原点为圆心,对称分布的。将频谱移频到圆心除了可以清晰地看出图像频率分布以外,还有一个好处,它可以分离出有周期性规律的干扰信号,比如正弦干扰,一副带有正弦干扰,移频到原点的频谱图上可以看出除了中心以外还存在以某一点为中心,对称分布的亮点集合,这个集合就是干扰噪音产生的,这时可以很直观的通过在该位置放置带阻滤波器消除干扰。
如图5为“水星6号”飞船拍摄的活性地形图像,图6为周期干扰的傅里叶频谱(由美国国家航空航天局提供),观察频谱,在每个尖峰处设一陷波带通滤波器H(u,v),即设置H(u,v)只可通过与干扰模式相关的成分,如图7所示,中间使用理想型高通滤波器和“+”型带阻滤波器,四角使用理想型带阻陷波滤波器。通过下式计算干扰噪声模式的傅里叶变换:

其中,G(u,v)为被污染图像的傅里叶变换。
然后通过傅里叶逆变换获得通过的噪声干扰,如图8所示。

图5“水星6号”飞船拍摄的活性地形图像

图6 周期干扰的傅里叶频谱(由美国国家航空航天局提供)

图7 叠加在图6的陷波带通滤波器

图8 滤波后图像的傅里叶逆变换,在空间域显示噪声模式

(2)从受污染的图像g(x,y)减去模式得到f(x,y)是很简单的,但是这个滤波过程通常只会得到真实干扰模式的近似值。在噪声的估计中不存在的那些分量的影响可以被最小化,即通过从g(x,y)减去的加权来得到f(x,y)的估计值,如下所示:

其中,是的估计值,w(x,y)为加权函数。
此过程的目的就是选取加权函数,使得估计值在每一点(x,y)的指定领域的方差最小。考虑点(x,y)的尺寸为a*b的领域,假设w(x,y)在整个领域内保持不变(详细参考书p200),则w(x,y)解为:

利用上述两个式子来获得复原图像,详细可见程序optimum_notch.m。如果w(x,y)在某一领域内被假定为常量,则不必再像法1一样在图像中计算对应每对x,y值的函数值,而是在每个非重叠领域的一点(一般为中心点)计算w(x,y)值,然后处理该领域内包含的所有图像点,如法2,3,这样算法效率会搞一点。对于边界处理,可采用对称镜像填充法、零填充法等,这里采用了对称镜像填充法。

(实验分别使用理想滤波器、高斯滤波器和巴特沃斯滤波器进行滤波比较,以及a和b设置的相关实验,具体参看github)

实际天文图像应用成果

##原图(云南天文台拍摄)

傅里叶谱

滤波

噪声


本Markdown编辑器使用[StackEdit][6]修改而来,用它写博客,将会带来全新的体验哦:

结果图

代码下载https://download.csdn.net/download/weixin_40267472/11252576

Digital Image processing 数字图像处理最佳陷波滤波器设计(频域)相关推荐

  1. 陷波滤波器设计及应用

    最近有个对陷波滤波器应用的需求,具体见<单相PWM整流反馈电压陷波滤波的好处>博文记录. 在同事现成的推导过程中做相关整理,方便以后使用. 陷波滤波器的传递函数有多种形式,同事采用了如下的 ...

  2. 基于matlab的陷波滤波器设计

    目录 一.理论基础 二.核心程序 三.仿真结论 一.理论基础 陷波滤波器指的是一种可以在某一个频率点迅速衰减输入信号,以达到阻碍此频率信号通过的滤波效果的滤波器.陷波滤波器属于带阻滤波器的一种,只是它 ...

  3. Digital Imaging Processing 数字图像处理

    8-Bit and 16-Bit Images 关于量化压缩与量化补偿 RGB Bayer Color分析 彩色CCD/CMOS的格式和计算机中的读取格式 转载于:https://www.cnblog ...

  4. 《数字图像处理》手动实现最佳陷波滤波

    1 最佳陷波滤波实现 1.1 最佳陷波滤波原理及步骤 最佳陷波滤波的可以良好地处理一个以上的干扰分量或者多个周期性的噪声,相比于其他的滤波方法,最佳陷波滤波可以最小化复原的估计值f ̂(x,y)的局部 ...

  5. matlab 自动生成陷波滤波器算法实现

    自动扫描生成陷波滤波器 Function Code function [aOut1,aOut2,aOut3] = optimumNotchFilter(aIn,time,D0,a,b,m) %这仅仅是 ...

  6. Digital Signal Processing 数字信号处理

    DSP是什么       | 数字信号处理 | 数字信号处理器 | DSP处理器与通用处理器的比较 |       Digital Signal Processing 数字信号处理       作为一 ...

  7. 基于反馈结构的窄带宽陷波滤波器

    IEEE Signal Processing Magazine 是信号处理领域一本著名的杂志.它偶尔会出一个名叫 Tips & Tricks 的专栏.这个专栏的文章没有高深的理论知识,简洁实用 ...

  8. 【OpenCV 例程200篇】90. 频率域陷波滤波器

    [OpenCV 例程200篇]90. 频率域陷波滤波器 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 5.2 陷波滤 ...

  9. python实现陷波滤波器、低通滤波器、高斯滤波器、巴特沃斯滤波器

    在一幅图像中,其低频成分对应者图像变化缓慢的部分,对应着图像大致的相貌和轮廓,而其高频成分则对应着图像变化剧烈的部分,对应着图像的细节(图像的噪声也属于高频成分). 滤波器 低通滤波器 高通滤波器 陷 ...

最新文章

  1. CVPR2020论文解析:视频分类Video Classification
  2. contain_of宏定义
  3. iOS自动化探索(九)使用Jenkins自动化打包并发布iOS App
  4. Docker - Docker中搭建MySQL主从
  5. mysql封装 javabean,利用Java针对MySql封装的jdbc框架类JdbcUtils完整实现(包含增删改查、JavaBean反射原理,附源码)...
  6. Elasticsearch 写入优化记录,从3000到8000/s
  7. c语言程序设计徐立辉答案,C语言程序设计实验及习题指导
  8. 《认知天性》听后感及听书笔记
  9. c++builder:Project Project1.exe raised exception class EAccessViolation with message 'Access violati
  10. IMAC双系统WIN下截屏快捷键
  11. 反锐化掩膜_带噪声抑制的反锐化掩模图像增强算法
  12. 897-了解微服务网关
  13. 障碍期权定价 python_Python王牌加速库2:深度学习下的障碍期权定价
  14. svn迁移(linux服务器,从旧服务器迁移到新服务器)
  15. #Linux#进程间通信# 管道(pipe)-匿名管道pipe
  16. R统计计算--差异性检验
  17. EXCEL2021 网站复制内容突然粘贴不了到单元格
  18. 西工大计算机专业毕业年薪,西北工业大学毕业后工资待遇?
  19. 机器人点灯(light-bot)2.0通关攻略(二)——条件
  20. 华为操作系统鸿蒙是linux,华为鸿蒙到底是个什么操作系统?

热门文章

  1. 务实的思维与学习–如何有意识地思考思维与学习
  2. C语言strstr()函数用法-字符串查找
  3. 【Linux】共享内存
  4. js炫酷烟花代码,手动自动燃放都可以哦
  5. Content Delivery Networks CDN 内容分发网络
  6. srand和rand函数使用
  7. 服务器减少一半,TDengine在华自科技的落地实践
  8. Handlebars 介绍
  9. Anconda 安装
  10. 百度地图查询数据结果