Uvod12345

Dvodimenzionalna Furijeova transformacija i konvolucija

Cilj ove vježbe je da se upoznate sa dvodimenzionalnom Furijeovom transformacijom i dvodimenzionalnom konvolucijom kao osnovnim alatima u analizi linearnih sistema korišćenjem Matlab funkcija za njihovo izračunavanje.

Uvod

Sliku možemo posmatrati kao funkciju od dvije promjenljive a(x,y) gdje je a amplituda (svjetlina) slike u tački sa koordinatama (x,y). Prema tome, i dvodimenzionalna Furijeova transformacija ove funkcije je takođe (kompleksna) funkcija od dvije promjenljive A(u,v).

Uopšte, funkciju od dvije promjenljive možemo vizualizovati na dva načina: kao površ u trodimenzionalnom prostoru i kao sliku. Štaviše, pošto je Furijeova transformacija kompleksna funkcija, nju je moguće posmatrati kao dvije realne funkcije, jednu koja predstavlja magnitudu i drugu koja predstavlja fazu Furijeove transformacije.

Konvolucija predstavlja osnovnu operaciju za određivanje odziva linearnih sistema invarijantnih na translaciju (LSI). Osnovna ideja je da se prozor konačnih dimenzija i poznatog oblika pomjera preko slike. Vrijednost izlaznog piksela jednaka je težinskoj sumi ulaznih piksela, pri čemu su težine definisane za pojedinačne piksele prozora. Prozor sa pridruženim težinama naziva se konvolucioni kernel. Konvolucija je lokalna operacija. Kao i kod jednodimenzionalnih signala konvoluciju dva signala moguće je izračunati korišćenjem Furijeove transformacije.

Zadatak

  1. Formirati pravougaoni konvolucioni kernel pomoću naredbi:
    x = zeros(256);
    x(125:132, 125:132) = 1;
    Proučiti funkciju mesh za prikazivanje površi u trodimenzionalnom prostoru. Prikazati pravougaoni kernel pomoću funkcije mesh. Na novoj slici prikazati isti taj kernel kao sliku, pomoću funkcije imshow.
  2. Odrediti Furijeovu transformaciju pravougaonog konvolucionog kernela korišćenjem funkcije fft2. Da biste pomjerili ishodište Furijeovog domena u središte grafika iskoristite funkciju fftshift. Nacrtati magnitude elemenata dobijene matrice u trodimenzionalnom prostoru korišćenjem funkcije mesh. Postoji li sličnost između spektra dvodimenzionalnog i jednodimenziomalnog pravougaonog signala? Na osnovu dobijenog amplitudskog spektra zaključite šta će se desiti ukoliko se ovaj konvolucioni kernel iskoristi za filtriranje? Na novoj slici prikazati iste magnitude pomoću funkcije imshow. Obratite pažnju na problem koji se javlja zbog toga što vrijednosti magnituda u opštem slučaju ne moraju biti u opsegu u kojem Matlab očekuje da budu vrijednosti svjetlina pojedinih piksela. Da bi se vrijednosti magnitude svele na opseg [0,1] koji predstavlja prihvatljive intenzitete za piksele slike možete iskoristiti funkciju imagesc koja skalira vrijednosti elemenata matrice i prikazuje rezultat kao sliku. Da biste vidjeli vrijednosti koje odgovaraju različitim intenzitetima piksela iskoristite funkciju colorbar.
  3. Funkcija conv2 izračunava konvoluciju dva dvodimenzionalna signala. Proučite sintaksu funkcije conv2. Kolike su dimenzije rezultujuće matrice i od čega zavise? Obrazložiti odgovor! Formirati novi signal koji predstavlja konvoluciju dva pravougaona konvoluciona kernela iz prethodne tačke. Rezultujuća matrica treba da bude veličine 256x256. Nacrtajte dobijeni signal u trodimenzionalnom prostoru i kao sliku. Obratite pažnju na vrijednosti elemenata. Koji signal je u pitanju?
  4. Odrediti Furijeovu transformaciju signala iz prethodne tačke. Nacrtati njenu magnitudu u trodimenzionalnom prostoru i kao sliku. Ukoliko ovaj signal iskorisitimo kao konvolucioni kernel kakav filtar dobijamo?
  5. Sastavni dio Image Processing Toolboxa je i funkcija fspecial pomoću koje se mogu generisati različiti dvodimenzionalni filtri. Pomoću ove funkcije generišite Gausov konvolucioni kernel. Amplitudsku karakteristiku dvodimenzionalnog filtra moguće je direktno dobiti korišćenjem funkcije freqz2. Nacrtajte amplitudsku karakteristiku Gausovog filtra. Kakav je filtar u pitanju?
  6. Učitajte sliku lena.bmp u Matlab radni prostor i prikažite sliku. Odredite Furijeovu transformaciju ove slike. Na jednoj slici prikažite logaritam magnitude, a na drugoj fazu dobijene Furijeove transformacije.
  7. Pronađite sada inverzne Furijeove transformacije korišćenjem samo magnitude, odnosno, samo faze dobijene Furijeove transformacije.
    Uputstvo: Formirajte dvije nove matrice. Jednu, koja će sadržati samo magnitudu dobijene Furijeove transformacije, a drugu koja će imati istu fazu, ali magnitudu jednaku jedinici (iskoristite exp(j*angle(f)), gdje je f polazna Furijeova transformacija, a j imaginarna jedinica). Matrice dobijene inverznom Furijeovom transformacijom prikažite pomoću imagesc. Za obje slike iskoristite truesize da biste podesili njihove dimenzije.
  8. Data je slika zamucena.tif, narušena usljed uniformnog kretanja kamere i djelovanja aditivnog Gausovog šuma. Pogodnim dekonvolucionim filtrom restaurirati sliku. Za metode restauracije opisane u okviru ovog kursa potrebno je poznavanje modela degradacije. Tako se zamućenje slike usljed uniformnog kretanja kamere može opisati optičkom funkcijom prenosa
    ,
    sa parametrima a=b=50 i T=1.
    Napomena: Priložena slika generisana je korištenjem date optičke funkcije prenosa što daje donekle različite rezultate u odnosu na funkciju koju vraća fspecial iz Image Processing Toolboxa. Prema tome, za restauraciju ove slike nije moguće koristiti konvolucioni kernel dobijen pomoću fspecial.

Napomena: U izvještaj uključite svoja zapažanja ostvarena tokom ove vježbe. Nemojte uključivati slike ili grafike ukoliko se to eksplicitno od vas ne zahtijeva. Obavezno odgovorite na sva postavljena pitanja.

Uvod12345