失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Matlab 频域滤波处理周期噪声图像(带阻滤波器滤波)

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

时间:2023-02-13 07:31:18

相关推荐

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('滤波图像');

如果觉得《Matlab 频域滤波处理周期噪声图像(带阻滤波器滤波)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。