当前位置:   article > 正文

Matlab实现频域滤波——二维傅里叶变换、低通、高通_频率-波数域的二维傅里叶变换matlab

频率-波数域的二维傅里叶变换matlab

目录

1、二维傅里叶变换

1.1二维傅里叶变换定义

1.2性质

2、低通滤波器

2.1理想低通滤波器

3、高通


1、二维傅里叶变换

1.1二维傅里叶变换定义

       首先通过傅里叶变换将图像从空间域转换为频率域,然后在频率域内对图像进行处理,最后通过傅里叶反变换到空间域。

1.2性质

  • 平移特性
  • 旋转特性
  • 尺度特性
  • 卷积特性
  • 相关特性
  • 分离特性

频域滤波原理:输出图像傅氏变换==系统频域相应×输入图像傅氏变换

2、低通滤波器

低频成分通过,去除(衰弱)高频成分

图像中尖锐的细节被平滑。

2.1理想低通滤波器

H(u,v)=1  D(u,v)<=D0

H(u,v)=0  D(u,v)>D0

可以理解为在半径为D0的范围内,所有的频率都可以没有衰减地通过滤波器,该半径之外的所有频率都完全被衰减。理想低通滤波器具有平滑图像的作用,但是又很严重的振铃的现象。

利用理想低通滤波器对图像进行滤波具体代码:

  1. close all;clear all;clc;
  2. I=imread('ice.bmp');
  3. I_gray=im2gray(I);
  4. I2=im2double(I_gray);
  5. M=2*size(I2,1);%滤波器行数
  6. N=2*size(I2,2);%滤波器列数
  7. u=-M/2:(M/2-1);
  8. v=-N/2:(N/2-1);
  9. [U,V]=meshgrid(u,v);%此 MATLAB 函数 基于向量 x 和 y 中包含的坐标返回二维网格坐标。
  10. D=sqrt(U.^2+V.^2);
  11. D0=15;%截止频率
  12. H=double(D<=D0);%理想低通滤波器
  13. J=fftshift(fft2(I2,size(H,1),size(H,2)));%时域图像转换到频域
  14. K=J.*H;%滤波处理
  15. L=ifft2(ifftshift(K));
  16. L=L(1:size(I2,1),1:size(I2,2));
  17. figure;
  18. subplot(121);imshow(I2);
  19. subplot(122);imshow(L);

巴特沃斯低通滤波器:

  1. %巴特沃斯滤波器
  2. clear all;close all;clc;
  3. I=imread('ice.bmp');
  4. I_gray=im2gray(I);
  5. I2=im2double(I_gray);
  6. %计算滤波器的行数
  7. M=2*size(I,1);
  8. N=2*size(I,2);
  9. u=-M/2:(M/2-1);
  10. v=-N/2:(N/2-1);
  11. [U,V]=meshgrid(u,v);
  12. D=sqrt(U.^2+V.^2);
  13. D0=15;
  14. n=6;
  15. H=1./(1+(D./D0).^(2*n));
  16. J=fftshift(fft2(I2,size(H,1),size(H,2)));
  17. K=J.*H;
  18. L=ifft2(ifftshift(K));
  19. L=L(1:size(I2,1),1:size(I,2));
  20. figure;
  21. plot(I2);
  22. figure;
  23. imshow(I);
  24. figure;
  25. imshow(L);

3、高通

    衰减或抑制低频分量,让高频分量通过称为高通滤波,其作用是使图像得到锐化处理,突出图像的边界。

下面是高斯高通滤波器实现代码:

  1. clear all;close all;clc;
  2. I=imread('ice.bmp');
  3. I_gray=im2gray(I);
  4. I2=im2double(I_gray);
  5. %计算滤波器的行数
  6. M=2*size(I,1);
  7. N=2*size(I,2);
  8. u=-M/2:(M/2-1);
  9. v=-N/2:(N/2-1);
  10. [U,V]=meshgrid(u,v);
  11. D=sqrt(U.^2+V.^2);
  12. D0=15;
  13. H2=1-exp(-(D.^2)./(2*(D0^2)));%设计高斯高通滤波器
  14. J2=fftshift(fft2(I2,size(H2,1),size(H2,2)));
  15. K2=J2.*H2;
  16. L2=ifft2(ifftshift(K2));
  17. L2=L2(1:size(I2,1),1:size(I2,2));
  18. figure;
  19. imshow(I);
  20. figure;
  21. imshow(L2);

巴特沃斯高通滤波器代码如下:

  1. clear all; close all;
  2. I=imread('ice.bmp');
  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:(N/2-1);
  8. [U,V]=meshgrid(u, v);
  9. D=sqrt(U.^2+V.^2);
  10. D0=15;
  11. n=6;
  12. H=1./(1+(D0./D).^(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. imshow(I);
  19. figure;
  20. imshow(L);
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/262637
推荐阅读
相关标签
  

闽ICP备14008679号