0


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

1.概论

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

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

2.低通滤波

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

(1)理想低通滤波

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

代码(理想低通滤波):

  1. close all;clear all;clc;
  2. I=imread('D:\resource_photo\3.png');
  3. I=im2double(I);
  4. M=2*size(I,1); %滤波器行数
  5. N=2*size(I,2); %滤波器列数
  6. u=-M/2:(M/2-1);
  7. v=-N/2:(M/2-1);
  8. [U,V]=meshgrid(u,v);
  9. D=sqrt(U.^2+V.^2);
  10. D0=60; %截止频率
  11. H=double(D<=D0); %理想低通滤波
  12. J=fftshift(fft2(I,size(H,1),size(H,2))); %时域图像转换到频域
  13. K=J.*H; %滤波处理
  14. L=ifft2(ifftshift(K)); %傅里叶反变换
  15. L=L(1:size(I,1),1:size(I,2));
  16. figure;
  17. subplot(121);imshow(I)
  18. subplot(122);imshow(L)

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

产生公式:

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

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

  1. close all;clear all;clc;
  2. I=imread('D:\resource_photo\3.png');
  3. I=im2double(I);
  4. M=2*size(I,1); %滤波器行数
  5. N=2*size(I,2); %滤波器列数
  6. u=-M/2:(M/2-1);
  7. v=-N/2:(M/2-1);
  8. [U,V]=meshgrid(u,v);
  9. D=sqrt(U.^2+V.^2);
  10. D0=50; %截止频率
  11. n=6; %滤波器的阶数
  12. H=1./(1+(D./D0).^(2*n)); %巴特沃斯滤波器
  13. J=fftshift(fft2(I,size(H,1),size(H,2))); %时域图像转换到频域
  14. K=J.*H; %滤波处理
  15. L=ifft2(ifftshift(K)); %傅里叶反变换
  16. L=L(1:size(I,1),1:size(I,2));
  17. figure;
  18. subplot(121);imshow(I)
  19. subplot(122);imshow(L)

(3)高斯低通滤波器

产生公式:

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


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

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

还没有评论