当前位置:   article > 正文

四种低通滤波器_滤波器d0是什么

滤波器d0是什么

今天介绍四种低通滤波器对信号频率成分进行滤波,首先进行正傅里叶变换,设计一个滤波器用点操作的方法加工频谱数据,然后进行反傅里叶变换。关键是求出传递函数H(u,v)。

一.理想低通滤波器

matlab代码:

  1. clc;
  2. close all;
  3. clear all;
  4. I = rgb2gray(imread('plane.jfif'));
  5. subplot(131);imshow(I);title('原图');
  6. J = fftshift(fft2(I));
  7. subplot(132);imshow(log(abs(J)),[8,10]);title('傅里叶变换后');
  8. [M,N] = size(I);
  9. H = zeros(M,N);
  10. for u =1:M
  11. for v = 1:N
  12. if sqrt((u-M/2)^2+(v-N/2)^2)<=30
  13. H(u,v) = 1;
  14. else
  15. H(u,v) = 0;
  16. end;
  17. end;
  18. end;
  19. I1 = H.*J;
  20. I1 = ifftshift(I1);
  21. I2 = real(ifft2(I1));
  22. subplot(133);imshow(I2,[]);title('理想低通滤波器');

二.巴特沃斯低通滤波器

  1. clc;
  2. close all;
  3. clear all;
  4. I = rgb2gray(imread('plane.jfif'));
  5. subplot(131);imshow(I);title('原图');
  6. J = fftshift(fft2(I));
  7. subplot(132);imshow(log(abs(J)),[8,10]);title('傅里叶变换后');
  8. [M,N] = size(I);
  9. H = zeros(M,N);
  10. n1 = floor(M/2);n2 = floor(N/2);
  11. for i =1:M
  12. for j = 1:N
  13. d = sqrt((i-n1)^2+(j-n2)^2);
  14. H = 1/(1+(d/30)^(2*2));
  15. I1(i,j)=H*J(i,j);
  16. end;
  17. end;
  18. I1 = ifftshift(I1);
  19. I2 = real(ifft2(I1));
  20. subplot(133);imshow(I2,[]);title('巴特沃斯低通滤波器');

三.指数低通滤波器

  1. clc;
  2. close all;
  3. clear all;
  4. I = rgb2gray(imread('plane.jfif'));
  5. subplot(131);imshow(I);title('原图');
  6. J = fftshift(fft2(I));
  7. subplot(132);imshow(log(abs(J)),[8,10]);title('傅里叶变换后');
  8. [M,N] = size(I);
  9. H = zeros(M,N);
  10. n1 = floor(M/2);n2 = floor(N/2);
  11. for i =1:M
  12. for j = 1:N
  13. d = sqrt((i-n1)^2+(j-n2)^2);
  14. o = -(d/30)^2;
  15. H = exp(1)^o;
  16. I1(i,j)=H*J(i,j);
  17. end;
  18. end;
  19. I1 = ifftshift(I1);
  20. I2 = real(ifft2(I1));
  21. subplot(133);imshow(I2,[]);title('指数低通滤波器');

 

四.梯形低通滤波器

  1. clc;
  2. close all;
  3. clear all;
  4. I = rgb2gray(imread('plane.jfif'));
  5. subplot(131);imshow(I);title('原图');
  6. J = fftshift(fft2(I));
  7. subplot(132);imshow(log(abs(J)),[8,10]);title('傅里叶变换后');
  8. [M,N] = size(I);
  9. H = zeros(M,N);
  10. for u =1:M
  11. for v = 1:N
  12. if sqrt((u-M/2)^2+(v-N/2)^2)<30
  13. H(u,v) = 1;
  14. elseif 30<= sqrt((u-M/2)^2+(v-N/2)^2)<=180
  15. H(u,v) = (sqrt((u-M/2)^2+(v-N/2)^2)-180)/(30-180);
  16. else
  17. H(u,v)=0;
  18. end;
  19. end;
  20. end;
  21. I1 =H.*J;
  22. I1 = ifftshift(I1);
  23. I2 = real(ifft2(I1));
  24. subplot(133);imshow(I2,[]);title('梯形低通滤波器');

其中D0为截止频率,其值会影响最后图像平滑的效果,不同图像对应最佳的D0值也有所不同。

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/78426
推荐阅读
相关标签
  

闽ICP备14008679号