带阻滤波器的传递函数为:
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('滤波图像');
如果觉得《Matlab 频域滤波处理周期噪声图像(带阻滤波器滤波)》对你有帮助,请点赞、收藏,并留下你的观点哦!