INF 30 7.0.009 Kap..4.4 og.6.5 i DIP Anne Solberg Geometriske operasjoner Affine transformer Interpolasjon Samregistrering av bilder Geometriske operasjoner Endrer på pikslenes posisjoner o steg:. Finn ne koordinater (, (, som de originale pikselkoordinatene (,. Siden pikselkoordinatene må være heltall, må vi bruke interpolasjon til å finne hvilken gråtoneverdi den ne posisjonen. Geometriske operasjoner Endrer på pikslenes posisjoner ransformerer pikselkoordinatene (, til (,: : (, (, og ofte gitt som polnomer Merk: I dette første steget er det ikke pikselverdiene (gråtoneverdiene, men piksel-koordinatene og som endres. Anvendelser Zoom inn/ut Rette opp geometriske feil som oppstår under avbildningen Fiskeøelinse Radaravbildning av terreng Medisinsk ultrald... Samregistrere bilder fra ulike sensorer eller bilder tatt på ulike tidspunkt Eks ansiktsgjenkjenning: kj i Finne ansiktene i et bilde og transformere bildet slik at ansiktene i bildet blir på samme sted, orientering og i samme størrelse som i referansebildene Samregistrere bilder med kart i en bestemt kartprojeksjon j Generere bilder fra andre kameravinkler 3 Spesialeffekter 4
Affine transformer ransformerer pikselkoordinatene (, til (, : (, (, Affine transformer beskrives ved: a 0 +a +a b 0 +b +b På matriseform: ' a0 a a ' a0 a a ' b0 b b eller + ' b0 b b 0 0 Egenskaper ved affine transformer Rette linjer bevares Parallelle linjer forblir parallelle Utrkkes ved enkel matrisemultiplikasjon lik Eksempler på affine transformasjoner: ranslasjon Rotasjon Shearing Skalering Kombinasjoner av disse 5 6 Bevaring av parallelle linjer o parallelle linjer har samme stigningstall. Linje : c + d Linje : c +d Hva får vi hvis vi sender og gjennom ligningene for affine transformer? 7 8
Eksempler på enkle transformer Eksempler på enkle transformer ransformasjon a 0 a a b 0 b b Uttrkk ransformasjon a 0 a a b 0 b b Uttrkk Identisk 0 0 0 0 ranslasjon med Δ og Δ 0 Δ 0 Δ +Δ +Δ Skalering med faktor s s s 0 0 0 s 0 s s cosθ-sinθ Rotasjon med θ cosθ -sinθ 0 sinθ cosθ 0 sinθ+ cosθ Horisontal shear s 0 0 0 faktor s Vertikal shear faktor s 0 0 s 0 +s s+ Vertikalt Horisontalt ' a0 ' b0 0 a b 0 a b ' a0 ' b0 0 a b 0 a b 9 0 Sammenslåing av affine transformer Alternative måter å finne transformkoeffisientene ffi i t ' transl. ' ' ' ' rot ' '' En affin transform kan bestemmes ved å spesifisere tre punkter før og etter avbildningen ''' rot transl. '' ''' transl. & rot '' inn-bildet resultat-bildet Med disse tre punktparene kan vi finne de 6 koeffisientene; a 0,a,a,b 0,b,b Med flere enn 3 punktpar velger man den transformasjonen som minimerer kvadratfeilen summert over alle punktene (mer om dette senere
ransformer med høere ordens polnomer Bilineære transformer beskrives ved: a 0 +a +a +a 3 b 0 +b +b +b 3 Kvadratiske transformer: a 0 +a +a +a 3 +a 4 +a 5 b 0 +b +b +b 3 +b 4 +b 5 Også enda høere ordens polnomer kan benttes Muligheter for å korrigere for mer komplekse avbildningsfeil bld l ransformalgoritmer i praksis Eksempel: cosθ sinθ 0 sinθ cosθ 0 0 0 Hva om og ikke er heltall? Hva skjer når og kommer utenfor bildet? Hvor stort skal resultatbildet være? Hva med skalering -- hva om flere punkter mappes til samme heltall etter transformasjonen? Kan vi tillate at ne pikselverdier e blir introdusert? t? 3 4 Algoritme: Forlengs-mapping Eksempel: Forlengs-mapping Rotere et bilde med dimensjon M N: Lag ntt bilde, g, med dimensjon M N for all, do g(,0 a 0 cos θ b 0 sin θ a -b 0 b a 0 for all, do round(a 0 +a round(b 0+b if (, inside g then g(, f(, end Problemer: Hull Mapping beregnes for piksler utenfor bildet g Et output-piksel kan bli beregnet flere ganger (flertdighet 5 6
Algoritme: Baklengs-mapping Eksempel: Baklengs-mapping Rotasjon av inputbildet f med dimensjon M N: Lag ntt bilde, g, med dimensjon M N a 0 cos θ a sin θ b 0 -a b a 0 for alle, do round(a 0 +a round(b 0 +b if (, inside f then g(, f(, else g(,0 0 end Husk: Hvis (, roteres med θ og gir (,, tilsvarer det at hvis (, roteres med -θ får vi (, 7 8 Interpolasjon - hvilken gråtoneverdi skal pikselen få? Baklengs-mapping Nullte-ordens interpolasjon eller nærmeste nabo-interpolasjon g(, f( round(, round( Dette ble brukt i de enkle forlengs- og baklengs-algoritmene. Intensiteten til g blir en av verdiene til f Første-ordens interpolasjon/ bilineær interpolasjon Intensiteten til g blir en kombinasjon av pikselverdiene i de fire pikslene som omgir punktet Bidragene fra hver av disse vektes med avstanden Algoritme (baklengs: Δ - 0 Δ - 0 p f( 0, 0 +[f(, 0 -f( 0, 0 ] Δ q f( 0, +[f(, -f( 0, ] Δ f(, p+(q-pδ 9 0
Høere-ordens interpolasjon Kubisk interpolasjon: Naboskap på 4 4 4 piksler brukes Interpolasjon kan sees på som (kontinuerlig konvolusjon med bestemte filtre Vurdering av interpolasjonsfunksjoner Nærmeste nabo: aggete kanter og større totalfeil. Hver utpiksel har en verdi fra inn-bildet: Fordel hvis man vil bevare statistiske egenskaper for bildet (eller hvis bildet er segmenert i ulike klasser Bilineær interpolasjon og høere-ordens interpolasjon er mer regnekrevende. (D-varianter av nærmeste nabo, lineær og kubisk interpolasjonskjerne Kubisk interpolasjon gir skarpere bilder og har kontinuerlige deriverte, men er (me mer regnekrevende enn bilineær interpolasjon, og kan gi opphav til kant-glorie-effekter Vanlig kompromiss: bilineær Unntak: binære eller klassifiserte/segmenterte bilder. Kant-glorie-effekter effekter / ringing ved kubisk interpolasjon Bruk av geometriske transformer: Samregistrering i av bilder Original ransformert Negative lobe-verdier Ønsket bilde å samregistrere med 3 4
Samregistrering II Hvis bildenes kartkoordinater er kjent, brukes disse (evt. må man transformere til felles kartprojeksjon Hvis bildenes kartkoordinater ikke er kjent, brukes gjerne kontrollpunkter: Kontrollpunkter plukkes ut manuelt - lett identifiserbare punkter (landemerker i begge bildene Affine transformer er eksakt spesifisert med 3 punktpar (bestemmer a 0,a,a,b 0,b,b eksakt Bilineære transformer er eksakt spesifisert med 4 punkter, (kvadratiske med 6 punkter,.. Ofte mange flere punkter for å få en god transformasjon Samregistrering III Kvadratfeilen brukes til å vurdere hvor god en samregistrering er Gitt M kontrollpunkter ( i, i,( ir, ir ( r er referansebildet ( i, i --> ( i, i M >>3 for affine transformer og M>>6 for kvadratiske Polnomkoeffisientene bestemmes som de som passer best mht. kontrollpunktene, dvs. de som minimerer kvadratfeilen mellom kontrollpunktets sanne koordinater ( ir, ir og de transformerte koordinatene ( i, i M r i J ( ' + ( ' i i r i Enkel lineæralgebra benttes til å finne eksakte løsninger på ligningen over i 5 6 Kursorisk pensum M Samregistrering IV (Minimere kvadratfeilen r r r J ( i ' i + ( i ' i J + J J ( i ' i i Finn a som minimerer kvadratfeilen d G a r r M r' n M M M n n a0 a a M i Stkkevise transformer Forskjellige transformer for ulike deler av bildet Ofte bestemmes et kontrollgrid som strer hvordan de ulike delene skal endres Bilineær transformasjon benttes ofte: a a 0 +a +a +a 3 bestemmer b 0 +b +b +b 3 entdig den Hver firkants fire punkter bilineære transformen J ( d Ga ( d Ga d d + a G Ga a δj δaδ a G Ga G d 0 a ( G G G G d d 7 8
Morphing eknikk for å transformere et bilde til et annet i en trinnvis prosess Hvordan lages en gradvis overgang mellom to bilder? Ofte basert på stkkevise transformer Krever vanligvis spesifikasjon av kontrollpunkter Anvendelser: grafikk/film/spesialeffekter generere ansiktsuttrkk (f.eks. simulere munnbevegelser til tale Oppsummering Polnomtransformer for å mappe,-koordinatene Affine transformer Forlengs- og baklengsmapping Interpolasjonsmetoder for å bestemme gråtonene til den transformerte pikselen Nærmeste nabo-interpolasjon Bilineær interpolasjon Høere-ordens interpolasjoner Bruk av geometriske operasjoner til å samregistrere bilder Kontrollpunkter Løs ligningssett som minimerer kvadratfeil 9 30