INF 30 0. april 00 Fouriertransform del II Kjapp repetisjon Bruk av vinduer Konvolusjonsteoremet Filtre og filtrering i frekvensdomenet Eksempel: 3 5 4 5 3 4 3 6 Repetisjon Basis-bilder Sort er 0, hvit er. Ortogonal basis for alle 4x4 gråtonebilder. = * + 3* +.+ 6* Bildene ux vy cos( ) N Alternativ basis ux vy sin( ) N v u Basisbilder - cosinus med frekvensene u = 0,,,N- v = 0,,,N- til u = N- Alle digitale bilder av størrelse NxN kan representeres ved 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)) 3.. til v = N- 4
v u Basisbilder - sinus D diskret Fouriertransform (DFT) F( M N x0 y0 e j ( ux / M vy / N ) til u = N- Husk at e jθ = cos(θ) + j sin(θ), slik at vi ender opp sin/cos-basisen i vi er vant med: F( M N x0 y0 ) y cos ( ux/ M vy / N) j sin ( ux / M vy / N).. til v = N- Den inverse transformen: N MN N u0 v0 F( e ( uxv j N 5 6 Litt repetisjon om DFT Fouriertransformen F( er periodisk: F(=F(u+kN,v+kN), k heltall Bildet f(x, implisitt periodisk: f(x,=f(x+kn,y+kn) Amplitudespekteret er gitt ved F( Konjugert symmetri: Hvis f(x, er reell, er F(= * F(-- og altså F( = F(-- Ofte forskyver spekteret med N/ for å få origo (u=v=0) midt i bildet D DFT er separabelt i to D DFT Bruk av vindusfunksjoner Må se på bildet som periodisk Det oppstår diskontinuiteter i kantene av bildet Dette gir kunstige bidrag på aksene i spekteret For å begrense slike høyfrekvente bidrag kan man bruke en vindusfunksjon og vekte dataene før DFT beregnes Vindusfunksjonene modifiserer pikselverdiene slik at de går mot null i enden av sekvensene Lag f w (x,=f(x,w(x, Ta DFT av f w (x, Bildet kan være en liten del av et større bilde, jfr egenskapsuttrekning Shift-teoremet: f(x-x 0,y-y 0 )F( e -j(ux0+vy0)/n 7 8
Vindusfunksjoner window function apodization tapering Eksempel: Hamming-vindu. Matlab: h = hamming(n); w = h*h ; fw = w.* f; Effekten av vinduer Hvis vi bruker vindusfunksjon til å redusere effekten av bildekantene i spekteret gjør vi f w (x,=f(x,w(x, før FFT Dette gjør at bidragene langs aksene i Fourier-spekteret reduseres, men vi påvirker også andre frekvenser i bildet Effekten av en multiplikasjon i bildedomenet er en konvolusjon i frekvensdomenet (konvolusjonsteoremet) Multiplikasjon med en bred klokkefunksjon i bildedomenet er ekvivalent med en konvolusjon av en smal klokkefunksjon i frekvensdomenet Bruk av vindusfunksjon gir en blurring av spekteret 9 0 Eksempel, bruk av vindufunksjon Konvolusjonsteoremet x = h( x, F( H ( DFT DFT Konvolusjon i bildedomenet Multiplikasjon i frekvensdomenet Det motsatte gjelder også: h( x, F( H ( Multiplikasjon i bildedomenet Konvolusjon i frekvensdomenet 3
Konvolusjonsteoremet D Fourier-transformen til et filter h gir oss innblikk i frekvensresponsen til filteret Kan designe filter i både frekvensdomenet og bildedomenet Begge kan implementeres som konvolusjon i bildedomenet, eller som multiplikasjon i frekvensdomenet Sirkelkonvolusjon F og H må ha samme størrelse: Nullutvide Sirkelkonvolusjon (Kopi fra dsprelated.com) 3 4 Eksempel: Middelverdifilteret Design i romlige domenet og filtrering i frekvensdomenet nullutvide (I)DFT Har en filterkjerne og vil implementere filtreringen i frekvensdomenet: * x (I)DFT = =. Beregn DFT av bildet. Beregn DFT av filterkjernen (med evt nullutvidelse) 3. Multipliser de to transformerte leddene 4. Transformer resultatet tilbake til bildedomenet vha. invers DFT (IDFT) (I)DFT Husk at filteret og bildet må ha samme størrelse (nullutvide filterkjernen) 5 6 4
Når er filtrering raskest i frekvensdomenet? f(x, har dimensjon NN, filterkjerne nn Filtrering i bildedomenet krever N n multiplikasjoner og tilsvarende addisjoner Filtrering i frekvensdomenet: FFT av bildet og filterkjernen: * O(N log N) Multiplikasjon i frekvensdomenet: N multiplikasjoner Inverstransform av resultatet : O(N log N) Filtrering i frekvensdomenet raskere når filteret er stort ( n >> log N ) Filterdesign i frekvensdomenet Lavpassfiltre Slipper bare gjennom lave frekvenser (mindre enn en grense D 0 som kalles filterets cut-off frekvens) D 0 oppgis ofte som et tall mellom 0 og ; da menes en cut-off = D 0 N/ Enkelt (også kalt ideelt) lavpassfilter:, D ( v ) D0 H ( 0, D( D0 D( ( u N / ) ( v N / ) (Ordet ideelt kommer fra om H( var enten 0 eller for alle mulige frekvenser u og v, ikke kun 0,,..N-. Dette er et urealiserbart filter, da filterkjernestørrelsen da vil gå mot uendelig) 7 8 Romlig representasjon av ideelt lavpassfilter Eksempler - ideell lavpass IDFT Original D 0 =0. D 0 =0.3 (trunkert sinc-funksjon) Vi får en ringing-effekt i bildet Husk tommelfingerregel om utstrekning i fourier- og bilde-domenet 9 Se på bildene i god nok oppløsning (du skal se stripe/ringing-effekter i de to til høyre). 0 5
Matlab-eksempel: Ideelt lavpassfilter im = double(imread(.. )); H = zeros(m,n); for i=:m for j=:n if sqrt( (i-m/)^ + (j-n/)^ ) < N/*r0 H(i,j) = ; end end end IM = fftshift( fft(im) ); im_filt = ifft( ifftshift( IM.*H ) ); imagesc( real( im_filt) ); Butterworth lavpassfilter Vindusfunksjoner brukes til å redusere ringingeffekten Butterworth lavpassfilter av orden n: H ( D( / D n 0 Her vil D 0 beskrive punktet der H( har falt til halvparten av sin maksimumsverdi Lav filterorden (n liten): H( faller langsomt: Lite ringing Høy filterorden (n stor): H( faller raskt: Mer ringing Andre filtre kan også brukes, f.eks. Gaussisk, Bartlett, Blackman, Hamming, Hanning Eksempler Butterworth-lavpass D 0 =0. 0 n= n=4 n=6 3 4 6
Høypassfiltrering Båndpass og båndstoppfiltere Ideellt høypassfilter: 0, H (, D( D, 0 D( D. 0 Båndpassfilter: Slipper gjennom kun energien i et bestemt frekvensbånd <D low,d high > (eller <D 0 -,D 0 + >) Båndstoppfilter: Fjerner energi i et bestemt frekvensbånd <D low,d high > Butterworth th høypassfilter: (, ) H u v D D u v n 0 / (, ) Butterworth båndstoppfilter: (, ) D( D0 D( H s u v n Butterworth båndpassfilter: H ( H ( p s 5 6 Frekvensrespons til noen vanlige filtre /9 /5 * x /6 4 7 8 7
Prewitt-filteret 0-0 - 0-0 - * x 0-0 - 0 - = = - - - - - 0-0 - 0 - - - - 9 30 Korrelasjonsteoremet * h( x, F( H ( Korrelasjon i bildedomenet Multiplikasjon (med F * () i frekvensdomenet Med F( * menes den kompleks-konjugerte konjugerte til F( Det motsatte gjelder også: * h( x, F( H ( Brukes f.eks. til templatmatching Vindusfunksjoner Oppsummering Konvolusjonsteoremet: Konvolusjon i bildedomenet er ekvivalent med multiplikasjon i frekvensdomenet, og omvendt Filtrering kan gjøres i frekvensdomenet Design av filtre i frekvensdomenet Lavpass, høypass, båndpass, båndstopp Analyse av frekvensresponsen til konvolusjonsfiltre 3 3 8