Geometrske operasjoner INF 23 27.2.27 Kap. 9 (samt 5.5.2) Geometrske operasjoner Affne transformer Interpolasjon Samregstrerng av blder Endrer på pkslenes possjoner ransformerer pkselkoordnatene (x,) tl (x, ): x x (x,) (x,) x og ofte gtt som polnomer erk: Her er det kke pkselverdene, men pksel-koordnatene x og som endres. 27.2.27 INF23 27.2.27 INF23 2 Anvendelser Rette opp geometrske fel som oppstår under avbldnngen Fskeøelnse Radaravbldnng av terreng... Samregstrere blder fra ulke sensorer eller blder tatt på ulke tdspunkt Eks ansktsgjenkjennng: Fnne ansktene et blde og transformere bldet slk at ansktene bldet blr på samme sted, orenterng og samme størrelse som referansebldene Samregstrere blder med kart en bestemt kartprojeksjon Generere blder fra andre kameravnkler Spesaleffekter 27.2.27 INF23 3 Fra Kap. 5: Forstørre/formnske blder Forstørre med faktor n: Kopere hvert pksel tl en blokk med n n pksler Formnske med faktor n: Plukke ut hvert n-te pksel (subsamplng) (Hva kan skje med tnne strukturer bldet?) La n pkselverd bestå av mddelverd av n n pksler La n pkselverd bestå av medan av n n pksler Hvordan kan v forstørre/formnske med en faktor som kke er et heltall? 27.2.27 INF23 4
Affne transformer ransformerer pkselkoordnatene (x,) tl (x, ): x x (x,) (x,) Egenskaper ved affne transformer Rette lnjer bevares Parallelle lnjer forblr parallelle Utrkkes ved enkel matrsemultplkasjon Affne transformer beskrves ved: x a x+a +a 2 b x+b +b 2 På matrseform: a a a2 ' b b b2 eller a ' b a a2 + b b2 Eksempler på affne transformasjoner: ranslasjon Rotasjon Shearng Skalerng Kombnasjoner av dsse 27.2.27 INF23 5 27.2.27 INF23 6 Eksempler på enkle transformer Alternatve måter å fnne transformkoeffsentene ransformasjon ranslasjon med Δx og Δ a a a 2 Δx b b b 2 Δ Uttrkk x x+δx +Δ En affn transform kan bestemmes ved å spesfsere tre punkter før og etter avbldnngen Skalerng med faktor s s s x sx s Rotasjon med θ Horsontal shear faktor s cosθ -snθ snθ cosθ s a ' b a a2 b b2 x cosθx-snθ snθ+ cosθ x x+s nn-bldet resultat-bldet ed dsse tre punktparene kan v fnne de 6 koeffsentene; a,a,a 2,b,b,b 2 ed flere enn 3 punktpar velger man den transformasjonen som mnmerer kvadratfelen summert over alle punktene (mer om dette senere) 27.2.27 INF23 7 27.2.27 INF23 8 2
Sammenslång av affne transformer ' transl. ' rot ' '' ' rot transl. '' ' transl. & rot '' ransformalgortmer prakss Eksempel: cosθ snθ snθ cosθ Hva om x og kke er heltall? Hva skjer når x og kommer utenfor bldet? Hvor stort skal resultatbldet være? Hva med skalerng -- hva om flere punkter mappes tl samme heltall etter transformasjonen? Kan v tllate at ne pkselverder blr ntrodusert? 27.2.27 INF23 9 27.2.27 INF23 Algortme: Forlengs-mappng Rotere et blde med dmensjon N: Lag ntt blde, g, med dmensjon N for all x, do g(x,) a cos θ b sn θ a -b b a for all x, do x round(a x+a ) round(b x+b ) f (x, ) nsde g then g(x, ) f(x,) end 27.2.27 INF23 Eksempel: Forlengs-mappng 27.2.27 INF23 2 Problemer: Hull appng beregnes for pksler utenfor bldet g Et output-pksel kan bl beregnet flere ganger (unødvendg) 3
Algortme: Baklengs-mappng Eksempel: Baklengs-mappng Rotasjon av nputbldet f med dmensjon N: Lag ntt blde, g, med dmensjon N a cos θ a sn θ b -a b a for alle x, do x round(a x +a ) round(b x +b ) f (x,) nsde f then g(x, ) f(x,) else g(x, ) Husk: Hvs (x,) roteres med θ og gr (x, ), tlsvarer det at hvs (x, ) roteres med -θ får v (x,) end 27.2.27 INF23 3 27.2.27 INF23 4 x Interpolasjon - hvlken gråtoneverd skal pkselen få? Baklengs-mappng Nullte-ordens nterpolasjon eller nærmeste nabo-nterpolasjon g(x, ) f( round(x), round() ) x Første-ordens nterpolasjon/ blneær nterpolasjon Intensteten tl g blr en kombnasjon av pkselverdene de fre pkslene som omgr punktet Bdragene fra hver av dsse vektes med avstanden Algortme: Δx x -x Δ - p f(x, )+[f(x, )-f(x, )] Δx q f(x, )+[f(x, )-f(x, )] Δx f(x, )p+(q-p)δ Intensteten tl g blr en av verdene tl f 27.2.27 INF23 5 27.2.27 INF23 6 4
Høere-ordens nterpolasjon Kubsk nterpolasjon: Naboskap på 4 4 pksler brukes Interpolasjon kan ses på som (kontnuerlg) konvolusjon med bestemte fltre Vurderng av nterpolasjonsfunksjoner Nærmeste nabo: aggete kanter og større totalfel. Hver ut-pksel har en verd fra nn-bldet: Fordel hvs man vl bevare statstske egenskaper for bldet (eller hvs bldet er segmenert ulke klasser) Blneær nterpolasjon og høere-ordens nterpolasjon er mer regnekrevende (D-varanter av nærmeste nabo, lneær og kubsk nterpolasjonskjerne) 27.2.27 INF23 7 Kubsk nterpolasjon gr skarpere blder og har kontnuerlge derverte, men er (me) mer regnekrevende enn blneær nterpolasjon, og kan g opphav tl kant-glore-effekter 27.2.27 INF23 8 Kant-glore-effekter / rngng ved kubsk nterpolasjon Bruk av geometrske transformer: Samregstrerng av blder Orgnal ransformert Negatve lobe-verder Ønsket blde å samregstrere med 27.2.27 INF23 9 27.2.27 INF23 2 5
' Samregstrerng II Hvs bldenes kartkoordnater er kjent, brukes dsse (evt. må man transformere tl felles kartprojeksjon) Hvs bldenes kartkoordnater kke er kjent, brukes gjerne kontrollpunkter: Kontrollpunkter plukkes ut manuelt - lett dentfserbare punkter (landemerker) begge bldene Affne transformer er eksakt spesfsert med 3 punktpar (bestemmer a,a,a 2,b,b,b 2 eksakt) Kvadratske transformer er eksakt spesfsert med 6 punkter Ofte mange flere punkter for å få en god transformasjon Samregstrerng III Kvadratfelen brukes tl å vurdere hvor god en samregstrerng er Gtt kontrollpunkter (x, ),(x r, r ) ( r er referansebldet) (x, ) --> (x, ) >>3 for affne transformer og >>6 for kvadratske Polnomkoeffsentene bestemmes som de som passer best mht. kontrollpunktene, dvs. de som mnmerer kvadratfelen mellom kontrollpunktets sanne koordnater (x r, r ) og de transformerte koordnatene (x, ) J r ( x ' x ) + ( ' ) Enkel lneæralgebra benttes tl å fnne eksakte løsnnger på lgnngen over 2 27.2.27 INF23 2 27.2.27 INF23 22 Samregstrerng IV (nmere kvadratfelen) J ( x ' x ) + ( ' ) Jx + J d G a r x r x2 r xn x x2 2 xn n a a a2 Jx Kursorsk pensum ( x ' x ) Stkkevse transformer Forskjellge transformer for ulke deler av bldet Ofte bestemmes et kontrollgrd som strer hvordan de ulke delene skal endres Blneær transformasjon brukes ofte: x a x+a x+a 2 +a 3 b x+b x+b 2 +b 3 Hver frkants fre punkter bestemmer entdg den blneære transformen Jx ( d Ga) ( d Ga) d d + a G Ga 2a G d δj 2G Ga 2G d δa x a ( G G) G d 27.2.27 INF23 23 27.2.27 INF23 24 6
orphng eknkk for å transformere et blde tl et annet en trnnvs prosess Hvordan lages en gradvs overgang mellom to blder? Basert på stkkevs warpng Krever vanlgvs spesfkasjon av kontrollpunkter Anvendelser: grafkk/flm/spesaleffekter generere ansktsuttrkk (f.eks. smulere munnbevegelser tl tale) Oppsummerng Polnomtransformer for å mappe x,-koordnatene Affne transformer Forlengs- og baklengsmappng Interpolasjonsmetoder for å bestemme gråtonene tl den transformerte pkselen Nærmeste nabo-nterpolasjon Blneær nterpolasjon Kubsk nterpolasjon Bruk av geometrske operasjoner tl å samregstrere blder Kontrollpunkter 27.2.27 INF23 25 27.2.27 INF23 26 7