Temaer i dag INF 310 Digital bildebehandling Forelesning 3 Geometriske operasjoner Fritz Albregtsen Geometriske operasjoner Lineære / aine transormer Resampling og interpolasjon Samregistrering i av bilder Pensum: Kap. 44.4.4 og.6.5 65iDIP 1 Geometriske operasjoner Endrer på pikslenes posisjoner Første steg i denne prosessen: Transormer pikselkoordinatene (, til (, : = T (, = T (, T og T er ote gitt som polnomer. Siden pikselkoordinatene må være heltall, må vi deretter bruke interpolasjon til å inne pikselverdien (gråtonen id den ne posisjonen. Anvendelser Forstørre deler av bilder or visuell inspeksjon («zoome» Rette opp geometriske eil som oppstår under avbildningen Rotasjon i bildeplanet Fiskeøelinse Radaravbildning av terreng Medisinsk ultrald Samregistrere bilder Samregistrere bilder ra ulike sensorer (CT, MR, US Samregistrere bilder tatt tt på ulike tidspunkt. Samregistrere bilder med kart i en bestemt kartprojeksjon. Eksempel: Ansiktsgjenkjenning: Finne alle ansiktene i et bilde, klipp ut ansiktene, transormer del-bildene slik at ansiktene i bildet blir på samme sted, har samme orientering og samme størrelse som i reeransebildene. Generere bilder ra andre kameravinkler Spesialeekter 3 4
Aine transormer Transormerer pikselkoordinatene (, til( (, : = T (, = T (, Aine transormer beskrives ved: På matriseorm: = a 0 + a 1 + a =b+b+b 0 b 1 + b eller Egenskaper ved aine transormer Rette linjer bevares (se ukeoppgave Parallelle linjer orblir parallelle Utrkkes ved enkel matrisemultiplikasjon lik Eksempler på aine transormasjoner: Translasjon Rotasjon Shearing Skalering Kombinasjoner av disse (! 5 6 Litt om rotasjon Hørehånds koordinatsstem, rotasjon positiv med urviseren: = cosθ - sinθ; = sinθ + cosθ Venstrehånds koordinatsstem, rotasjon positiv med urviseren: = cosθ + sinθ; = -sinθ + cosθ θ P 7 θ P Eksempler på enkle transormer - I Transormasjon a 0 a 1 a b 0 b 1 b Uttrkk Identitet 1 0 0 0 1 0 = = Skalering s 1 0 0 0 s 0 = s 1 = s Rotasjon cosθ -sinθ 0 sinθ cosθ 0 =cosθ-sinθ =sinθ+cosθ F F 8
Eksempler på enkle transormer - II Sammenslåing av aine transormer Transormasjon a 0 a 1 a b 0 b 1 b Uttrkk Translasjon 1 0 0 1 = + = + = Horisontal shear 1 s 0 0 1 0 +s 1 med aktor s 1 1 = Vertikal shear med daktor s 1 0 0 s 1 0 = = s + F (etc. 9 10 Alternativ måte å inne transormkoeisientene i i t En ain transorm kan bestemmes ved å spesiisere tre punkter ør og etter avbildningen Transormer med høere ordens polnomer Bilineære transormer beskrives ved: = a 0 + a 1 + a + a 3 = b 0 + b 1 + b + b 3 Kvadratiske transormer: = a 0 + a 1 + a + a 3 + a 4 + a 5 inn-bildet resultat-bildet Med disse tre punktparene p kan vi inne de 6 koeisientene; a 0, a 1, a, b 0, b 1, b Med lere enn 3 punktpar velger man den transormasjonen som minimerer (kvadrat-eilen summert over alle punktene (mer om dette senere 11 = b +b+b +b +b 0 1 + b 3 + b 4 5 Polnomer av høere orden gir muligheter or å korrigere or mer «komplekse» k avbildningseil. i 1
Resampling Forlengs-mapping or all ',' do g(',' = 0 a 0 = cos θ a 1 = -sin θ b 0 = sin θ b 1 =cosθ θ Eksempel: Enkel rotasjon ved transormen: I illustrasjonen: Har kun sample/piksel- l Vil gjerne ha bildet samplet verdier på et rektangulært grid der linjene krsser -> resample Ikke glem at sammenhengen mellom romlig oppløsning og samplingsrate (samplingsteoremet ortsatt gjelder! 13 or all, do = round(a 0 +a 1 = round(b 0 +b 1 i (, inside g g(, = (, end Fltter de posisjonstransormerte pikselposisjonene til nærmeste pikselposisjon i utbildet. Skriver innbildets (, inn i g(, 14 Forlengs-mapping, orts. Baklengs-mapping Problemer: Ikke alle utpiksler år verdi (hullene i bildet Unødig beregning av pikselkoordinater som allikevel ikke blir snlige (ender utenor utbildet Samme utbilde-piksel kan bli satt lere ganger a 0 = cos (-θ a 1 = -sin (-θ b 0 = sin (-θ b 1 = cos (-θ or alle, do = round(a 0 +a 1 = round(b 0 +b 1 i (, inside g(, = (, else g(, =0 end Samme eksempel som ved orlengs-mappingen. NB: (, rotert t med θ ga (, (, rotert med -θ gir (, Resample bildet. Her; or hvert utbilde-piksel, invers-transormér, og velg verdien til nærmeste piksel ra innbildet. For hver pikselposisjon i ut-bildet: Hent pikselverdi ra innbildet. 15 16
Baklengs-mapping, orts. Og så : INTERPOLASJON GARANTI: Alle utpiksler år verdi (ingen hull i ut-bildet. Ingen unødig beregning av pikselkoordinater som allikevel ikke blir snlige (ender utenor utbildet. Ingen utbilde-piksel vil bli satt lere ganger. Vi har utørt den geometriske operasjonen baklengs mapping, som er en re-sampling. For hvert piksel i utbildet har vi valgt pikselverdien ra nærmeste piksel i innbildet, gitt transormen. Er dette det beste vi kan å til? Eller innes det metoder som gir et bedre resultat? 17 18 Interpolasjon : Hvilken intensitetsverdi it t skal pikselen å? Bilineær interpolasjon - I Baklengs-mapping Nullte-ordens interpolasjon eller nærmeste nabo-interpolasjon g(, = ( round(, round( => Intensiteten til g(, g(, blir en av verdiene ra 19 Anta at vi kjenner gråtoneverdien i ire nabo-punkter Ønsker å estimere gråtonen i et mellomliggende punkt. Gjør to lineære interpolasjoner i én retning ørst,.eks i -retning: 1 (, 1 ( 1, 1 (, 1 1 1 og 1 (, ( 1, (, 1 Så én interpolasjon i ortogonal retning: 1, (, 1 (, ( 1 1 Resultatet er uavhengig av rekkeølgen. Den interpolerte laten er kvadratisk (krum, men lineær langs linjer parallelle med aksene. 1 1 1 0
Bilineær interpolasjon - II Bilineær interpolasjon når er kjent i (0,0, (0,1, (1,0 og (1,1: 1 (,0 (,1 (, der (,0 (1 (0,0 (1,0 og (,1 (1 (0,1 (1,1 (, (1 (1 (0,0 0 (1 (1,0 (1 (0,1 (1,1 1 Første-ordens interpolasjon/ bilineær interpolasjon Intensiteten blir en kombinasjon av pikselverdiene i de ire pikslene som omgir punktet Bidragene ra hver av disse vektes med avstanden Interpolere i - og -intervallene mellom 0 og 1: Praktisk algoritme: 0 = loor(, 0 = loor( 1 = ceil(, 1 = ceil( Eller i matrisenotasjon: (, (0,0 (0,1 (1 (1,0 (1,1 (1 1 Δ = - 0 Δ = - 0 p = ( 0, 0 +[( 1, 0 -( 0, 0 ] Δ q = ( 0, 1 +[( 1, 1 -( 0, 1 ] Δ ( (, =p+(q-pδ pδ Bilineær interpolasjon, eksempel Trilineær interpolasjon Utvidelsen ra D til 3D kalles trilineær interpolasjon, og er en lineær interpolasjon mellom resultatene av to bilineære interpolasjoner. Resultatet er igjen uavhengig av rekkeølgen. 3 4
Høere-ordens interpolasjon Bi-kubisk interpolasjon bentter et naboskap på 44 piksler Interpolasjon kan sees på som (kontinuerlig konvolusjon med bestemte iltre. Interpolasjonsunksjoner i praksis Nærmeste nabo: Taggete kanter og større totaleil. Hver ut-piksel har en verdi ra inn-bildet: Ingen rekvantisering er nødvendig: d en ordel hvis man vil bevare visse statistiske egenskaper i bildet (eller hvis bildet er segmentert i ulike klasser Bilineær interpolasjon og høere-ordens interpolasjon: er mer regnekrevende (1D-varianter av nærmeste nabo, lineær og kubisk interpolasjonskjerne Bi-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-eekter 5 6 Kant-glorie-eekter eekter / ringing ved kubisk interpolasjon Negative lobe-verdier 7 Interpolasjon en sammenligning Nærmeste nabo gir D trappeunksjon, med diskontinuitet midt mellom punktene. Bi-lineær interpolasjon bruker =4 piksler. Derivert er ikke kontinuerlig over laten. Bi-kubisk interpolasjon gir glattere later enn bilineær, men er mer regnekrevende; bruker 44=16 piksler. 8
Bruk av geometriske transormer: Samregistrering av bld bilder Original Ønsket bilde å samregistrere med Transormert 9 Samregistrering II Hvis bildenes kartkoordinater er kjent, benttes de til å inne transormkoeisientene. Hvis ikke, brukes gjerne kontrollpunkter: Kontrollpunkter kan plukkes ut manuelt lett identiiserbare punkter (landemerker i begge bildene. Aine transormer er unikt spesiisert med 3 punktpar (bestemmer a 0, a 1, a, b 0, b 1, b Bi-lineære med 4 punktpar Bi-kvadratiske med 6 punktpar Bi-kubiske med 16 punktpar, I praksis velges ote mange lere punkter or å å en god transormasjon (se neste side 30 Samregistrering III Kursorisk pensum Samregistrering IV (Minimere kvadrateilen Ved lere kontrollpunkter enn nødvendig or å bestemme transormkoeisientene, benttes ote kvadrateilen som minimeringskriterium. Gitt M kontrollpunkter ( i, i,( ir, ir («r» indikerer reeransebildet og anta mappingen ( i, i --> ( i, i Polnomkoeisientene settes til de som minimerer kvadrateilen mellom kontrollpunktets sanne koordinater ( ir, ir og de transormerte koordinatene ( i, i : G og a er her basert på en ain transorm d G a Vi er på jakt etter koeisientene i denne a- vektoren Enkel lineæralgebra benttes til å inne eksakt løsning. 31 Én enkelt matrise 3
Stkkevise transormer Resampling:Forskjellige transormer or ulike deler av bildet Ote bestemmes et kontrollgrid som strer hvordandeulikedeleneskalendres de delene endres Bilineær transormasjon benttes ote: =a 0 + a 1 +a +a 3 = b 0 + b 1 + b + b 3 Hver irkants ire hjørnepunkter bestemmer entdig den bilineære transormen 33 Oppsummering Transorm/endring av pikslenes posisjoner (-,-koordinater Aine transormer Resampling: Forlengs- og baklengsmapping Interpolasjonsmetoder or å bestemme gråtonene til de geometrisk transormerte pikslene: Nærmeste nabo-interpolasjon Bilineær interpolasjon Høere-ordens interpolasjoner Bruk av geometriske operasjoner til å samregistrere bilder Kontrollpunkter Løs ligningssett i som minimerer i kvadrateil 34