图像中带通滤波器和带阻滤波器的关系

先给出一张图像,来说明带阻滤波器和带通滤波器的关系。

       

由上图可以看出这张图片的中低成份占的比较多,而高频成份比较少。因为白色的像素都集中在中点和离中心的附近。对于频谱图,由白色代表某一频率点有响应,也就是原图含有该频率的成份。可以举个例子,假如我对一张图片加入椒盐噪声,这个椒盐噪声属于全频谱的。可以得到下图示

  

    很明显图像被污染了,频谱图出现了很多白色点,就代表这张图片在低频成份很多的情况下,又额外的增加了高频中频低频成份,如上第三图就出现了凹凸不平山峰一样。

    解释完频率后来看带通滤波器和带阻滤波器。

再分别给出它们傅里叶反变换图

图4为带阻滤波器的三维视图,图5只含中频信号的图像,图6只含高频和低频信号。读者可以自己举例子来进行高频和低频的分析,一样的原理。

只给出带阻滤波器的相关代码

 
  1. I=imread('C:\Users\hlx\Desktop\1.jpg'); %读入原图像文件

  2. I2=rgb2gray(I);

  3. I1=double(I2);

  4. fftI=fft2(I1); % 二维离散傅立叶变换

  5. sfftI=fftshift(fftI); % 直流分量移到频谱中心

  6. [N1,N2]=size(sfftI);

  7. n=2;

  8. d0=10;

  9. d1=200;

  10. n1=floor(N1/2);

  11. n2=floor(N2/2);

  12. for i=1:N1

  13. for j=1:N2

  14. d=sqrt((i-n1)^2+(j-n2)^2);

  15. if d<=d0 || d>=d1

  16. h=0;

  17. else

  18. h=1;

  19. end

  20. result(i,j)=h*sfftI(i,j);

  21. end

  22. end

  23. sfftI=result;

  24. RR=real(sfftI); % 取傅立叶变换的实部

  25. II=imag(sfftI); % 取傅立叶变换的虚部

  26. A=sqrt(RR.^2+II.^2); % 计算频谱幅值

  27. A=(A-min(min(A)))/(max(max(A))-min(min(A)))*255; %归一化

  28. imshow(A);

猜你喜欢

转载自blog.csdn.net/qq_41598072/article/details/82769318