ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

OpenCV笔记20 频率域滤波

2022-02-07 12:00:23  阅读:189  来源: 互联网

标签:滤波器 20 变换 矩阵 滤波 OpenCV 傅里叶 通滤波


一、概述

       图像的傅里叶变换及其两个重要的度量:幅度谱和相位谱。了解两个重要的概念:低频和高频。低频指的是图 的傅里叶变换 “ 中心位置 ” 附近的区域。注意,如无特殊说明,后面所提到的图像的傅里叶变换都是中心化后的。高频随着到“ 中心位置 ” 距离的增加而增加,即傅里叶变换中心位置的外围区域,这里的“ 中心位置 ” 指的是傅里叶变换所对应的幅度谱最大值的位置。 频率域滤波器在程序或者数学运算中的呈现可以理解为一个矩阵,该矩阵的宽、高和图像的傅里叶变换的宽、高是相同的,下面所涉及的常用的低通、高通、带通、带阻 等滤波的关键步骤,就是通过一定的准则构造该矩阵的。

二、步骤

步骤如下:

 

下面通过一个简单的例子来详细解释频率域滤波的整个步骤。 第一步:输入图像矩阵 I 。假设为: 第二步:图像矩阵的每一个像素值乘以 (-1)r+c 得到矩阵 I′ , I′ =I.* ( -1 ) r+c ,其 中 r 和 c 代表当前像素值在矩阵中的位置索引。 第三步:因为图像矩阵的宽和高均为 7 ,为了利用傅里叶变换的快速算法,对 I′ 补 0 ,使用命令getOptimalDFTSize ( 7 )得到一个不小于 7 且可以分解为 2p ×3q ×5r 的最小整数,计算结果为8 。所以在矩阵 I′ 的右侧和下侧各补一行 0 ,记为 f :

 

 第四步:利用傅里叶变换的快速算法得到复数矩阵F。

 

 

        OpenCV是将复数矩阵按照双通道存储的,即第一通道存储的是复数矩阵的实部,第二通道存储的是复数矩阵的虚部。

 

第五步:构建频率域滤波器 Filter 。频率域滤波器本质上是一个和第四步得到的快速傅里叶变换矩阵F 具有相同行数、列数的复数矩阵,一般情况下为实数矩阵,这里假设是 一个全是1的矩阵:

 

本章提到的频率域滤波,如低通滤波、高通滤波、自定义滤波等,其关键步骤就是 通过一定的标准构造该矩阵以完成图像在频率域上的滤波。 第六步:将第四步得到的快速傅里叶变换矩阵 F 和第五步得到的频率域滤波器 Filter 的对应位置相乘(矩阵的点乘)。当然,如果滤波器是一个实数矩阵,那么在代码实现 中,将傅里叶变换的实部和虚部分别与频率域滤波器进行点乘即可,即Ffilter =F.*Filter,因为这里构造的滤波器是一个全是1 的矩阵,所以 F filter =F 。 第七步:对第六步得到的点乘矩阵 Ffilter 进行傅里叶逆变换,得到复数矩阵 F′ 。 第八步: 取复数矩阵F′的实部 。 第九步:与第二步类似,将第八步得到的矩阵乘以( -1 ) r+c 。 第十步:因为在快速傅里叶变换的步骤中进行了补 0 操作,所以第九步得到的实部矩 阵的尺寸有可能比原图大,所以要进行裁剪,取该实部矩阵的左上角,尺寸和原图相同。裁剪得到的结果,即为频率域滤波的结果。在该示例中,因为滤波器是一个全是1 的 矩阵,相当于对原图没有做任何处理,即最后滤波的结果和原图是一样的。 频率域滤波算法均是按照上述十个步骤完成的,接下来详细介绍常用滤波器的构建 方法、代码实现及其效果。

三、低通滤波

 针对图像的傅里叶变换,低频信息表示图像中灰度值缓慢变化的区域;而高频信息则正好相反,表示灰度值变化迅速的部分,如边缘。低通滤波,顾名思义,保留傅里叶变换的低频信息;或者削弱傅里叶变换的高频信息;而高通滤波则正好相反,保留傅里叶变换的高频信息,移除或者削弱傅里叶变换的低频信息。 三种常用的低通滤波器:                H、 W 分别代表图像快速傅里叶变换的高、宽, 傅里叶谱的最大值(中心点)的位置在maxR,maxC , radius 代表截断频率, D ( r , c )代表到中心位置的距离 1、理想低通滤波:ilpFilter=[ilpFilter(r,c)]H*w,

 2、巴特沃斯低通滤波器

第二种是巴特沃斯低通滤波器,记 blpFilter=[blpFilter ( r , c ) ]H×W

 3、高斯低通滤波器

记glpFilter=[glpFilter(r,c)]H×W;

 作用:

滤波器越靠近中心点位置的值越接近于1,越远离中心位置的值就越小于1,与傅里叶变换相乘后,相当于保留了低频信息,消弱或者移除了高频信息

四、低通滤波的代码实现
 

标签:滤波器,20,变换,矩阵,滤波,OpenCV,傅里叶,通滤波
来源: https://blog.csdn.net/weixin_39354845/article/details/122804905

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有