Advertisement
kaburen

Filtracja

May 25th, 2020
1,492
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.83 KB | None | 0 0
  1. close all;
  2. clear all;
  3.  
  4. lena = imread('lena3.bmp');
  5. lenaF = fft2(lena);
  6. lenaO = fftshift(lenaF);
  7. lenaAb = abs(lenaO);
  8. lenaAb = log10(lenaAb+1);
  9. lenaFz = angle(lenaF.*(lenaAb > 0.0001));
  10.  
  11. figure(1);
  12. subplot(1,3,1)
  13. imshow(lena,[]);
  14. title('Oryginał');
  15. subplot(1,3,2);
  16. imshow(lenaAb,[]);
  17. title('Amplituda');
  18. subplot(1,3,3);
  19. imshow(lenaFz,[]);
  20. title('Faza');
  21.  
  22. figure(2);
  23. [f1,f2] = freqspace(512, 'meshgrid');
  24. Hd = ones(512);
  25. r = sqrt(f1.^2 + f2.^2);
  26. Hd((r>0.1)) = 0;
  27. Hd2 = ones(512);
  28. Hd2((r<0.1)) = 0;
  29. Hd3 = ones(512);
  30. Hd3(r>0.1 & r<0.4) = 0;
  31. colormap(jet(64));
  32. mesh(f1,f2,Hd);
  33.  
  34. lenaMn = lenaO.* Hd;
  35. lenaO2 = ifftshift(lenaMn);
  36. lenaF2 = ifft2(lenaO2);
  37.  
  38. lenaMn2 = lenaO.* Hd2;
  39. lenaO3 = ifftshift(lenaMn2);
  40. lenaF3 = ifft2(lenaO3);
  41.  
  42. lenaMn3 = lenaO.* Hd3;
  43. lenaO4 = ifftshift(lenaMn3);
  44. lenaF4 = ifft2(lenaO4);
  45. %rodzielam wyswietlanie filtrów i obrazów ze wzgledu na słaba widocznosc
  46. %róznic w obrazach w przypadku gdy są pokazane w małej rozdzielczosci.
  47. figure(3);
  48. subplot(1,3,1);
  49. imshow(lenaMn);
  50. title('Filtr dolnoprzepustowy');
  51. subplot(1,3,2);
  52. imshow(lenaMn2);
  53. title('Filtr górnoprzepustowy');
  54. subplot(1,3,3);
  55. imshow(lenaMn3);
  56. title('Filtr pasmowo przepustowy');
  57.  
  58. figure(4);
  59. subplot(1,3,1);
  60. imshow(lenaF2,[]);
  61. title('r > 0.1');
  62. subplot(1,3,2);
  63. imshow(lenaF3,[]);
  64. title('r < 0.1');
  65. subplot(1,3,3);
  66. imshow(lenaF4,[]);
  67. title('r > 0.1 i r < 0.4');
  68.  
  69. h = fwind1(Hd, hamming(21));
  70. h2 = fwind1(Hd2, hamming(21));
  71. [H1 f1 f2] = freqz2(h,512,512);
  72. [H2 f1 f2] = freqz2(h2,512,512);
  73. figure(5);
  74. mesh(f1,f2,H1);
  75.  
  76. lenaMn4 = lenaO.* H1;
  77. lenaO5 = ifftshift(lenaMn4);
  78. lenaF5 = ifft2(lenaO5);
  79.  
  80. lenaMn5 = lenaO.* H2;
  81. lenaO6 = ifftshift(lenaMn5);
  82. lenaF6 = ifft2(lenaO6);
  83.  
  84. figure(6);
  85. subplot(1,2,1);
  86. imshow(lenaF5,[]);
  87. title('Dolnoprzepustowa');
  88. subplot(1,2,2);
  89. imshow(lenaF6,[]);
  90. title('Górnoprzepustowa');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement