Temaer i dag • • • • INF 2310 – Digital bildebehandling F l i 3 Forelesning Geometriske operasjoner Geometriske operasjoner Li Lineære / affine ffi transformer t f Resampling og interpolasjon S Samregistrering i t i av bilder bild • Pensum: P K Kap. 2 2.4.4 4 4 og 2.6.5 2 6 5 i DIP Fritz Albregtsen 02.02.2015 INF2310 1 02.02.2015 Geometriske operasjoner • Forstørre deler av bilder for visuell inspeksjon («zoome») • Rette opp geometriske feil som oppstår under avbildningen – – – – – • Første steg i denne prosessen: – Transformer pikselkoordinatene (x,y) til (x’,y’): x’ = Tx(x,y) y’ = Ty(x,y) Rotasjon i bildeplanet Fiskeøyelinse (Radar)avbildning av terreng Medisinsk ultralyd … • Samregistrere bilder – – – – – Tx og Ty er ofte gitt som polynomer polynomer. • Siden p pikselkoordinatene må være heltall,, må vi deretter bruke interpolasjon til å finne pikselverdien (gråtonen) i den d nye posisjonen. i j INF2310 2 Anvendelser • Endrer på pikslenes posisjoner 02.02.2015 INF2310 Samregistrere bilder fra ulike sensorer (CT, MR, US) Samregistrere S i t bild bilder tatt t tt på å ulike lik tidspunkt. tid kt Samregistrere bilder med kart i en bestemt kartprojeksjon. Eksempel: Ansiktsgjenkjenning: Finne alle ansiktene i et bilde, ”klipp” ut ansiktene transformer del-bildene ansiktene, del bildene slik at ansiktene i bildet blir på samme sted, har samme orientering og samme størrelse som i referansebildene. • Generere bilder fra andre kameravinkler • Spesialeffekter 3 02.02.2015 INF2310 4 Affine transformer ● Egenskaper ved affine transformer Transformerer pikselkoordinatene (x,y) (x y) til (x’,y’): (x’ y’): • Rette linjer bevares (se ukeoppgave) • Parallelle linjer forblir parallelle - bevarer b ikke ikk vinkler i kl eller ll avstander t d + bevarer lengdeforhold langs rette linjer • Utrykkes Ut kk ved d enkel k l matrisemultiplikasjon ti lti lik j x’ = Tx(x,y) y’ = Ty(x,y) ● Affine transformer beskrives ved: x’ = a0x + a1y + a2 yy’ = b0x + b1y + b2 ● • Eksempler på affine transformasjoner: – – – – – På matriseform: eller 02.02.2015 INF2310 5 • Høyrehånds koordinatsystem koordinatsystem, rotasjon positiv med urviseren: x’ = xcosθ - ysinθ; y’ = xsinθ + ycosθ • Venstrehånds koordinatsystem, y , rotasjon j positiv p med urviseren: x’ = xcosθ + ysinθ; y’ = -xsinθ + ycosθ θ P θ y’ 6 a0 a1 a2 b0 b1 b2 Uttrykk y Identitet 1 0 0 0 1 0 x’ = x y’ = y Skalering s1 0 0 0 s2 0 xx’ = s1x y’ = s2y Rotasjon cosθ -sinθ 0 sinθ cosθ 0 x’ =xcosθ-ysinθ y’’ =xsinθ+ycosθ i θ θ F x’ x INF2310 Transformasjon j x yy’ 02.02.2015 Eksempler på enkle transformer - I Litt om rotasjon … y Translasjon Rotasjon ”Shearing” Skalering K bi Kombinasjoner j av disse di (!) P F y x’ 02.02.2015 INF2310 7 02.02.2015 INF2310 8 Sammenslåing av affine transformer Eksempler på enkle transformer - II Transformasjon j a0 a1 a2 b0 b1 b2 Uttrykk y Translasjon 1 0 ∆x 0 1 ∆y x’ = x+∆x y’ = y+∆y Horisontal ”shear” shear med faktor s1 1 s1 0 0 1 0 xx’ = x+s1y y’ = y Vertikal ”shear” med d faktor f k s2 1 0 0 s2 1 0 x’ = x y’’ = s2x+y F (etc ) (etc.) 02.02.2015 INF2310 9 02.02.2015 Alternativ måte å finne t transformkoeffisientene f k ffi i t INF2310 10 Transformer med høyere ordens polynomer • En affin transform kan bestemmes ved å spesifisere tre punkter før og etter avbildningen ● Bilineære transformer beskrives ved: x’ = a0x + a1y + a2 + a3xy y’ = b0x + b1y + b2 + b3xy ● Kvadratiske transformer: x’ = a0x + a1y + a2 + a3xy + a4x2 + a5yy2 y’ = b0x + b1y + b2 + b3xy + b4x2 + b5yy2 resultat-bildet inn-bildet • Med disse tre p punktparene p kan vi finne de 6 koeffisientene;; a0, a1, a2, b0, b1, b2 • Med flere enn 3 punktpar velger man den transformasjonen som minimerer (kvadrat (kvadrat-)feilen )feilen summert over alle punktene (mer om dette senere) 02.02.2015 INF2310 ● 11 Polynomer av høyere orden gir muligheter for å k i korrigere for f mer «komplekse» k l k avbildningsfeil. bild i f il 02.02.2015 INF2310 12 Resampling Forlengs mapping Forlengs-mapping for all x',y' do g(x',y') = 0 a0 = cos θ a1 = -sin θ b0 = sin θ b1 = cos θ I illustrasjonen: H kun Har k sample/piksell / ik l verdier der linjene krysser Vil gjerne ha bildet samplet på et rektangulært grid -> resample Ikke glem at sammenhengen mellom romlig oppløsning og samplingsrate (samplingsteoremet) fortsatt gjelder! 02.02.2015 INF2310 13 for all x,y do x’’ = ro round(a nd(a0x+a +a1y)) y’ = round(b0x+b1y) if (x’,y’) inside g g(x’,y’) = f(x,y) end 02.02.2015 Forlengs mapping forts. Forlengs-mapping, forts Ikke alle utpiksler får verdi di (hullene (h ll i bildet) bild t) ● • Unødig beregning av pikselkoordinater som p allikevel ikke blir synlige (ender utenfor utbildet) • Samme utbilde-piksel utbilde piksel kan bli satt flere ganger INF2310 Flytter de posisjonstransformerte pikselposisjonene til nærmeste pikselposisjon i utbildet. Skriver innbildets f(x,y) inn i g(x’, y’) INF2310 14 Baklengs mapping Baklengs-mapping Problemer: 02.02.2015 Eksempel: Enkel rotasjon ved transformen: 15 a0 = cos (-θ) a1 = -sin (-θ) b0 = sin (-θ) b1 = cos (-θ) for alle x’,y’ do x = round(a d( 0x’+a ’ 1y’) ’) y = round(b0x’+b1y’) if (x,y) inside f g(x’,y’) = f(x,y) else g(x’,y’)=0 end 02.02.2015 Samme eksempel S k l som ved forlengs-mappingen. NB ((x,y)) rotert NB: ote t med θ ga (x’,y’) ( ’ ’) (x’,y’) rotert med -θ gir (x,y) Resample bildet. bildet Her; for hvert utbilde-piksel, invers-transformér, og velg verdien til nærmeste piksel fra innbildet. For hver pikselposisjon i ut ut-bildet: bildet: Hent pikselverdi fra innbildet. INF2310 16 Og så : INTERPOLASJON Baklengs mapping forts. Baklengs-mapping, forts GARANTI: Alle utpiksler p får verdi (ingen hull i ut-bildet). ● • Vi har utført den geometriske operasjonen ”baklengs baklengs mapping mapping”, som er en re-sampling re-sampling. • Ingen unødig beregning av pikselkoordinater som allikevel ikke blir synlige (ender utenfor utbildet). piksel i utbildet har vi valgt g pikselverdien p • For hvert p fra nærmeste piksel i innbildet, gitt transformen. • Ingen utbilde-piksel vil bli satt flere ganger. • Er E d dette det d beste b vii kan k få til? il? • Eller finnes det metoder som gir et bedre resultat? 02.02.2015 INF2310 17 02.02.2015 INF2310 Interpolasjon : H ilk intensitetsverdi Hvilken i t it t di skal k l pikselen ik l få? Bilineær interpolasjon p j -I • Anta at vi kjenner gråtoneverdien i fire nabo-punkter • Ønsker å estimere gråtonen i et mellomliggende punkt. • Gjør to lineære interpolasjoner i én retning først, f.eks i x-retning: Baklengs-mapping y y’’ x’ f ( x , y1 ) x og f ( x, y2 ) x 2 x f ( x , y ) x 2 x1 1 1 x 2 x f ( x , y ) x 2 x1 1 2 x x1 f ( x , y ) x 2 x1 2 1 x x1 f ( x , y ) x 2 x1 2 2 • Så é én iinterpolasjon t l j i ortogonal t l retning: t i f ( x, y ) Nullte-ordens Nullte ordens interpolasjon eller nærmeste nabo nabo-interpolasjon interpolasjon g(x’,y’) = f( round(x) , round(y) ) INF2310 y2 y f ( x, y ) 1 y 2 y1 y y1 f ( x , y ) 2 y 2 y1 y2 y y1 x1 x x2 • Resultatet er uavhengig av rekkefølgen. • Den interpolerte flaten er kvadratisk (krum) (krum), men lineær langs alle linjer som er parallelle med aksene. => Intensiteten til g(x’,y’) g(x ,y ) blir en av verdiene fra f 02.02.2015 18 19 02.02.2015 INF2310 20 Første-ordens interpolasjon/ bili bilineær interpolasjon i t l j Bilineær interpolasjon p j - II • Intensiteten blir en kombinasjon j av pikselverdiene p i de fire pikslene som omgir punktet g fra hver av disse vektes med avstanden • Bidragene • Interpolere i x- og y-intervallene mellom 0 og 1: • Bilineær interpolasjon når f er kjent i (0,0), (0,1), (1,0) og (1,1): f ( x , y ) 1 y f ( x ,0 ) y f ( x ,1) der f ( x ,0 ) (1 x ) f ( 0 , 0 ) x f (1,0 ) og f ( x ,1) (1 x ) f ( 0 ,1) x f (1,1) Praktisk algoritme: x0 = floor(x), y0 = floor(y) x1 = ceil(x), l( ) y1 = ceil(y) l( ) f ( x , y ) (1 x ) (1 y ) f ( 0 , 0 ) x (1 y ) f (1, 0 ) (1 x ) y f ( 0 ,1) x y f (1,1) Δx = x - x0 Δy = y - y0 p = f(x0,y0)+[f(x1,y0)-f(x0,y0)] Δx q = f(x0,y1)+[f(x1,y1)-f(x0,y1)] Δx f(x’,yy’))=p+(q-p)Δy f(x p+(q p)Δy • Eller i matrisenotasjon: f ( x , y ) (1 x ) f ( 0 ,0 ) x f (1,0 ) 02.02.2015 f ( 0 ,1) f (1,1) (1 y ) y INF2310 21 Bilinært eksempel, eksempel skulptur på Blindern 02.02.2015 INF2310 22 NN & bilineær interpolasjon, interpolasjon eksempel Jon Gundersen ”Velle” 1994 Utført i larvikitt, larvikitt På plassen foran Helga Engs hus ”Vannet fremhever steinens vridde form d den der d ligger li langs l Blindernaksen. li d k ( ll Uberg) (Ulla b ) 02.02.2015 INF2310 23 02.02.2015 INF2310 24 Trilineær interpolasjon p j Høyere ordens interpolasjon Høyere-ordens • Bi-kubisk Bi kubisk interpolasjon benytter et naboskap på 4x4 piksler • Utvidelsen fra 2D til 3D kalles trilineær interpolasjon, og er en lineær interpolasjon mellom resultatene av to bilineære interpolasjoner. interpolasjoner • IInterpolasjon t l j kan k sees på å som (kontinuerlig) (k ti li ) konvolusjon k l j med bestemte filtre. • Resultatet er igjen uavhengig av rekkefølgen. (1D-varianter av nærmeste nabo, lineær og kubisk interpolasjonskjerne) 02.02.2015 INF2310 25 Interpolasjonsfunksjoner i praksis 02.02.2015 INF2310 26 ”Kant Kant-glorie-effekter glorie effekter” / ”ringing” ringing ved kubisk interpolasjon • Nærmeste nabo: The image cannot be display ed. Your computer may not hav e enough memory to open the image, or the image may hav e been corrupted. Restart y our computer, and then open the file again. If the red x still appears, y ou may hav e to delete the image and then insert it again. – Taggete kanter og større totalfeil. – Hver ut-piksel har en verdi fra inn-bildet: • Ingen rekvantisering k er nødvendig: d d – en fordel hvis man vil bevare visse statistiske egenskaper i bildet (eller hvis bildet er segmentert i ulike klasser) • Bilineær interpolasjon og høyere-ordens interpolasjon: – er mer regnekrevende • Bi-kubisk interpolasjon: p j Negative lobe-verdier – gir skarpere bilder og har kontinuerlige deriverte – Men er (mye) mer regnekrevende enn bilineær interpolasjon, – og kan gi opphav til ”kant-glorie-effekter” 02.02.2015 INF2310 27 02.02.2015 INF2310 28 Bruk av geometriske transformer: S Samregistrering av b bilder ld Interpolasjon – en sammenligning • Nærmeste nabo gir 2D trappefunksjon, med diskontinuitet midt mellom punktene. • Bi-lineær interpolasjon b k 2x2=4 bruker 2 2 4 piksler. ik l Derivert er ikke kontinuerlig over flaten. flaten • Bi-kubisk interpolasjon gir glattere flater enn bilineær, men er mer regnekrevende; bruker 4x4=16 piksler. 02.02.2015 INF2310 Original Transformert Ønsket bilde å samregistrere med 29 02.02.2015 Samregistrering II • Ved flere kontrollpunkter enn nødvendig for å bestemme transformkoeffisientene, benyttes ofte kvadratfeilen som minimeringskriterium. • Hvis ikke, ikke brukes gjerne kontrollpunkter: – Kontrollpunkter kan plukkes ut manuelt • lett identifiserbare p punkter (landemerker) ( ) i begge gg bildene. – Affine transformer er unikt spesifisert med 3 punktpar • (bestemmer a0, a1, a2, b0, b1, b2) – Bi-lineære med 4 punktpar – Bi-kvadratiske med 6 punktpar – Bi-kubiske Bi kubiske med 16 punktpar punktpar, … • I praksis velges ofte mange flere punkter for å få en god d transformasjon f j (se ( neste side) id ) INF2310 30 Samregistrering III • Hvis bildenes kartkoordinater er kjent, j , benyttes de til å finne transformkoeffisientene. 02.02.2015 INF2310 • Gitt M kontrollpunkter (xi,yi),(xir,yir) («r» indikerer referansebildet) og anta mappingen (xi,yi) --> (x’i,y’i) • Polynomkoeffisientene settes til de som minimerer kvadratfeilen mellom kontrollpunktets sanne koordinater (xir,yir) og de transformerte koordinatene (xi’,yi’): • ”Enkel” lineæralgebra g benyttes y til å finne eksakt løsning. g 31 02.02.2015 INF2310 32 Kursorisk pensum Stykkevise transformer Samregistrering IV (Minimere kvadratfeilen) • Resampling:Forskjellige transformer for ulike deler av bildet d G a Vi er på jakt etter koeffisientene i denne avektoren G og a er her basert på en affin transform 02.02.2015 INF2310 Én enkelt matrise 33 Oppsummering • Transform/endring av pikslenes posisjoner (x-,y-koordinater) – Affine transformer p g • Resampling: – Forlengs- og baklengsmapping • Interpolasjonsmetoder for å bestemme gråtonene til de geometrisk transformerte pikslene: – Nærmeste nabo-interpolasjon – Bilineær interpolasjon – Høyere-ordens interpolasjoner • Bruk av geometriske operasjoner til å samregistrere bilder – Kontrollpunkter – Løs Lø liligningssett i tt som minimerer i i kvadratfeil k d tf il 02.02.2015 INF2310 35 • Ofte bestemmes et kontrollgrid som styrer hvordan de ulike delene skal endres • Bilineær transformasjon benyttes ofte: xx’ = a0xy + a1x + a2y + a3 y’ = b0xy + b1x + b2y + b3 Hver firkants fire hjørnepunkter bestemmer entydig den bilineære transformen 02.02.2015 INF2310 34
© Copyright 2024