Matlab 频域滤波处理周期噪声图像(带阻滤波器滤波)

带阻滤波器的传递函数为:
在这里插入图片描述
D0为截止半径(或是截止宽度)
D1、D2由下式确定,表示与(u0,v0)和(-u0,v0)点的距离,此时(u0,v0)是在频域中心为坐标原点表示的,所以是对称关系。
在这里插入图片描述

使用二阶巴斯沃特带阻滤波器对周期噪声图像滤波:
噪声图像如下:

在这里插入图片描述首先观察其频谱,了解周期噪声分布:
在这里插入图片描述噪声分布在频域图像的竖直方向,在水平方向上没有。画频域图像中心竖直方向的频谱,得到噪声起始两点的位置,分别距离图像上边137和201,即u0=137,u1=201,v0=v,v1=v 。

在这里插入图片描述由此构造如下带阻滤波器
在这里插入图片描述

在这里插入图片描述滤波器和频域图像相乘得到以下图像

在这里插入图片描述最终得到的图像

在这里插入图片描述具体Matlab代码如下(以图像左上方为坐标原点):

clc;
clear;
close all;

img=imread('5.png');
img=rgb2gray(img);
subplot(331),imshow(img),title('原图');
F=fftshift(fft2(img));
subplot(332),imshow(log(abs(F)+1),[]),title('频域图像');
[M,N]=size(F);
subplot(333),plot(abs(F(:,round(N/2)))),title('中心竖直线上频谱');
u=0:M-1;v=0:N-1;
[V,U]=meshgrid(v,u);
D0=14;
n=2;
u0=137;u1=201;
D1=abs(U-u0);
D2=abs(U-u1);
H=1./(1+(D0^2./(D1.*D2)).^n);
subplot(334),imshow(abs(H),[]),title('滤波器图像表示');
subplot(335),mesh(H),title('滤波器透视图');
G=F.*H;
subplot(336),imshow(log(abs(G)+1),[]),title('滤波后的频域图像');
g=real(ifft2(ifftshift(G)));
subplot(337),imshow(g,[]),title('滤波图像');
  • 17
    点赞
  • 99
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值