这一篇文章中说明了用"二维卷积"的方法进行滤波/降噪( 二维卷积滤波 )。本文主要介绍另一种滤波的方法:在二维傅里叶变换后的" 频振谱 "中,用" 滤波器 "进行滤波,并对比这两种滤波方法的优劣。
滤波器没那么复杂,就是一个函数式而已,只不过这个函数式有一些特别的功能。本文选用的是" 巴特沃斯滤波器 ";图像的噪声还是" 高斯噪声 "和" 椒盐噪声 "。巴特沃斯滤波器的函数式为:
其中 是截止频率(高于这个频率值,就被滤掉了), 是阶次, 是" 中心化频振图( 中心化参考这里 ) "中各点" 距中心点的距离 "。非常简单的一个函数。而且注意到: 说明这就是在频域内的一个函数,所以它的用法就是直接和" F(u,v) F频域参看这里 "做" 矩阵点乘 "即可达到滤波~
下面我们就实 *** 一下,对一个原始图像做一下低神段通滤波看看(把图像" 变模糊 ",因为一些信号被滤掉了),对应的Matlab程序如下:
效果如下,图1是原始图像埋胡,图2是低通滤波后图像(记得ifft2回到原始xy空间):
利用这篇文章中 同样的噪声 (高斯随机噪声、椒盐噪声),看看用频域滤波效果如何。这里我就设定截止频率 ,阶次 进行" 巴特沃斯弯瞎拦低通滤波 ",加噪声后图像如下:
二维傅里叶变换后频域做低通滤波,效果说明:
最后,再补充一个" 加噪声-fft2-滤波-ifft2 "的完整流程的Matlab程序:
本文用到的" zxc.jpg "原图像, 在这里 。
二维傅里叶ifft是离散傅里叶逆变换的意思。
MATLAB中,提供了对含滚向量(或直接对矩阵的行或则散列)进行离散傅立叶变换的孙老氏函数,其调用格式是:
Y=ifft(X,n,dim)
(1)当X是一个向量时,返回对X的离散傅立叶变换。
(2)当X是一个矩阵时,返回一个矩阵并送Y,其列(行)是对X的列(行)的离散傅立叶变换。
应该是常量、
除以255
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)