0700 Foreløbig versjon! INF 0 mars 07 Fourier I -- En litt annen vinkling på stoffet i kapittel I dag: Sinus-funksjoner i D og D D diskret Fouriertransform (DFT) Introduksjon I/II Et gråtonebilde Typisk representasjon: Matrise av gråtoneintensiteter Fourier: En vektet sum av sinuser og cosinuser med ulik frekvens og orientering Mandag: Ekstraforelesning av Kristine holdes mandag 7 mars Litt mer om det matematiske fundamentet Et slik skifte av representasjon kalles ofte et «basisskifte» Neste uke: Konvolusjonsteoremet Filtre og filtrering i frekvensdomenet Vindusfunksjoner / 9 Introduksjon II/II / 9 Funksjonen sin(θ) Hvorfor skifte basis? sin(θ) svinger mellom og - når θ varierer mellom 0 og, og den svinger på samme måte når θ varierer mellom og osv (periodisk) Analyse av bilder Fjerne/dempe periodisk støy Kompresjon Analyse og design av lineære filtre (konvolusjonsteoremet) Egenskapsuttrekning (feks Tekstur) Rask implementasjon av (større) konvolusjonsfiltre Fjerning av periodisk støy, fig 6 i DIP Ut-bildet er resultatet av en konvolusjon, men det er vanskelig å designe filteret i bildedomenet / 9 «Diskret» sinus/cosinus i D / 9 Hva er forskjellen på sin(θ) og cos(θ)? sin( ui/n) starter på 0 og repeteres u ganger per N samples y(i) = A sin(πui/n + φ) N : antall sampler u : antall hele perioder φ : horisontal forskyvning (fase) A : Amplitude cos( ui/n) starter på og repeteres u ganger per N samples I dette eksemplet er A=, u=7, N=5 og =0 Bare startpunktet, dvs faseforskyvningen,, er forskjellig 5 / 9 6 / 9
Hva får vi om vi legger sammen sin og cos? Vertikal og horisontal komponent Asin(θ) + Acos(θ) = A sin(θ + Φ), der Introduksjon til sinus-funksjoner i D og Φ=atan(A,A) Vi ender altså opp med en sin-funksjon med samme frekvens, men endret amplitude og fase Vi kan også gå andre veien og si at enhver sinus-funksjon med gitt frekvens kan dannes ved å legge sammen en vektet sinog en vektet cos-funksjon med denne samme frekvensen A A Φ A Alternativ koding /representasjon av informasjonen (A, Φ, θ) er altså (A, A,θ) Sinusfunksjoner i bilder (D) A amplitude u vertikal frekvens v horisontal frekvens - faseforskyvning 7 / 9 A=50, u=0, v=0 8 / 9 Eksempler: Sum av D sinfunksjoner + = + = A=0, u=0, v=0 I eksemplene vises 0 som grått, -7 som sort, og 7 som hvitt A=50, u=0, v=0 A=00, u=0, v=5 A=00, u=5, v=5 Sum av to bilder med lik frekvens (og lik retning) gir nytt bilde med samme frekvens (og retning), jfr s 7 Merk: u og v er antall repetisjoner i bildet vertikalt og horisontalt 9 / 9 «Basis-bilder» 0 / 9 Alternativ basis Bildene Sort er 0, hvit er Ortogonal basis for alle x gråtonebilder med frekvensene u = 0,,,N- v = 0,,,N- Eksempel: 5 5 6 = * + * + + 6* Alle digitale gråtonebilder av størrelse NxN kan representeres ved en vektet summasjon av disse NxN sinus- og cosinus-bildene (basisbilder/basisvektorer) Ved ikke-kvadratiske bilder: cos(π(ux/m+vy/n)) sin(-π(ux/m+vy/n)) / 9 / 9
Basisbilder - cosinus Basisbilder - sinus v v u u til v = N- til u = N- til v = N- til u = N- I illustrasjonen indikerer sort - og hvitt / 9 I illustrasjonen indikerer sort - og hvitt / 9 Symmetri i basisbildene Hvordan finne bidraget fra et gitt basisbilde? Vanlig basis med bare 0-ere og ett piksel lik cosinus sum ( x ) 55 (bakre del av bilen) u= 0 N-5 N- N- N- N- sinus sum ( x ) Bidraget finnes altså ved indreproduktet mellom bildet og basisbildet 5 / 9 u= 0 N-5 N- N- N- N- (antisymmetri i sinus-bildene) 6 / 9 Finne fase og amplitude Eksempel (symmetri) La R inneholde cosinus-bidragene og I inneholde sinus-bidragene Logaritmen til absoluttverdien til cosinus-bidragene Fasen til sinfunksjonen med frekvens u,v: Φ Amplituden til sinfunksjonen med frekvens u,v: Logaritmen til absoluttverdien til sinus-bidragene Husk fra s 7: (A, Φ, θ) <=> (A, A,θ) Første linjen i sinus-bidragene 7 / 9 8 / 9
Eksempel: Amplitude og fase (Log av) amplituden eller spekteret Forteller noe om hvilke frekvenser bildet inneholder (u,v) - fasen Visuelt ser fasebildet ut som støy, men fasen inneholder viktig informasjon Resultat som komplekst tall Letter håndtering ved å representere resultatet som et komplekst tall: cosinus-bidragene i realdelen og sinusbidragene i imaginærdelen La F beskrive bildet i den nye basisen F(u,v) = R(u,v) + ji(u,v), j Amplitude og fase kommer da ut som modulus og argument (lengde og vinkel i komplekse planet) 9 / 9 0 / 9 Egenskaper ved D DFT D diskret Fouriertransform (DFT) F(u,v) er periodisk: F(u,v) = F(u+N,v) = F(u,v+N) = F(u+N,v+N) Husk at ejθ = cos(θ) + j sin(θ), slik at vi ender opp sin/cos-basisen vi er vant med: Skal inverstranformen holde, må vi anta at bildet er periodisk: f(x,y) = f(x+n,y) = f(x,y+n) = f(x+n,y+n) Konjugert symmetri: Hvis f(x,y) er reell, er F(u,v) = conj( F(-u,-v) ) Altså er F(u,v) = F(-u,-v) Den inverse transformen: / 9 Egenskaper ved D DFT, forts F(0,0) er proporsjonal med middelverdien i bildet Om ikke annet er oppgitt, antar vi at N=M for enklere notasjon / 9 Framvisning av amplitudespekteret Siden F(u,v) er periodisk med periode N, er det vanlig å forskyve spekteret slik at origo (u=v=0) ligger midt i bildet Bytte kvadranter eller pre-multiplisere f(x,y) med (-)x+y Shift-teoremet: f(x-x 0,y-y0) F(u,v) e-j (ux0+vy0)/n D DFT er separabelt i to D DFT Absolutt nødvendig (sammen med FFT) for å beregningsmessig kunne transformere bilder av en viss størrelse / 9 f(x,y) f(x,y): bildedomenet 0008 F(u,v) F(u,v): frekvensdomenet F(u,v) kalles spekteret til f(x,y) (amplitudespekteret) ( Powerspekteret : F(u,v) ) / 9
Forts framvisning av spektere Eksempler Skalering av verdier: <- spekter Her: hvitt=0 Ofte stor dynamikk i F(u,v) (kan ha høye verdier) Vanlig å benytte logaritmisk skala g(u,v)=c* log( F(u,v) +), der C velges slik at man får gråtoner i mellom for eksempel 0 og 55 (8 bit) XXX 5 / 9 Eksempel skrå frekvens 6 / 9 Eksempel - diskontinuitet Ved å repetere bildet, ser vi tydelig kanter: 7 / 9 8 / 9 Eksempel diskontinuitet II Eksempel - vanlige objektformer 9 / 9 0 / 9
Eksempel vanlig bilde Eksempel - retningsdominant / 9 Eksempel - smal båndbredde / 9 Noen observasjoner Vanligvis størst bidrag/mest energi i spekteret for lave verdier av u,v Bidrag langs u- og v-aksen fordi bildet er implisitt periodisk og vi har diskontinuiteter langs kantene Linjestrukturer i gitt retning i bildedomenet har linjestruktur normalt på retningen i Fourierdomenet Lav oppløsning, lite detaljer Så å si all «energien» er i dette smale området/båndet (både vertikalt og horisontalt) / 9 / 9 Intuisjonsbygging rundt smal struktur i bildedomenet -> bred struktur i Fourier-domenet, og omvendt og noen observasjoner til Skarp kant: Tilsvarer sum av mange sinusfunksjoner Mange Fourier-koeffisienter er 0 Bredt bånd i Fourier-domenet Høyt utslag/indreprodukt på alle tre frekvensene Bilde Blurret kant: Fourierspekter Tilsvarer færre sinusoider Smalere bånd i Fourier-domenet Høyt utslag/indreprodukt kun på laveste frekvens Tommelfingerregler: Smal struktur i bildedomenet : Bred struktur i Fourierdomenet Bred struktur i bildedomenet: Smal struktur i Fourier-domenet Linjestruktur i retning i bildedomenet: Linjestruktur i retning ±90 (normalt på) i Fourier-domenet 5 / 9 6 / 9
Implementasjon av DFT Fourier-transform i Matlab/Octave Beregning av F(u,v) for én u,v: O(N) Beregning for hele bildet: N N F(u,v): O(N) Finnes en algoritme for rask beregning, D FFT (Fast Fouriertransform) Benytter at Fourier-transformen er separabel i to D transformer Bruker bilder (eller delbilder) med størrelse k (k er heltall) Har orden O(N log N) 7 / 9 Oppsummering Sinus-funksjoner frekvens/periode, amplitude og fase dekomponere Asin(θ+Φ) i sin- og cos-komponent D og D Diskret Fourier-transform bildet beskrevet med cos/sin-basisbilder kompleks representasjon cos- og sin-ledd som reell- og imaginær-komponent implisitt periodisitet utslag i diskontinuitet -> ekstra frekvenser fremvisning av spekteret F(u,v) tommelfingerregler 9 / 9 F = fft(f); f = ifft(f); % Gjør en D DFT-transform % og den inverse transformen F_r = real(f); F_i = imag(f); % Realdelen, altså cosinus-basis-bidragene % Imaginærdelen, altså sinus-basis-bidragene F_s = abs(f); % Fourier-spekteret F_p = angle(f); % Fasen F_r(u+,v+); % Gir cosinus-bidragene for frekvens u,v F_r(,); % Gir DC-komponenten fftshift og ifftshift: Flytter kvadranter slik at nullfrekvensen er i midten av bildet, samt omvendt imagesc( fftshift(log(f_s)) + ) ); «+»: Kjapp og gæli kompresjon av fargedynamikken, XXX mulig bytt til [0 max(log(f_s(:))] 8 / 9