Repetisjon Basis-bilder 737 Midlertidig versjon! INF 3 9 mars 7 Diskret Fouriertransform del II Ortogonal basis for alle 4x4 gråtonebilder Kjapp repetisjon Konvolusjonsteoremet Filtre og filtrering i frekvensdomenet Bruk av vinduer Eksempel: INF3 739 Sort er, hvit er /39 3 5 4 5 3 4 3 6 * + 3* + + 6* INF3 739 En alternativ basis Basisbilder - cosinus v Bildene u med frekvensene til v N- u,,,n- v,,,n- Alle digitale gråtonebilder av størrelse NxN kan representeres ved en vektet summasjon av disse NxN sinus- og cosinus-bildene (basisbilder/basisvektorer) Denne basisen er også ortogonal, sett bort i fra duplikat-komponentene grunnet symmetriene og antisymmetriene til cos og sin (noe vi kommer til om litt) sin(-π(ux/m+vy/n)) INF3 739 til u N- Ved ikke-kvadratiske bilder: cos(π(ux/m+vy/n)) 3 /39 Basisbilder - sinus 739 INF3 I illustrasjonen indikerer sort - og hvitt 4 /39 D diskret Fouriertransform (DFT) v u til v N- til u N- 739 INF3 Husk at ejθ cos(θ) + j sin(θ), slik at vi ender opp sin/cos-basisen vi er vant med: Den inverse transformen: I illustrasjonen indikerer sort - og hvitt 5 /39 739 INF3 6 /39
Litt repetisjon om DFT Konvolusjonsteoremet Fouriertransformen F(u,v) er periodisk: F(u,v)F(u+kN,v+kN), k heltall Bildet f(x,y) implisitt periodisk: f(x,y)f(x+kn,y+kn) Konvolusjon i bildedomenet Punktvis multiplikasjon i frekvensdomenet Amplitudespekteret er gitt ved F(u,v) Konjugert symmetri: Hvis f(x,y) er reell, er F(u,v)*F(-u,-v) og altså F(u,v) F(-u,-v) Ofte forskyver spekteret med N/ for å få origo (uv) midt i bildet Det motsatte gjelder også: Punktvis multiplikasjon i bildedomenet Konvolusjon i frekvensdomenet D DFT er separabelt i to D DFT Egentlig snakk om en «sirkelkonvolusjon» Shift-teoremet: f(x-x,y-y) F(u,v) e-j (ux+vy)/n 739 7 /39 INF3 739 Diskrete tilfellet: Elementvis produkt av de komplekse matrisene F og H 8 /39 INF3 Eksempel: Middelverdifilteret Anvendelser Analyse av konvolusjonsfiltre Fourier-transformen til et filter h gir oss innblikk i frekvensresponsen til filteret /5 Filterdesign Kan designe filter i både frekvensdomenet og bildedomenet Begge kan implementeres som konvolusjon i bildedomenet, eller som multiplikasjon i frekvensdomenet F og H må ha samme størrelse: Nullutvide [Det nullutvidede bildet har egentlig størrelse 5x5 Aksene viser feil] nullutvide (I)DFT * (I)DFT Implementasjon Store filtre kan implementeres raskere i frekvensdomenet 739 (I)DFT 9 /39 INF3 Konvolusjonsteoremet: Tommelfingerforklaring Sirkelkonvolvere Bilde A 739 INF3 /39 Konvolusjonsteoremet mer formelt (D) Bilde B Sirkelkonvolusjon Sirkelkonvolvere alle kombinasjoner og så summere etc MEN: Ved ulik (u,v) får vi Ved like (u,v) endres kun amplitude og fase etc Å (sirkel)konvolvere et bilde med en av basisbildene gir som resultat det samme basisbildet dog med mulig endret amplitude og fase 739 INF3 /39 (Kopi fra dsprelatedcom) 739 INF3 /39
Filterdesign i Fourier-domenet Generelt Design i romlige domenet og filtrering i frekvensdomenet Har en filterkjerne og vil implementere filtreringen i frekvensdomenet: Vi ønsker reelle konvolusjonskjerner > (konjugert) symmetrisk i Fourierdomenet Beregn DFT (fft) av bildet Beregn DFT (fft) av filterkjernen (med evt nullutvidelse) 3 Multipliser de to transformerte matrisene elementvis 4 Transformer resultatet tilbake til bildedomenet vha invers DFT (IDFT, ifft) Ofte er alle verdiene til filteret mellom og ; fjerner og bevarer den aktuelle frekvensen Hvis DC i filteret er så bevares bildets middelverdi Vi viste forrige uke at DC er summen av gråtoneverdiene Hvis DC i filteret er så vil DC i ut-bildet bli lik DC i innbildet, altså vil summen av gråtoneverdiene bevares Husk at filteret og bildet må ha samme størrelse (nullutvide filterkjernen) Husk at vi snakker sirkelkonvolusjon (må nullutvide mer [også bildet] om vi ønsker alternative randhåntering) 739 3 /39 INF3 Filterdesign i frekvensdomenet Lavpassfiltre 739 4 /39 INF3 Romlig representasjon av ideelt lavpassfilter Slipper bare gjennom lave frekvenser (mindre enn en grense D som kalles filterets cut-off-frekvens) IDFT D oppgis ofte som et tall mellom og ; da menes en cut-off DN/ Enkelt (også kalt ideelt) lavpassfilter: (Ordet ideelt kommer fra om H(u,v) var enten eller for alle mulige frekvenser u og v, ikke kun,,n- Dette er et urealiserbart filter, da filterkjernestørrelsen da vil gå mot uendelig) 739 5 /39 INF3 Eksempler - ideell lavpass Vi får en «ringing»-effekt i bildet 739 INF3 D INF3 i og j er array-indeksene til H og er relatert til frekvensene ved et skift: u i M /+ v j N / + Hvorfor floor(m/+)? for i :M for j :N if sqrt( ((i-floor(m/+))/(m/))^ + ((j-floor(n/+))/(n/))^ ) < D H(i,j) ; end end end D 3 Se på bildene i god nok oppløsning (du skal se stripe/ringing-effekter i de to til høyre) 739 6 /39 MATLAB-eksempel: Ideelt lavpassfilter f double(imread('')); [M,N] size(f); H zeros(m,n); D ; Original (trunkert sinc-funksjon) Og husk tommelfingerregel om utstrekning i fourier- og bildedomenet 7 /39 F fftshift( fft(f) ); g real( ifft( ifftshift( F*H ) ) ); imshow(g, []); 739 Hvis M er odde: DC skal være pikselen midt i filteret Da vil filterposisjonene representere frekvensintervallet [-floor(m/), floor(m/)] Arrayindeksene vil derfor angi frekvensene hvis vi skifter med floor(m/) (nullindeksert array) eller floor(m/+) ceil(m/) (en-indeksert array) Hvis M er like: Senterpunktet i filteret er nå midt mellom piksler, men DC skal ligge i en piksel Generelt kan vi velge om DC skal være den M/-te eller (M/+)-te posisjonen i filteret Det er sistnevnte som er vanlig og som brukes i FFTSHIFT og IFFTSHIFT Med dette valget vil filterposisjonene representere frekvensintervallet [-M/, M/-] For én-indeksering skal vi da skifte med M/+ floor(m/+) Analog forklaring for floor(n/+) INF3 8 /39
Butterworth lavpassfilter Vindusfunksjoner brukes til å redusere ringing-effekten Butterworth lavpassfilter av orden n: H (u, v ) n D (u, v) / D Her vil D beskrive punktet der H(u,v) har falt til halvparten av sin maksimumsverdi Lav filterorden (n liten): H(u,v) faller langsomt: Lite ringing Høy filterorden (n stor): H(u,v) faller raskt: Mer ringing Andre filtre kan også brukes, feks Gaussisk, Bartlett, Blackman, Hamming, Hanning 739 9 /39 INF3 739 Eksempler Butterworth-lavpass /39 INF3 Gaussisk lavpassfilter Gaussisk lavpassfilter med spredning D er definert som: H (u, v)e D (u, v) D altså en D normalfordeling (uten konstantfaktoren) med DC som forventning og D som standardavvik (i alle retninger, ingen kovarians) D H(,) er og H er strengt avtagende i alle retninger ut fra DC n4 n Standardavviket angir avstanden fra DC til punktet der H er,6 n6 D IDFT-en av et Gaussisk lavpassfilter er også Gaussisk Får ingen ringing i bildedomenet! 739 INF3 /39 739 /39 INF3 Høypassfiltrering Gaussisk lavpassfilter Et høypassfilter kan defineres ut fra et lavpassfilter: H HP (u, v) H LP (u, v) Ideelt høypassfilter: H (u, v) { if D (u, v) D if D (u, v) > D Butterworth høypassfilter: H (u, v) +[ D / D (u, v )]n Gaussisk høypassfilter: Husk tommelfingerregelen: Smal/bred struktur i bildet Bred/smal struktur i Fourierspekteret 739 INF3 3 /39 H (u, v ) e 739 INF3 D (u,v ) D 4 /39
Båndpass- og båndstoppfiltere Notch-filtre Båndpassfilter: Slipper gjennom kun energien i et bestemt frekvensbånd <Dlow, Dhigh> (eller <D-, D + >) Slipper igjennom (notch-passfiltre) eller stopper (notchstoppfiltre) energien i mindre predefinerte området i Fourier-spekteret Båndstoppfilter: Fjerner energi i et bestemt frekvensbånd <Dlow,Dhigh> Butterworth båndstoppfilter: Båndstopp Også disse kan bruke de samme overgangene: Ideelt, Butterworth, Gaussisk (eller én av mange andre typer) Båndpass + Kan være svært nyttige Butterworth båndpassfilter: - Ofte trengs interaktivitet for å definere de aktuelle områdene H p (u, v) H s (u, v) 739 5 /39 INF3 739 /9 /5 Fig 464 i DIP INF3 7 /39 6 /39 Analyse av filtre Frekvensresponsen til noen vanlige filtre Eksempel: Notch-stoppfilter 739 INF3 /6 4 739 INF3 8 /39 Høypassfiltre - - - - - - x * 739 INF3 9 /39 - - - - - - - - 739 INF3 3 /39
Prewitt-filteret Når er filtrering raskest i frekvensdomenet? Anta bildet har størrelse N N, filterkjernen n n Filtrering i bildedomenet krever N n multiplikasjoner og tilsvarende addisjoner Filtrering i frekvensdomenet: - x * FFT av bildet og filterkjernen: * O(N log N) Multiplikasjon i frekvensdomenet: N multiplikasjoner Inverstransform av resultatet : O(N log N) - - - 739 Filtrering i frekvensdomenet raskere når filteret er stort ( n >> log N ) 3 /39 INF3 739 «Korrelasjonsteoremet» INF3 3 /39 Bruk av vindusfunksjoner Må se på bildet som periodisk > Det oppstår diskontinuiteter i kantene av bildet > «kunstige» bidrag på aksene i spekteret f ( x, y ) h( x, y) F (u, v)* H (u, v) Korrelasjon i bildedomenet Multiplikasjon (med F*(u,v)) i frekvensdomenet Med F(u,v)* menes den kompleks-konjugerte til F(u,v) Det motsatte gjelder også: f ( x, y )* h( x, y ) F (u, v) H (u, v) 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 fw(x,y)f(x,y)w(x,y) Ta DFT av fw(x,y) Bildet kan være en liten del av et større bilde, jfr egenskapsuttrekning Brukes feks til templatmatching Bortsett fra komplekskonjugeringen, *, er dette helt likt konvolusjonsteoremet! 739 INF3 33 /39 739 Eksempler på vindusfunksjoner window function apodization tapering Hamming-vindu h hamming(n); w h*h ; fw w * f; Tukey-vindu h tukeywin(n); w h*h ; fw w * f; INF3 34 /39 Effekten av vinduer Hvis vi bruker vindusfunksjon til å redusere effekten av bildekantene i spekteret gjør vi fw(x,y)f(x,y)w(x,y) 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 Jfr konvolusjonsteoremet 739 INF3 35 /39 739 INF3 36 /39
Vindusfunksjoner Eksempel, bruk av vindusfunksjon x D IDFT D IDFT Det finnes mange typer vindusfunksjoner Ofte defineres de i D og utvides til D ved matrisemultiplikasjon D samplet vindusfunksjon h (kolonnevektor) gir D-en ved hht Forrige eksempel benyttet Tukey-vinduet, som i D er definert som: D IDFT Parameteren α kontrollerer skarpheten til overgangen; gir et rektangulært vindu, gir et glatt vindu kalt Hann vindu 739 INF3 37 /39 Oppsummering Konvolusjonsteoremet: Konvolusjon i bildedomenet er ekvivalent med elementvis multiplikasjon i frekvensdomenet, og omvendt Anvendelser Design av filtre i frekvensdomenet Lavpass, høypass, båndpass, båndstopp, notch «Myke» overganger -> redusere ringing Analyse av konvolusjonsfiltre Rask implementasjon av større konvolusjonsfiltre Vindusfunksjoner 739 INF3 39 /39 Vindusfunksjoner kan også brukes i Fourier-domenet, da til å definere overgangene i et filter Butterworth og Gaussisk er vindusfunksjoner Alle vindusfunksjoner kan brukes i begge domener 739 INF3 38 /39