ZSO Úloha č.2                                                                                                       Jiří Filip
Fourierova transformace - zpracování obrazu ve frekvenční oblasti

Úkol :
Napište program, který za pomoci modifikovaného highpass Butherworthova filtru zaostří obraz [PNG], [TIFF]. Pokuste se zaostřit i obraz [PNG],  který je poškozen šumem.

K odevzdání

   1.Textový vysvětlí rozdíl mezi rekonstruovanými obrazy.
   2.Zaostřený obraz.



Zpracované výsledky :
                                                použitý filtr Butherworth řádu 1

                  původní obraz                                                                                           a jeho frekvenční spektrum po provedeni FFT
                                                  

                   všechny obrázky  jsou zaostřené použitím  Butherworthova filtru  typu horní propust  řádu jedna

1.)                  TIF                                                                                                                  filtr ,  výřez = 2
                                                  
  2.)                                                                                                                               filtr ,  výřez = 5

  3.)                                                                                                                              filtr ,   výřez = 10

  4.)                                                                                                                              filtr ,   výřez = 20
                                                                                                  5.)                                                                                                                              filtr ,   výřez = 40


   Zpracování zašuměného obrazu

                  původní obraz poškozený šumem                                                           a jeho frekvenční spektrum po FFT

 1.)                                                                                                                              filtr ,  výřez = 2

  2.)                                                                                                                               filtr ,  výřez = 5

 3.)                                                                                                                               filtr ,  výřez = 10

  4.)                                                                                                                               filtr ,  výřez = 20

  5.)                                                                                                                               filtr ,  výřez = 40


Shrnutí výsledků:
     Z obrázků je patrné, že přílišné ořezávání nízkých frekvencí (viz. filtr výřez 5 a dále), nám způsobí značnou ztrátu informace z obrazu a zůstane
nám v něm především šum a hrany, které samy o sobě jsou nositelkami vysokých frekvencí jež náš horně-propustní filtr nechá nezměněny. Tedy při větších výřezech filtr funguje v podstatě jako hranový detektor. Při nízkých výřezech dojde k mírnému zaostření, které se projevuje zvýšením
kontrastu kolem hran. Na rovných plochách dojde ztmavení obrazu, které je způsobeno tím, že se zde nevyskytují vysoké frekvence zatímco přítomné nízké se odstraní.  Pokud použijeme zašuměný obraz, neděje se nic zvláštního, protože vysokofrekvenční šum tento filtr propustí.



Výpis programu z MATLABu :
  clear all;
%nacteni a zobrazeni puvodniho obrazu
  obr=imread('paolina2.tif');
  figure(1);
  subplot(121);
  imshow(obr);
%prima fft
  obr2=(fftshift(fft2(obr)));
%obrazek po fft a posunu nizkych frekvenci z rohu do stredu
  subplot(122);
  imshow(obr2);
  cutoff=2; %sirka vyriznuteho spektra
  n=1;       %rad filtru
% prepocet souradne soustavy na stred
 [im.r,im.c] = size(obr2);
  vecr = [-(im.r-1)/2:(im.r-1)/2];
  vecc = [-(im.c-1)/2:(im.c-1)/2];
  matX = repmat(vecr',1,im.c);
  matY = repmat(vecc,im.r,1);
  matD = max(abs(matX),abs(matY));
  matR = sqrt(matX.^2+matY.^2);
%vlastni filtrace
  filtr = 1./(1+(cutoff./matR).^(2*n));
%obrazek filtrujici funkce
  figure(2);
  subplot(122);
  imshow(filtr);
%inverzni fft a prevod do zobrazitelne podoby
  obr3=real(ifft2(fftshift(obr2.*filtr)));
  obr3 = obr3/255;
  obr3 = obr3 - min(obr3(:));
  obr3 = im2uint8( obr3 / (max(max(obr3))) );
%vykresleni vysledku%subplot(122);
%imshow(filtr);
  subplot(121);
  imshow(obr3);


ZSO - úloha č.2                                                                                                                  10.12.1999  Jiří Filip