Bildene til oppgavene under finnes under http://www.uio.no/studier/emner/matnat/ifi/INF2310/v13/undervisningsmateriale/bilder/
Oppgave 1 - Konvolusjonsteoremet
- Formuler konvolusjonsteoremet med ord.
- Hvordan kan vi (rent praktisk) bruke 2D DFT-en til et konvolusjonsfilter til å finne hvilke frekvenser filteret demper og hvilke det bevarer?
- Hvordan gir konvolusjonsteoremet oss muligheten til å designe konvolusjonsfiltre med bestemte frekvensegenskaper? Hvorfor bør filtrene vi designer i Fourier-domenet være konjugert symmetriske? Hvilke kriterier er det naturlig å ha for intervallet til realdelverdiene og verdien av imaginærdelene dersom vi skal designe enkle konvolusjonsfiltre i Fourier-domenet?
- Under ser du Fourier-spektrene til konvolusjonsfiltrene [1 2 1]T og [1 0 -1] etter de er nullutvidet til en størrelse på 200x200 (T indikerer den transponerte). Fremvisningen er slik at DC, (0,0)-frekvensen, er midt i bildet og lyst indikerer høy verdi mens mørkt indikerer lav verdi. Hvilke konvolusjonsfiltre og Fourier-spektre hører sammen? Begrunn.
- Hvis vi multipliserer de to nullutvidede filtrenes 2D DFT-er element for element, så får vi en 2D DFT som har magnitudebildet som er vist under. Hvilket konvolusjonsfilter er dette Fourier-spekteret til?
Oppgave 2 - Design av filtre i Fourier-domenet: Ideelle filtre
- Lag et lavpassfilter H1 av størrelse PxQ som er 0 for alle frekvenser (u,v) lengre enn en gitt terskel D0 fra DC, og 1 ellers. Sett P=Q=512 og D0=50, og visuelt anslå at det resulterende filteret har 50 ikke-null elementer langs aksene på hver side av DC. Tips: Ta gjerne utgangspunkt i eksempelet på s. 20 i forelesningsnotatet.
- Beregn 2D IDFT av filteret H1 og visualiser imaginærdelen av resultatet. Det er fordi filteret er reelt og symmetrisk i Fourier-domenet at denne imaginærdelen er 0. I praksis kan imaginærdelen av resultatet inneholde små ikke-null verdier dersom man bruker upresis flyttallsaritmetikk (som MATLAB gjør), p.g.a. dette bruker vi i praksis kun realdelen til resultatet når vi vet at imaginærdelen skal være 0 (som generelt er når filteret/bildet er konjugert symmetrisk i Fourier-domenet). Tips: Husk at ifft2-kommandoen antar at DC har koordinat (1,1). Hint: Dersom imaginærdelen av resultatet inneholder store ikke-null verdier betyr det at H1 ikke oppfyller symmetriegenskapen; se s. 20 i forelesningsnotatet for implementasjonstips og forklaring.
- Visualiser det romlige representasjonen av filteret H1. Hvilken egenskap ved filteret H1 (i Fourier-domenet) forårsaker den såkalte "ringingen" i den romlige representasjonen?
- Lag lavpassfilteret H2 som er likt som filteret H1 med unntak av at D0=100. Visualiser den romlige representasjonen av filteret H2 og forklar hvorfor dette filteret vil både utjevne mindre og gi mindre markant ringing dersom det konvolveres med et gråtonebilde, sammenlignet med å konvolvere den romlige representasjonen av filteret H1 og bildet.
- Last inn bildet car.png. Filtrer bildet med filtrene H1 og H2, og behandl bilderandproblemet med nullutvidelse. Sammenlign de to filtrerte resultatene i bildedomenet, med hverandre og med originalbildet. Hint: H1 og H2 er definert slik at de ikke trengs og nullutvides - det er tilstrekkelig å nullutvide bildet til samme størrelse (512x512) for å unngå wraparound-feil. fft2-kommandoen kan gjøre nullutvidelsen for deg ved at du spesifiserer hvilken størrelse det nullutvidede bildet skal ha; fft2(im, M, N) der M og N er henholdsvis antall rader og kolonner. Bildet blir da utvidet ved å legge til 0-er på slutten av bildet, en detalj du trenger å vite når du etter å ha beregnet 2D IDFT skal forminske bildet ved å fjerne pikslene inn-bildet ble utvidet med.
- Et høypassfilter i Fourier-domenet kan defineres som 1 minus et lavpassfilter i Fourier-domenet (se s. 27 i forelesningsnotatet). Utfør filtreringene i punkt e med høypassfiltrene som er definert ut fra lavpassfiltrene H1 og H2. Sammenlign de to høypassfiltrerte resultatene i bildedomenet og merk at ringingen er mest markant for det høypassfilteret som tilsvarer lavpassfilteret med mest markant ringing.
- Ved å addere HHP(u,v) på begge sider av likhetstegnet i likningen HLP(u,v) = 1-HHP(u,v), ser vi at summen av et lavpassfilter og det tilhørende høypassfilteret er 1 i alle elementer. Ved å anvende lineæritetsegenskapen til 2D DFT, egenskap 2 i tabell 4.3 i DIP (s. 254), og konvolusjonsteoremet får vi at f(x,y) = gLP(x,y) + gHP(x,y) der f er det opprinnelige gråtonebildet, og gLP og gHP er det samme bildet konvolvert med henholdsvis et lavpassfilter og det tilhørende høypassfilteret. Hvordan kan denne sammenhengen benyttes til å forklare sammenhengen i punkt f; høypassfilteret med mest markant ringing tilhører lavpassfilteret med mest markant ringing.
Oppgave 3 - Design av filtre i Fourier-domenet: Praktisk eksempel
Last inn bildet tekna133.png. Bildet er hentet fra første utgave av Teknas studentmagasin i 2012 og skannet med oppløsningen som DIP oppgir (på s. 234) som typisk for magasiner; 133 dpi. Støyen på bildet danner et mønster som kalles Moiré-mønster (les mer på s. 233-235 i DIP). Slik støy vil forekomme på de aller fleste normale utskrifter og skyldes teknikkene som vanligvis benyttes til utskrift. Figur 4.64 i DIP, som er vist ved flere anledninger i forelesningene, er forøvrig et annet eksempel på et bilde med Moiré-mønster.
- Studer Fourier-spekteret til bildet i seg selv og etter nullutvidelse til dobbel størrelse i hver retning. Forårsaker periodisitetsantagelsen eller nullutvidelsen størst bidrag langs u- og v-aksene? Hvorfor?
- Finn de fire parene av frekvenser som støyen hovedsakelig består av, både for det originale og for det nullutvidede bildet. Hint: Let etter topper i Fourier-spekteret blant de høyere frekvensene. Magnituden til en frekvens i det nullutvidede bildet er lik magnituden til den halve frekvensen i originalbildet.
- Filterer originalbildet med et notch-stoppfilter med Butterworth-overganger av orden 2 og med cut-off 10. Sammenlign det filtrerte bildet (i bildedomenet) med originalbildet. Er støyen hovedsakelig fjernet? Finner du visuelt synlig wraparound-feil i det filtrerte bildet? Ser du ringing også? Hint: Se likning (4.10-5) på side 295 i DIP.
- Filterer det nullutvidede bildet med et notch-stoppfilter med Butterworth-overganger av orden 2 og med cut-off 20. Sammenlign Fourier-spektrene til det filtrerte originalbildet fra punkt c og dette filtrerte nullutvidede bildet, og verifiser at de anvendte filtrene er tilsvarende m.h.p. orden (overgang) og cut-off (størrelse) relativt til sitt Fourier-spekter. Sammenlign de filtrerte bildene (i bildedomenet) som ble laget med og uten nullutvidelsen. Verifiser at wraparound-feil ikke lenger er til stede i det filtrerte bildet som ble laget med nullutvidelsen, men at dette bildet har samme ringing. Forklar hva som er årsaken til den nye visuelt synlige feilen i dette bildet.
- De filtrerte bildene i de to foregående punktene hadde hver sin feil (utenom ringing, som de begge hadde). Hvordan kan vi (omtrentlig) unngå begge disse individuelle feilene samtidig? Utfør filtreringen og vurder resultatet.
Oppgave 4 - Analyse av konvolusjonsfiltre
Velg endel kjente konvolusjonsfiltre, nullutvid dem til en passende størrelse for et bilde og visualiser Fourier-spektrene til de nullutvidede filtrene. Forklar overordnet hvorfor hvert Fourier-spekter ser ut som det gjør og bruk det til å beskrive det tilhørende konvolusjonsfilterets effekt (når det brukes til konvolusjon). Bruk gjerne konvolusjonsfiltrene og Fourier-spektrene på s. 31-33 i forelesningsnotatet. Nullutvid noen konvolusjonsfiltre til flere størrelser og merk at den overordnede strukturen forblir identisk.
Oppgave 5 - Aliasing
Last inn bildet forresampling.png og studer dets Fourier-spekter. Dann en mengde med nedsamplede bilder hvor du velger ut hvert d-te piksel for d=1,2,3,4. Studer bildene visuelt og legg merke til den tydelige aliasingen i bildene når d er større enn 2. Studer bildenes Fourier-spektre og legg merke til de stadig tydeligere "falske" frekvensene når stadig flere markante frekvenser i originalbildet ikke lenger kan representeres med den gitte samplingsfrekvensen. Du kan finne det nyttig å repetere samplingsteoremet og aliasing fra andre forelesning; Sampling og kvantisering. Tips: I MATLAB kan du enkelt hente ut hvert d-te piksel i matrisen f ved å bruke fd = f(1:d:end,1:d:end).
Oppgave 6 - Vindusfunksjoner og Fourier-spektre
Last inn bildet lena.png. Generer et 2D Tukey-vindu med samme størrelse som bildet og med alpha lik 0.5 (se s. 47 i forelesningsnotatet eller bruk tukeywin-kommandoen). Inspiser vindusfunksjonen visuelt. Studer Fourier-spekteret til bildet både med og uten bruk av vindusfunksjonen (en vindusfunksjon brukes i bildedomenet ved å punktmultiplisere den med bildet). Verifiser at bidragene langs aksene er redusert og forklar hvorfor.