490 likes | 615 Views
Computer Vision. Presentatie titel. Technische Informatica www.hogeschool-rotterdam.nl/cmi. Rotterdam, 00 januari 2007. Les 5. Hoofdstukken 2.3 Beeldpresentatie en kleurenmodellen 2.4 Homogene punt operatoren 2.5 Histogrammen. Beeldpresentatie. Beelden worden bewerkt
E N D
Computer Vision Presentatie titel Technische Informatica www.hogeschool-rotterdam.nl/cmi Rotterdam, 00 januari 2007
Les 5 Hoofdstukken 2.3 Beeldpresentatie en kleurenmodellen 2.4 Homogene punt operatoren 2.5 Histogrammen
Beeldpresentatie • Beelden worden bewerkt • Hoe worden beelden in geheugen geplaatst • 3 delen: • 1. Keuze coördinatensysteem • 2. De codering van de grijswaarden • 3. Kleurendecodering • Er wordt een uniforme conventie aangehouden voor IVT (Integrated Vision Toolkit) en commerciële camera’s • Alleen dan kun je onafhankelijke algoritmen ontwikkelen
Beschrijving 2D beeld • Het beeld coördinatensysteem is 2D met de oorsprong linksboven • De horizontale as is u . De vertikale as is v • Eenheden zijn pixels (tevens een discreet punt in een beeld) • Geheugens zijn lineair. Presentatie in fig. 2.7
Beschrijving grijswaarde • Grijswaarde beelden zijn 8 bit (1 byte) • 256 verschillende grijswaarden • Datatype unsigned char , positieve getallen {0-255} 0=kleur zwart ; 255= kleur wit (fig 2.8)
Beschrijving kleuren • Meest gebruikt RGB model: • Additief model met rood groen en blauw • Verschillend aantal bits 16 of 24 • Bij 16 bit: 5R 6G 5B bits (216= 65 536 kleuren) • Camera’s 24 bit per pixel 8R,8G,8B (224 =16 777 216 kleuren) • Voor IVT is RGB 24 bit standaard • Zie (fig 2.9) voor presentatie • De bandbreedte voor transmissie zo klein mogelijk houden • Daarom Bayer patroon overzenden wat 8 bit per pixel nodig heeft
Beschrijving kleuren • Een ander model is YUV kleuren model http:// color_models.html • Dit is een TV-kleurensignaal • Gebruikt voor transmissie( heeft weinig bandbreedte nodig) • Nog een ander model is HSV model (Hue, Saturation,Value) • Gebruikt voor kleuren segmenten • Het scheidt de kleureninformatie van helderheid en verzadiging van de kleur • De H-waarde geeft de kleurenhoek in chromatisch spectrum van 0-3600
Beschrijving kleuren • Datatype Integer • De H waarde =hue (kleurtint) van 0-179 • De S waarde =verzadiging ,hoe hoger de waarde hoe meer verzadigd. • De V waarde = helderheid, hoe hoger hoe helderder • S en V gecodeerd in 1 byte {0-255} • Voor berekeningen dient de RGB waarde geconverteerd te worden naar HSV waarde • Conversie van 3-tallen
Beschrijving grijswaarde • In boeken wordt driehoeksmeting gebruikt voor omzetting van RGB naar HVS • Dit is echter te langzaam en ongeschikt voor implementatie • Een efficiente implementatie gebruikt integer berekeningen • In algoritme 6 en 7 zijn de omzettingen in pseudo code gegeven • h є {0…359} en s,v,r,g,bє {0…256} • De operator div implementeert integer-deling
Beeldfuncties • De volgende beeldfuncties (I) zijn een formele schrijfwijze om beeldfuncties te benaderen • De basis voor verdere algoritmen • w= breedte van beeld in pixels • h = hoogte van beeld in pixels • q = geeft de grootste getal van een kanaal ( kleur) • De beeldfunctie I voor een 2D grijs beeld wordt:
Beschrijving grijswaarde • De beeldfunctie I voor een 2D kleuren beeld wordt: • Bij RGB is de volgorde: rood (R), groen (G) en blauw (B) • Bij HSV is de volgorde: kleurenhoek (H),verzadiging (S) ,intensiteit (V)
Conversie van grijsbeeld naar kleurenbeeld • Gegeven een RGB kleurenbeeld IRGB24 en een 8 bit grijs beeld IG van dezelfde grootte, dan is: • IG(u,v)= 0,299.r + 0,587.g + 0,114.b met (r,g,b) := IRGB24(u,v) (2.31) • De reden voor de verschillende gewichten is dat het menselijk oog een verschillende gevoeligheid voor de kleuren heeft • Het omgekeerde proces: • IRGB24(u,v) =( IG(u,v), IG(u,v), IG(u,v)) (2.32) • Geimplementeerd in IVT
Homogene punt operatoren • Punt operatoren zijn operatoren die een nieuwe waarde toekennen aan elk beeldpunt(u,v) , afhankelijk van zijn huidige waarde I(u,v) en zijn positie (u,v) • De algemene afbeelding luidt: • I’(u,v):= f(I(u,v),u,v) (2.33) • 2 klassen: homogeen ( alleen afhankelijk van I(u,v)) niet-homogeen ( ook afhankelijk van (u,v)) • Alle operatoren zijn hier homogeen • I’(u,v):= f(I(u,v)) (2.33)
Homogene punt operatoren • f = constant bij segmentatiemethoden • f = afhankelijk van de inhoud bij histogrammen (zie fig 2.10)
Homogene punt operatoren • Affiene operatoren vormen een subklasse van de homogene punt operatoren. • Ze kennen een lineair verband , afhankelijk van de waarde van de pixel • I’(u,v) := a.I(u,v) + b ( a,b constanten) (2.35) • Afhankelijk van keus van a,b wordt de helderheid,contrast, inverse van een beeld veranderd. • Algoritme 8 implementeert de affiene punt operator in pseudo code
Homogene punt operatoren • Hieronder een overzicht voor de parameters a en b • Voor inversie is een grenswaarde q nodig anders wordt beeld overstuurd
Homogene punt operatoren • Helderheid vergroten: a=1 , b>0 • Helderheid verkleinen: a=1 , b<0 • Contrast vergroten: a>1 , b=0 • Contrast verkleinen: a>1 , b=0 • Inversie: a=-1 , b=q • Ook combinaties zijn mogelijk , voorbeelden zijn fig 2.11-2.15
Histogrammen • Een histogram is een datastructuur die de verdeling van de intensiteit weergeeft van een foto. • Horizontale as: geeft de intensiteit (0-255) • Vertikale as: frequentie van voorkomen van die intensiteit • De toepassing zijn vele: Beeldvoorbewerken voor segmentatie Kleuren gebaseerde object herkening Enz.
Grijswaarde Histogrammen • H is gedefinieerd als volgt: • H : {0,…q} -> {0,….w.h-1} • H(x) := #(u,v): I(u,v) = x (2.36) • Hierin is w de breedte en h de hoogte • Het # is een aantal keren dat pixel voorkomt • Voor iedere x є {0,..,q} wordt het aantal pixels die dezelfde grijswaarde (I(u,v)) heeft berekend • Algoritme 9 berekent het histogram van een foto en slaat dit op in een array met grootte q+1=256 • In fig 2.16 is een histogram gegeven
Grijswaarde Histogrammen • Het histogram van fig 2.31 is in fig 2.16 gegeven
Kleuren Histogrammen • Kleuren histogrammen verschillen in de kleuren presentatie • Met 24 bit voorstellingen met RGB of HSV kleurenmodelllen heeft een diagram 224 eenheden op de X-as • Dit betekent voor 32 bit integerwaarden voor de Y-as een totale grootte van 64 Megabyte • Daarom maar histogrammen voor 2 van de 3 kanalen (meestal RG of HS histogrammen) • Een 2 dimensionaal histogram:
Kleuren Histogrammen • H : {0,…q} x {0,…q} -> {0,….w.h-1} (2.37) • H(x,y) := #(u,v) :(h,s) = (x,y) met (h,s,v):= I(u,v) • Met algoritme 10 kan zo’n histogram berekend worden worden voor een HSV kleurenbeeld ( voor RGB is dit hetzelfde) • In fig 2.17 is een HS histogram voor een huidskleur uit fig 2.33 getekend. Het is karakteristiek dat in de buurt van rood ( bij 00 of 3600 de meeste verzadiging optreed
Uitrekken van histogrammen • Uitrekken van histogrammen is een methode om automatisch een verbetering van contrast of grijswaarde te verkrijgen • Eerst minimum intensiteit min en maximum max van een grijswaarde beeld I bepalen ( zie algoritme 11) • Het interval [min,max] wordt lineair afgebeeld op het interval [0,q]. Dit geeft het beeld I’
Uitrekken van histogrammen • Dit kan anders geschreven worden als een affiene punt operatie (zoals in algoritme 8) • a = b = • Voor dat uitgerekt wordt moet gekeken worden of min ≠ max ( dan is het n.l een homogeen beeld en kan niet uitgerekt worden
Uitrekken van histogrammen • Het nadeel van uitrekken is de robuustheid • 1 pixel met intensiteit 0 en 1 pixel met intensiteit q zijn al voldoende om het ineffectief te maken • (dan is a=1 en b=0) • Het gebruik van fracties ( quantiles) om de waarde max en min te bepalen is veel robuuster. ( statische berekeningen) • In de statistiek is de p-quantiel de waarde die onder de p.100 % ligt van voorkomen in de distributie • http://en.wikipedia.org/wiki/Quantile • Voorbeeld:
Uitrekken van histogrammen • De 4-quantiel heet quartiel • Het 1e quartiel snijdt de laagste 25 % data af • Het 2e quartiel snijdt de laagste 50 % data af • Het 3e quartiel snijdt de laagste 75 % data af • Gegeven de reeks {3, 6, 7, 8, 8, 9, 10, 13, 15, 16, 20} van 11 getallen • De positie van de 1e quartiel is 11*(1/4)=2,75 (afgerond 3) De waarde van de 3e positie is 7 • De positie van de 2e quartiel is 11*(2/4)=5,5 (afgerond 6) De waarde van de 6e positie is 9
Uitrekken van histogrammen • De positie van de 3e quartiel is 11*(3/4)=8,25 (afgerond 9) De waarde van de 9e positie is 15 • het infimum (inf) van een verzameling is het grootste element dat kleiner of gelijk is dan alle elementen in de verzameling • Vb inf{ 3,2,9} = 2 • Het histogram van een beeld komt overeen met de dichtheidsfunctie in de statistiek behalve dat de oppervlakte niet gelijk is aan 1 • De tegenhanger is de opgetelde histogram Ha die als volgt gedefinieerd is voor H
Uitrekken van histogrammen • Ha(x)= H(0)+ H(1)+ H(2) …+H(x) • De berekening is in algoritme 13 • Het p-quantiel is de grijswaarde x die onder p.100 % ligt voor alle grijswaarden
Uitrekken van histogrammen • De quantiel functie Hq kan wiskundig gedefinieerd worden voor Ha : • Hq := inf { x є {0…q} : Ha (x) ≥ p.Ha(q)} (2.41) • Hq wordt het infimum van x waarvoor geldt: Ha (x) ≥ p.Ha(q) • het infimum (inf) van een verzameling is het grootste element dat kleiner of gelijk is dan alle elementen in de verzameling (grootste ondergrens) • Vb inf{ 3,2,9} = 2
Uitrekken van histogrammen • De berekening voor het p-quantiel voor Ha is samengevat in algoritme 14 • Het uitrekken van histogrammen kan worden gedefinieerd als een wijziging van de verdeling, het uitrekenen van de waarde max en min met behulp van quantielen • Het wordt samengevat in algoritme 15
Uitrekken van histogrammen • Uit experimenten blijkt: dat de 0,1- quantiel pmin en de 0,9-quantiel pmax goede waarden zijn. Dat zijn default waarden in algoritmen
Egaliseren van histogrammen • Egaliseren van histogrammen is een methode voor automatische regeling van contrast • Egaliseren verdeelt het histogram evenwichtig • Het doel is om het contrast te verbeteren van bepaalde grijswaarden in het beeld • Bij uitrekken wordt alleen het contrast van het hele beeld uniform verbeterd
Egaliseren van histogrammen • Egalisatie gebruikt ook Ha • Het genormaliseerde histogram is Hn : • Hn dient als een loop-up table voor het opnieuw toekennen van de grijswaarden (zie algoritme 16) • Egalisatie is geen affiene punt operatie (geen linearisatie)
Egaliseren van histogrammen • Verspreiden, uitrekken en egaliseren van histogrammen (algoritmes 12,15,16) zijn geimplementeerd in IVT
Egaliseren van histogrammen • In fig 2.18 is een orgineel gegeven
Egaliseren van histogrammen • In fig 2.19 is het uitgerekte beeld gegeven
Egaliseren van histogrammen • In fig 2.20 is het geegaliseerde beeld gegeven