0


MATLAB学习——低通滤波(频域滤波(一))

1.概论

频率域图像增强首先通过傅立叶变换将图像从空间域转换到频率域,在频率域对图像进行处理,处理后再将图像进行傅立叶反变换转换到空间域。

频域滤波主要有低通滤波、高通滤波、同态滤波等。

2.低通滤波

让低频率通过,而滤掉或衰弱高频率。作用是过滤掉包含在高频中的噪声。所以低通滤波的效果是图像去噪声平滑增强。

(1)理想低通滤波

在半径范围D0内,所有频率都可以没有衰减的通过滤波器,但在半径范围外的所有频率都会被衰减。

代码(理想低通滤波):

close all;clear all;clc;
I=imread('D:\resource_photo\3.png');
I=im2double(I);
M=2*size(I,1);  %滤波器行数
N=2*size(I,2);  %滤波器列数
u=-M/2:(M/2-1);
v=-N/2:(M/2-1);
[U,V]=meshgrid(u,v);
D=sqrt(U.^2+V.^2);
D0=60;  %截止频率
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)

(2)巴特沃斯低通滤波器

产生公式:

其中D0为巴特沃斯低通滤波器的截至频率,参数n为巴特沃斯滤波器的阶数,n越大则滤波器的形状越陡峭。

代码(巴特沃斯低通滤波):

close all;clear all;clc;
I=imread('D:\resource_photo\3.png');
I=im2double(I);
M=2*size(I,1);  %滤波器行数
N=2*size(I,2);  %滤波器列数
u=-M/2:(M/2-1);
v=-N/2:(M/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)

(3)高斯低通滤波器

产生公式:

其中D0为高斯低通滤波器的截至频率。


本文转载自: https://blog.csdn.net/weixin_52135595/article/details/126970096
版权归原作者 长弓同学 所有, 如有侵权,请联系我们删除。

“MATLAB学习——低通滤波(频域滤波(一))”的评论:

还没有评论