Avancerad Bildbehandling Stitching av bilder

Relevanta dokument
Ansiktsigenkänning med MATLAB

Laboration 4: Digitala bilder

Fingerprint Matching

TANA17 Matematiska beräkningar med Matlab

Institutionen för matematik och datavetenskap Karlstads universitet. GeoGebra. ett digitalt verktyg för framtidens matematikundervisning

Bildförbättring i spatial domänen (kap. 3) Bildförbättring (enhancement) Spatial domän. Operatorer. Tröskling (threshold) Gråskale-transformationer

Övervakningssystem. -skillnader i bilder. Uppsala Universitet Signaler och System ht Lärare: Mathias Johansson

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

Linjära ekvationssystem

Lösning till fråga 5 kappa-06

MATLAB Laboration problem med lokala extremvärden

MMA127 Differential och integralkalkyl II

Linjära ekvationssystem

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 2 november 2015 Sida 1 / 23

Geometriska transformationer

Bildbehandling, del 1

Funktionsstudier med derivata

TEM Projekt Transformmetoder

TAIU07 Matematiska beräkningar med Matlab

Studio 6: Dubbelintegral.

Frågorna 1 till 6 ska svaras med ett kryss för varje korrekt påstående. Varje uppgift ger 1 poäng. Använd bifogat formulär för dessa 6 frågor.

MATEMATIK GU. LLMA60 MATEMATIK FÖR LÄRARE, GYMNASIET Analys, ht Block 5, översikt

Bildanalys. Segmentering. Föreläsning 7. Split and Merge. Region Growing

Bildbehandling i frekvensdomänen

Flervariabelanalys E2, Vecka 3 Ht08

Bildregistrering Geometrisk anpassning av bilder

Transformationer i R 2 och R 3

5 Lokala och globala extremvärden

Obligatoriska uppgifter i MATLAB

5 Linjär algebra. 5.1 Addition av matriser 5 LINJÄR ALGEBRA

Emma Hallstan Emmha584

Institutionen för Matematik, KTH Torbjörn Kolsrud

7 Olika faltningkärnor. Omsampling. 2D Sampling.

Bildmosaik. Bilddatabaser, TNM025. Anna Flisberg Linne a Mellblom. linme882. Linko pings Universitet

Sätt t = (x 1) 2 + y 2 + 2(x 1). Då är f(x, y) = log(t + 1) = t 1 2 t t3 + O(t 4 ) 1 2 (x 1) 2 + y 2 + 2(x 1) ) 2 (x 1) 2 + y 2 + 2(x 1) ) 3

Robotarm och algebra

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26

Flervariabelanalys och Matlab Kapitel 3

UPPSALA UNIVERSITET Matematiska institutionen Michael Melgaard. Prov i matematik Prog: Datakand., Frist. kurser Derivator o integraler 1MA014

7x 2 5x + 6 c.) lim x 15 8x + 3x Bestäm eventuella extrempunkter, inflexionspunkter samt horizontella och vertikala asymptoter

15 februari 2016 Sida 1 / 32

SF1669 Matematisk och numerisk analys II Lösningsförslag till tentamen DEL A. r cos t + (r cos t) 2 + (r sin t) 2) rdrdt.

Vinjetter TDDC91 Datastrukturer och algoritmer

Optimeringsproblem. 1 Inledning. 2 Optimering utan bivillkor. CTH/GU STUDIO 6 TMV036c /2015 Matematiska vetenskaper

Programmering för avläsning och avkodning av QR-koder i MATLAB

Laboration 1. Grafisk teknik (TNM059) Introduktion till Matlab. R. Lenz och S. Gooran (VT2007)

Interpolation Modellfunktioner som satisfierar givna punkter

Tentamen, Programmeringsteknik för BME, F och N

Mer om analytisk geometri

Originalbild Dilation Erosion Slutning Öppning R esultat av morfolo giska op er ationer til l upp gift 6(b). 2

Flervariabelanlys och Matlab Kapitel 3

Grafisk Teknik. Rastrering. Övningar med lösningar/svar. Sasan Gooran (HT 2013)

Modul 4 Tillämpningar av derivata

TMV166 Linjär algebra för M. Datorlaboration 2: Matrisalgebra och en mekanisk tillämpning

1. Bestäm definitionsmängden och värdemängden till funktionen f(x,y) = 1 2x 2 3y 2. Skissera definitionsmängden, nivålinjerna och grafen till f.

SF1669 Matematisk och numerisk analys II Lösningsförslag till tentamen DEL A

Ett enkelt OCR-system

6 Derivata och grafer

Numerisk lösning till den tidsberoende Schrödingerekvationen.

2x 2 3x 2 4x 2 5x 2. lim. Lösning. Detta är ett gränsvärde av typen

7 Extremvärden med bivillkor, obegränsade områden

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB

SF1625 Envariabelanalys

Programmeringsuppgift Game of Life

Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration

7 MÖNSTERDETEKTERING

Tentamen i tmv036c och tmv035c, Analys och linjär algebra C för K, Kf och Bt A =, = det(a λi) = e 2t + c 2. x(t) = c 1. = c 1.

Inledning. Kapitel Bakgrund. 1.2 Syfte

Tentamen Bildanalys (TDBC30) 5p

Tentamen i TATA43 Flervariabelanalys

Tekniska Högskolan i Linköping Institutionen för Datavetenskap (IDA) Torbjörn Jonsson Plot och rekursion

Polygoner. Trianglar på tre sätt

UPG5 och UPG8 Miniprojekt 1: 2D datorgrafik

Medicinska Bilder, TSBB31. Lab: Mätvärden på Medicinska Bilder

Tentamen i Analys B för KB/TB (TATA09/TEN1) kl 08 13

3 Man kan derivera i Matlab genom att approximera derivator med differenskvoter. Funktionen cosinus deriveras för x-värdena på följande sätt.

Banach-Tarskis paradox

SF1626 Flervariabelanalys Lösningsförslag till tentamen DEL A. 1. En svängningsrörelse beskrivs av

SF1625 Envariabelanalys Lösningsförslag till tentamen DEL A

TNM030 Tentasammanfattning (frågor) Nathalie Ek, Sammanfattning. TNM030 - Bildbehandling och bildanalys

Gemensamt projekt: Matematik, Beräkningsvetenskap, Elektromagnetism. Inledning. Fysikalisk bakgrund

1. Beräkna och klassificera alla kritiska punkter till funktionen f(x, y) = 6xy 2 2x 3 3y 4 2. Antag att temperaturen T i en punkt (x, y, z) ges av

Facit till Signal- och bildbehandling TSBB

x sin(x 2 )dx I 1 = x arctan xdx I 2 = x (x + 1)(x 2 2x + 1) dx

Tentamen i Linjär algebra (TATA31/TEN1) , 8 13.

Histogram över kanter i bilder

Matematisk modellering fortsättningskurs Visuell variation

Högskolan i Skövde (SK, JS) Svensk version Tentamen i matematik Lösningsförslag till del I

Moment 5.5 Övningsuppgifter I 5.60a. 5.60b, 5.60.c, 61

1. Vi skriver upp ekvationssystemet i matrisform och gausseliminerar tills vi når trappstegsform,

Dilation Erosion. Slutning. Öppning

Fönsterbeteende. Mike McBride Jost Schenck Översättare: Stefan Asserhäll

av envariabelfunktionen g(t) och flervariabelfunktionen t = h(x, y) = x 2 + e y.)

Digitala bilder. Matris, pixel, pixeldjup, signal, brus, kontrast

FFM234, Klassisk fysik och vektorfält - Föreläsningsanteckningar

Föreläsning 5. Approximationsteori

SF1646 Analys i flera variabler Tentamen 18 augusti 2011, Svar och lösningsförslag

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 20

Signal- och Bildbehandling FÖRELÄSNING 7. En bild är en 2D signal. För en digital bild gäller. Fig. 2.1

Figur 1: Postföretagets rektangulära låda, definitioner.

Transkript:

Linköping Universitet, Campus Norrköping Itn/TNM034 HT1/2009 Avancerad Bildbehandling Stitching av bilder Stefan Olausson: steol272@student.liu.se Fredrik Lundell: frelu@student.liu.se Martin Sturk: marst496@student.liu.se Jonathan Melchert: jonme610@student.liu.se

SAMMANFATTNING I kursen TNM034, avancerad bildbehandling och bildanalys, fick vi till att uppgift att skapa ett program för att stitcha bilder. D.v.s. ta en eller flera bilder tagna från en panoramascen och sätta ihop dessa helt automatiserat. Första steget i detta är att hitta distinkta punkter i bilderna, som sedan kan användas för att matcha in rätt områden mot varandra. För att hitta dessa punkter deriveras bilden i x- och y-led. Detta sker genom att bilden faltas med ett Sobelfilter för varje riktning. På detta sätt hittas extremvärden i bilden där intensitetsskillnader är stora. Harris hörndetektion används sedan för hitta hörnpunkter i bilden, vilka är bra att matcha mot. För att begränsa antalet punkter som hittas används dilation. För att matcha punkterna i de två olika bilderna mot varandra används normaliserad korrelation. Detta sker ungefär som en faltning över ena bilden med ett område ur den andra. Där området överensstämmer ges ett maximum. Informationen om vart alla punkterna överensstämmer lagras i en matchningsvektor. För att kompensera om bilden är skalad, roterad eller translaterad används en så kallad similarity-transform. Beroende på om bilderna som ska matchas har olika storlek, eller har blivit transformerade för att kompensera för några avvikande egenskaper, behöver bilden sedan beskäras. Detta görs genom att programmet letar upp alla utfyllnadsfärger som har tillkommit i bilden och tar bort dem. För att kompensera för olika färgintensitetsvärden mellan bilderna används en färgmatchningsfunktion. Funktionen gör en medelvärdesbildning över det överlappande området mellan bilderna, och får på så sätt fram hur mycket varje separat kanals intensitet behöver höjas eller sänkas. Allt detta har utförts för två bilder. Vill man sätta ihop tre bilder går det också bra. Då utförs operationerna på bild ett och två, och deras resultat genomgår sedan operationerna tillsammans med bild tre. Skulle programmet få bilderna i fel ordning kontrolleras detta först med en extra korrelation. Hittas inga matchande punkter utförs första omgången med bild ett och tre istället. Resultatet används därefter med bild två. Det resulterande programmet har provats framgångsrikt på bilder med olika rotation, skalning, brusinnehåll, intensitetsskillnader. Problem uppstår vid för stor rotation, då korrelation inte fungerar för stora rotationer.

INNEHÅLLSFÖRTECKNING Inledning... 1 Genomförande... 2 Harris Hörndetektion... 2 Punktmatchning... 4 Transformation för rotation, skalning och translation... 5 Hoppsättning av tre bilder... 6 Beskärning... 6 Ljusutjämning och färgutjämning... 8 Jämförelse med andra metoder... 8 Resultat och analys... 10 Resultat... 10 Analys och slutsatser... 10

INLEDNING I kursen TNM034 har vi fått i uppgift att skapa ett verktyg för att sammanföra bilder. Utifrån två, eller tre, bilder med gemensamma element ska en enda bild skapas. Oberoende av rotation, vitbalans och translation ska bilderna föras samman, och den största möjliga gemensamma ytan ska generera en slutgiltig bild. För att möjliggöra detta ska vi granska vetenskapliga artiklar, och utifrån dessa skriva ett eget program i MATLAB. Bilderna kan vara tagna under helt olika förutsättningar och förhållanden. Vi kommer därför utgå från att vi har ytterst lite kunskap om bilderna, och operationerna ska utföras automatiskt utan vår påverkan i realtid.

GENOMFÖRANDE För att sätta ihop flera bilder av samma motiv till en panoramabild, krävs det att det finns distinkta punkter i varje bild som utmärker bildens egenskaper. Dessa punkter behövs för att kunna avgöra om bilderna har liknande karaktär, vilket är avgörande information om hur bilderna skall sitta ihop. För att hitta distinkta punkter i bildmaterialet behövs information om hur pixelvärden ändras i bilden. Genom att numeriskt approximera bildens derivata i x- och y -led får vi intensitetsförändring i respektive led. Numerisk approximation av derivata kan härledas ur taylorutveckling, som leder till utrycket i ekvation 1: f x+ f(x ) 2 = f x + O( 2 ) (1) Approximation av derivata är skillnaden mellan pixelvärden, vilket kan utryckas i en sobelkärna som faltas med bilden i respektive riktning. Sobelkärnorna visas i ekvation 2. G x = 1 0 1 2 0 2 1 0 1 G y = 1 2 1 0 0 0 1 2 1 (2) Hög magnitud i de faltade bilderna ger information om vart objekt står ut mot dess bakgrund. Extrempunkter längs horisontella och vertikala linjer ger inte unik information om vart på linjen en matchning skall göras. Därför behövs en ytterligare metod för att hitta distinkta kantpunkter att jämföra mot. HARRIS HÖRNDETEKTION Kantpunkter har egenskapen att ha en stor variation i intensitet i flera riktningar. Dessa punkter kan hittas med hjälp av harrismetoden, som matematiskt kan avgöra om egenskapen gäller. D x, y = u v w u, v (I u, v I u + x, v + y ) 2 (3) I ekvation (3) används en delbild I(u,v), och en intensitets skiftad delbild I(u+x,v+y). Mellan delbilderna beräknas skillnaden i kvadrat, som sedan viktas med ett gaussfönster för att ta fram kanter ytterligare. Genom att gå i både x- och y-riktning kollar algoritmen intensitetsskillnader. Stora intensitetsskillnader i både x- och y- riktning är utmärkande för kantpunkter, och kommer genera stora värden i D(x,y), medan små förändringar ger värden nära noll. För att kunna använda ekvation (3) i praktiken approximeras I(u+x,v+y) med en tvådimensionell Taylorutveckling. I u + x, v + y I u, v + I x u, v x + I y u, v y (4) D x, y u v w u, v (I x u, v + I y u, v y) 2 (5) Genom att utveckla ekvation (5) kan den skrivas om på matrisform, där värdena i matrisen består av andraderivatorna i respektive riktning enligt ekvation 6. A w u, v I xx I xy (6) I xy I yy Matrisen i A kallas för Hessian, och används för att lösa optimeringsproblem i många sammanhang. En variant av Hessianmatrisen är Harrismatrisen, som även har en term för att tröskla bort svagare punkter som visas i ekvation 7.

H = det I xx I xy k (I xx + I yy ) 2 (7) I xy I yy Med hjälp av andraderivatorna beräknas ekvation 7 i MATLAB. Resultatet av Harrismetoden visas i figur 1 där de distinka punkterna är markerade med ett rött kors. Figur 1 Distinkta kantpunkter med harrismetod Harris detektion ger information om vart det finns distinkta punkter. Mycket detaljerade objekt i bilden ger många fler punkter än vad som behövs för att göra matchning i det området. Detta kan öka beräkningstiden avsevärt, därför måste en viss reduktion av punkter göras. För att reducera antal maxpunkter används den morfologiska operatorn dilation. Genom att låta en kärna med bestämd radie gå över varje punkt i bilden så kommer alla värden som befinner sig inom kärnan att sättas till värdet som är störst inom kärnan. Den enda pixeln som inte har ändrats inom radien är då det verkliga maxvärdet inom området. Närliggande punkter raderas, och genom att variera storleken på kärnan bestäms hur nära punkter får vara varandra. Funktionen ordfilt2() i MATLAB skapar denna kärna som används för att utföra dilation.

Figur 2 Reducering av distinkta punkter PUNKTMATCHNING Nästa steg är att matcha distinkta punkter mellan två bilder för att se om de hör ihop. Matchningen görs med korrelation, metoden visas i ekvation 8. f x, y x, y = 1 MN m n f x, y (x + m, x + n) (8) Korrelation fungerar som en faltning, fast med en komplexkonjugerad kärna. Genom att ta ut en delbild f, och falta med en bild h, erhålls ett max där delbilden matchar bäst. Problem uppstår om intensitetsfördelning skiljer sig mycket mellan bilderna. För att lösa detta normaliseras båda bilderna genom att subtrahera med medelintensiteten, och dela med standardavvikelsen. Denna metod kallas normaliserad auto-korrelation, och bilderna normaliseras enligt ekvation (9). Men hjälp av ekvation 9 blir matchningen robust mot bilder tagna i olika belysningar. För att matcha punkter med varandra hämtas ett område runt varje distinkt punkt i ena bilden, områdena korreleras sedan med den andra bilden. Ger korrelationen ett max på samma koordinat som en distinkt punkt i den andra bilden, sparas detta som en match. Algoritmen går igenom samtliga distinkta punkter och lagrar matcherna i en ny vektor. I figur 3 visas två bilder matchade med vandra. Linjerna visar de matchande punkternas relation till varandra. (9)

Figur 3 Matchande punkter För att få information om hur bild 2 skall flyttas över bild 1 beräknas x och y mellan alla par av matchande punkter visat i ekvation 10. matcvektor = x 1 y 1 x 2 y 2 x i1 y i1 x i2 y i2 (10) x = x 1 x 2 (11) y = y 1 y 2 Vidare förutsätter metoden att x och y är snarlika mellan alla par av matchpunkter till två bilder. Matchning med korrelation ger ibland matcher som avviker så mycket att de kommer förstöra i transformfasen. Sådana matcher är inte önskade och tröskas därför bort ur matchvektorn. Notera att om bilderna varken är roterade eller skalade kommer x och y samma värden för alla matchpunkter. TRANSFORMATION FÖR ROTATION, SKALNING OCH TRANSLATION Om bild 2 är roterad eller skalade relativt bild 1 kommer x och y att avvika mellan matchpunkterna. Bilderna kan då inte sättas ihop på ett bra sätt, och därför måste den andra bilden transformeras så den matcher bild 1 i skalning och rotation. Linjära transformationer kan skrivas som matriser, vilket lätt kan appliceras på digitala bilder. För att kunna tranformera bild 2 rätt måste en avbildningsmatris skapas som beskriver skillnaden mellan matchpunkternas förhållande. MATLAB funktionen cp2tform() skapar avbildningsmatrisen utifrån matchpunkterna i ekvation 10. Transformation som används är en similarity-transform, som visas i ekvation 11. x y 1 = a b t x b a t y 0 0 0 x y 1 (12) Similarity-transformen kan både skala, rotera och translatera bilden till ett förhållande som är rätt med bild 1. Matrisen i ekvation 12 är uppbyggd av fyra stycken parametrar; translation i x- och y-led, vinkel samt skalning, visad i ekvation 13. a = s cos b = s sin (13)

Funktionen cp2tfrom() löser samtliga fyra parametrar som kan användas med funktionen imtransform(). Funktionen bestämmer varje pixels nya position i den translaterade bilden. Intensiteten till varje pixel intepoleras sedan med en bilinjär interpoleringsfunktion från original bilden. Figur 4 Transformerade bilder Om bilden inte behöver roteras eller skalas för att på ett bra sätt matcha den andra bilden utförs inte denna transformering, istället beräknas ett medvärde av x och y för samtliga matchvektorer. Resultatet blir translationen i x och y-led som bild 2 skall förflyttas i bild 1. Har bilden tranformerats på något sätt behöver algoritmen skapa nya matchvektorer utifrån bildens nya orientering. Detta görs genom att korrelera de distinkta punkterna igen och kolla så att x och y mellan matchvektorerna är lika. Då beräknas translationen på nytt och translaterar sedan bilden rätt. HOPSÄTTNING AV TRE BILDER Ifall tre bilder ska sammansättas anropas föregående tekniker en extra gång. Skillnaden är att resultatet ifrån första genomgången jämförs mot den tredje bilden. Problem uppstår dock ifall man i första genomgången korrelerar två bilder som inte har gemensamma punkter. Därför utförs först en kontroll att de två första bilderna korrelerar. Gör de inte det, då utförs istället den första genomgången på första bilden och den tredje. Resultatet genomgår därefter operationerna en gång till, men med den andra bilden som jämförelsebild. BESKÄRNING I programmet utförs två olika typer av beskärning. Efter transformen, samt i slutet för att få en fyrkantig bild. När bilden transformeras kommer dimensionerna på bildmatrisen att ändras. En matris måste alltid ha samma antal rader och kolumner, så de celler i matrisen som bara är till för att få samma antal rader eller kolumner kommer fyllas med en bestämd färg. Det är alltid bilden till höger som transformeras. Detta innebär att ifall matrisen fylls ut med värden i det område som överlappar den andra bilden, då kommer det uppstå områden i den sammansatta bilden som enbart är en utfyllnadsfärg, enligt figur 5.

Figur 5 Innan beskärning Därför beskärs bilden och de områdena tas bort. Genom att beräkna hur stora områden på sidorna av bilden är kan rätt mängd tas bort. Strålar skjuts ut både vertikalt och horisontellt utifrån bildens fyra hörn. Så fort de träffar en pixel som tillhör bilden, och inte utfyllnaden, så bryts strålen. Om strålen når motsatta hörn, vilket innebär att hela raden består av utfyllnadsfärg, så tas hela raden bort. Sedan beräknas avstånden på strålarna, och den triangel av utfyllnadsfärg som dominerar varje sida bestäms. Utgå från vänster kant. Om den vertikala stråle som utgår från det nedre vänstra hörnet, är längre än strålen från det övre vänstra hörnet, då ska bilden beskäras lika mycket som det nedre vänstra hörnets horisontella linje. På så vis erhålls den optimala beskärningen, enligt figur 6. Figur 6 - BL_Col är större än TL_Col, alltså kommer bilden beskäras enligt BL_Row. Samma princip utnyttjas vid den slutgiltiga beskärningen, när bilderna är hopsatta. Om de båda bilderna inte haft samma höjd kommer bilden behöva beskäras i höjd, enligt figur 7.

Figur 7 Innan den slutgiltiga beskärningen Dock behöver ingen rotation tas till hänsyn, så inga trianglar behöver beräknas. Istället utgår en sökare från varje sida på bilden. Den söker igenom den aktuella horisontella raden. Stöter den på en pixel av utfyllnadsfärg, då tas den raden bort. Detta utförs för alla sidor, tills sökaren inte hittar någon utfyllnadsfärg. Den slutgiltiga bilden är då framtagen, se resultat. LJUSUTJÄMNING OCH FÄRGUTJÄMNING För att korrigera för vissa färg och intensitetsskillnader i bilderna skapas en funktion som utifrån två bilder och tillhörande matchpunkter beräknar skalfaktorer för att utjämna skillnaden mellan de olika bilderna. Detta görs genom att först beräkna det överlappande området mellan bilderna och sen medelvärdesbilda i varje kanal separat. Resultatet multipliceras med varje kanal i bilden som ska korrigeras. A rgb = 1 MN N M im 1 i.j j im 2 i,j i (13) För att få ett så bra resultat som möjligt maximeras det överlappande området mellan bilderna. För att bestämma området görs följande; Punkten som ligger längst till vänster i den vänstra bilden plockas ut och tar sedan området från den punkten ut till högra kanten. Detta område kommer alltid finnas i båda bilder och vara det största. Sedan kollar algoritmen om bilderna har olika höjd och justerar då för detta i området för att förhindra att felaktig information kommer med i själv medelvärdesberäkningen. Resultatet av detta är tre skalfaktorer, en för varje kanal, som sedan multiplicerar kanalvis på bilden som ska färgjusteras. JÄMFÖRELSE MED ANDRA METODER Vid matchning av distinkta bildpunkter finns det flera metoder som går att använda. Normaliserad autokorrelation får svårt att hitta matchande punkter vid kraftig skalning och rotationer och det finns andra metoder som är bättre. Ett annat koncept för matchning är SIFT, eller scale-invariant feature transform, som enligt namnet klarar av att finna säregna drag i en bild väldigt bra trots skalning och rotation. Istället för att använda sig av pixelvärden skapas deskriptorer, som beskriver drag i bilden som är distinkta och därav beskriver bilden bra. SIFT metoden är också robust mot ljusskillnader, brus och små perspektivsändringar.

SIFT metodens första steg är att finna distinkta punkter i bilden. Bilden filteras med ett gauss-filter med olika sigma värden, och differensen mellan dem räknas ut och en skillnadsbild, Difference of Gaussians (DoG), fås som resultat. Sedan samplas bilden ner i skala och utsätts för samma procedurer igen. Antal nersamplingar styr hur skalinvarianta de distinkta punkterna kommer att bli. Ur dessa skillnadsbilder tas alla maximum och minimum punkter som existerar i de olika skalnivåerna. Utav dessa punkter finns det många som är instabila och har bl.a. dålig konstrast vilket resulterar i känslighet för brus. För att utesluta dåliga distinkta punkter används samma metod som i projektet för att behålla punkter med höga intensitetsskillnader i båda riktingarna. Till de distinkta punkter som är kvar beräknas en riktning och en orientering, och denna information om varje punkt sparas i en 4x4x8 matris som används senare vid matchning. I början av projektet gjordes ett försök att använda SIFT för att matcha bilder, dock upptäcktes det att metoden var för svår och tidsramen för projektet kunde inte hållas. Därför byttes det till matchning via korrelation. Andra metoder som liknar SIFT är SURF (Speeded Up Robust Features), GLOH och PCA-SIFT.

Resultat och analys RESULTAT Det slutgiltiga programmet har provats med framgångsrikt resultat på bilder med följande egenskaper mellan dem: samma bildhöjd, olika bildhöjd, olika tonomfång, olika brusinnehåll, olika orientering och olika vitbalans. Figur 8 Resultat bild 1 Figur 9 Resultat bild 2 ANALYS OCH SLUTSATSER Programmet klarar att kompensera för små förändringar i orientering. I vissa bilder med bra matchande punkter klarar den större förändringar och i vissa andra klarar den lite mindre. När det gäller olika tonomfång i bilderna har programmet också klarat detta bra. Testbilderna som vi fick i projektets början har färgkorrigerats korrekt men har fått avvikande resultat vid vissa tillfällen när vi gjort egna förändringar i bilder med bildbehandlingsprogram. Bilder som är detaljrika och roterade har en tendens att ge ett felaktigt färgmatchningsresultat. Detta tror vi beror på att interpolationsmetoden som används när bilder roteras ger

distorsion, som sedan ger felaktiga värden när bilden färgmatchas. Beroende på vilken interpolationsmetod som används kan vi se olika resultat på färgmatchningen även om området som bilderna matchas mellan aldrig ändras orienteringsmässigt. Translationen borde ha kunnat göras direkt med värdena från parameterlösningen i ekvation 12. Vi lyckades dock inte använda dessa värden då funktionen verkar byta håll på koordinataxlar som den vill. Hade vi lyckats med det skulle vi slippa att korrelera igen och sparat mycket beräkningstid. När vi transformerade bilderna använde vi först affine-metoden. Det visade sig dock att den behåller alla linjer parallella, och i stället för att rotera korrekt skjuvar bilden. Detta resulterade i att matchningen inte blev bra. Lösningen på detta problem var att använda similarity-transformen, som roterar bilden korrekt utan att skjuva. Val av transform görs som ett extra argument i cp2tform() funktionen. Det visade sig dock att similarityargumentet endast existerar i Imagetoolbox 6.,1 och labbsalen har endast version 6.0. Vi skickar därför med cp2tform() funktionen från Image toolbox 6.1 i vårat program, ifall testdatorn skulle ha en gammal version av MATLAB.