matlab低通滤波

低通滤波器的功能是让低频率通过而滤掉或衰减高频,其作用是过滤掉包含在高频中的噪声。所以低通滤波的效果是图像去噪声平滑增强,但同时也抑制了图像的边界,造成图像不同程度上的模糊。

大于大小为M×N的图像,频率点(u,v)与频率中心的距离为D(u,v),其表达式为:

1. 理想低通滤波器

产生公式为:

其中Do为理想低通滤波器的截止频率。理想低通滤波器具有平滑图像的作用,但是有很严重的振铃现象。

利用理想低通滤波器对图像进行滤波:

close all;clear all;clc;
%利用理想低通滤波器对图像进行滤波
I=imread('coins.png');
I=im2double(I);
M=2*size(I,1);  %滤波器的行数
N=2*size(I,2);  %滤波器的列数
u=-M/2:(M/2-1);
v=-N/2:(N/2-1);
[U,V]=meshgrid(u,v);
D=sqrt(U.^2+V.^2);
D0=80;  %截止频率设置为80
H=double(D<=D0);  %理想低通滤波器
J=fftshift(fft2(I,size(H,1),size(H,2)));  %时域图像转换到频域
K=J.*H;  %滤波处理
L=ifft2(ifftshift(K));  %傅立叶反变换
L=L(1:size(I,1),1:size(I,2));
figure;
subplot(121);imshow(I);  %显示原图像
subplot(122),imshow(L);  %显示滤波后的图像
matlab低通滤波_第1张图片
可以看到,右图的图像边缘变得模糊了。
2. 巴特沃斯低通滤波器
产生公式为:

其中Do为巴特沃斯低通滤波器的截止频率,参数n为巴特沃斯滤波器的阶数,n越大则滤波器的形状越陡峭。
利用巴特沃斯滤波器对图像进行滤波:
close all;clear all;clc;
%利用巴特沃斯低通滤波器对图像进行滤波
I=imread('liftingbody.png');
I=im2double(I);
M=2*size(I,1);  %滤波器行数
N=2*size(I,2);  %滤波器列数
u=-M/2:(M/2-1);
v=-N/2:(N/2-1);
[U,V]=meshgrid(u,v);
D=sqrt(U.^2+V.^2);
D0=50;
n=6;
H=1./(1+(D./D0).^(2*n));  %构造巴特沃斯滤波器
J=fftshift(fft2(I,size(H,1),size(H,2)));  %转换到频域
K=J.*H;
L=ifft2(ifftshift(K));  %傅立叶反变换
L=L(1:size(I,1),1:size(I,2));  %改变图像大小
figure;
subplot(121),imshow(I);  %显示原始图像
subplot(122);imshow(L);  %显示滤波后的图像

该巴特沃斯低通滤波器,截止频率50,阶数为6。可以看到通过低通滤波后,去除了图像的高频部分,图像的边缘变得模糊。

3.高斯低通滤波器

产生公式为:

其中Do为高斯低通滤波器的截止频率


------坚持就是胜利------

你可能感兴趣的:(图形图像处理,matlab)