matlab二维高通滤波器,Matlab实现基于频域对二维信号的低通滤波

基于频域的低通滤波(二维信号——图像)

算法分析

傅里叶变换,将灰度图由f(x,y)->F(u,v)(空域转频域),得到图像在频域中的频谱(在频谱中低频信号分布在频谱的四个角落,其余部分为高频信号,这样的分布难以滤出高频或低频信号)

中心化,将频谱F(u,v)中心化,将低频点移到频谱中心(这样就可以通过设置一个截止频率D0,来过滤信号)

遍历频谱图,使用巴特沃兹低通滤波器和高斯高斯低通滤波器进行低通滤波,计算滤波器函数h(u,v)与F(u,v)的乘积G(u,v),直到频谱图遍历完

巴特沃兹低通滤波器和高斯低通滤波器,计算公式

反中心化, 对滤波后的频谱G(u,v)的低频点移回到频谱的四周

傅里叶反变换,将第4步的结果傅里叶反变换G(u,v)->g(x,y),取g(x,y)实数部分作为最后滤波之后的结果,虚数部分是浮点运算存在的误差造成的(虚数部分的绝对值很小,可以忽略不计),得到滤波后的空域图像

伪代码

x = 读入灰度图,若是对彩色图处理,将彩色图先转为灰度图

y = 图像加噪

f = 将y的数据类型转换成double,便于运算

F = 二维傅里叶变换(这里可以直接调用fft2函数),得到图像在频域里的频谱

F1 = 对频谱你中心化,将低频频谱由四周转换到中心,距离中心越远的频率越高

[M, N] = 求得频谱的大小

n = 巴特沃斯低通滤波器的阶数

D0 = 设置截止频率

m = 频谱中心行坐标

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值