Färghistogram - Color histogram

Vid bildbehandling och fotografering är ett färghistogram en representation av fördelningen av färger i en bild . För digitala bilder representerar ett färghistogram antalet pixlar som har färger i var och en av en fast lista över färgområden, som sträcker sig över bildens färgutrymme , uppsättningen med alla möjliga färger.

Färghistogrammet kan byggas för alla typer av färgutrymmen, även om termen oftare används för tredimensionella utrymmen som RGB eller HSV . För monokromatiska bilder kan termen intensitetshistogram användas istället. För multispektrala bilder, där varje pixel representeras av ett godtyckligt antal mätningar (till exempel utöver de tre mätningarna i RGB), är färghistogrammet N- dimensionellt, där N är antalet mätningar som gjorts. Varje mätning har sitt eget våglängdsområde för ljusspektrumet, varav vissa kan ligga utanför det synliga spektrumet.

Om uppsättningen möjliga färgvärden är tillräckligt liten kan var och en av dessa färger placeras på ett område av sig själv; då är histogrammet bara antalet pixlar som har varje möjlig färg. Oftast är utrymmet indelat i ett lämpligt antal intervall, ofta ordnade som ett vanligt rutnät, var och en innehåller många liknande färgvärden. Färghistogrammet kan också representeras och visas som en jämn funktion som definieras över färgutrymmet som approximerar pixelräkningen.

Liksom andra typer av histogram är färghistogrammet en statistik som kan ses som en approximation av en underliggande kontinuerlig fördelning av färgvärden.

Översikt

Färghistogram är flexibla konstruktioner som kan byggas från bilder i olika färgutrymmen , oavsett om RGB , rg kromatisitet eller något annat färgutrymme av någon dimension. Ett histogram av en bild produceras först genom att diskretisera färgerna i bilden till ett antal fack och räkna antalet bildpixlar i varje fack. Till exempel kan ett röd-blått kromatiskt histogram bildas genom att först normalisera färgpixelvärden genom att dela RGB-värden med R + G + B, sedan kvantifiera de normaliserade R- och B-koordinaterna i N-fack vardera. Ett tvådimensionellt histogram med rödblå kromaticitet uppdelad i fyra fack ( N = 4) kan ge ett histogram som ser ut i den här tabellen:

  röd
0-63 64-127 128-191 192-255
blå 0-63 43 78 18 0
64-127 45 67 33 2
128-191 127 58 25 8
192-255 140 47 47 13

Ett histogram kan vara N-dimensionellt. Även om det är svårare att visa, skulle ett tredimensionellt färghistogram för ovanstående exempel kunna betraktas som fyra separata rödblå histogram, där vart och ett av de fyra histogrammen innehåller de röda-blå värdena för en fack med grönt (0-63, 64 -127, 128-191 och 192-255).

Histogrammet ger en kompakt sammanfattning av fördelningen av data i en bild. Färghistogrammet på en bild är relativt obevekligt med översättning och rotation om betraktningsaxeln och varierar endast långsamt med synvinkeln. Genom att jämföra histogramsignaturer av två bilder och matcha färginnehållet i en bild med den andra, är färghistogrammet särskilt väl lämpat för problemet med att känna igen ett objekt med okänd position och rotation inom en scen. Viktigare är att översättning av en RGB-bild till det belysningsvariationer rg-kromatiska utrymmet gör att histogrammet fungerar bra i varierande ljusnivåer.

1. Vad är ett histogram?

Ett histogram är en grafisk representation av antalet pixlar i en bild. På ett enklare sätt att förklara är ett histogram ett stapeldiagram, vars X-axel representerar tonskalan (svart till vänster och vit till höger), och Y-axeln representerar antalet pixlar i en bild i en viss area av tonskalan. Till exempel visar diagrammet för ett luminanshistogram antalet pixlar för varje ljusstyrka (från svart till vitt), och när det finns fler pixlar är toppen vid den vissa luminansnivån högre.

2. Vad är ett färghistogram?

Ett färghistogram för en bild representerar fördelningen av sammansättningen av färger i bilden. Den visar olika typer av färger som dök upp och antalet pixlar i varje färgtyp dykte upp. Förhållandet mellan ett färghistogram och ett luminanshistogram är att ett färghistogram också kan uttryckas som "Tre luminanshistogram", som var och en visar ljusstyrksfördelningen för varje enskild röd / grön / blå färgkanal.

Egenskaper hos ett färghistogram

Ett färghistogram fokuserar bara på andelen av antalet olika färgtyper, oavsett färgens rumsliga placering. Värdena för ett färghistogram kommer från statistik. De visar den statistiska fördelningen av färger och en väsentlig ton i en bild.

I allmänhet, eftersom färgfördelningarna på förgrunden och bakgrunden i en bild är olika, kan det finnas en bimodal fördelning i histogrammet.

För luminanshistogrammet ensamt finns det inget perfekt histogram och i allmänhet kan histogrammet berätta om det är över exponering eller inte, men det finns tillfällen då du kanske tror att bilden är över exponerad genom att titta på histogrammet; men i verkligheten är det inte.

Principer för bildandet av ett färghistogram

Bildandet av ett färghistogram är ganska enkelt. Från definitionen ovan kan vi helt enkelt räkna antalet pixlar för varje 256 skalor i var och en av de 3 RGB-kanalerna och plotta dem på tre enskilda stapeldiagram.

I allmänhet är ett färghistogram baserat på ett visst färgutrymme, till exempel RGB eller HSV. När vi beräknar pixlarna i olika färger i en bild, om färgutrymmet är stort, kan vi först dela in färgutrymmet i vissa antal små intervall. Var och en av intervallerna kallas en fack. Denna process kallas färgkvantisering. Genom att räkna antalet pixlar i vart och ett av facken får vi bildens färghistogram.

De konkreta stegen i principerna kan ses i exempel 2.

exempel

Exempel 1

Följande bild av en katt (en originalversion och en version som har reducerats till 256 färger för enkla histogramändamål) representerar följande data ett färghistogram i RGB-färgutrymmet med fyra fack. Fack 0 motsvarar intensiteterna 0-63, fack 1 är 64-127, fack 2 är 128-191 och fack 3 är 192-255.

En bild en katt
En bild av en katt
Image
Färghistogram för ovanstående kattbild med x-axeln RGB och y-axeln är frekvensen.
En bild av en katt som har reducerats till 256 färger
En bild av en katt minskade till 256 färger i RGB-färgutrymmet
Röd Grön Blå Pixel Count
0 0 0 7414
0 0 1 230
0 0 2 0
0 0 3 0
0 1 0 8
0 1 1 372
0 1 2 88
0 1 3 0
0 2 0 0
0 2 1 0
0 2 2 10
0 2 3 1
0 3 0 0
0 3 1 0
0 3 2 0
0 3 3 0
1 0 0 891
1 0 1 13
1 0 2 0
1 0 3 0
1 1 0 592
1 1 1 3462
1 1 2 355
1 1 3 0
1 2 0 0
1 2 1 101
1 2 2 882
1 2 3 16
1 3 0 0
1 3 1 0
1 3 2 0
1 3 3 0
2 0 0 1146
2 0 1 0
2 0 2 0
2 0 3 0
2 1 0 2552
2 1 1 9040
2 1 2 47
2 1 3 0
2 2 0 0
2 2 1 8808
2 2 2 53110
2 2 3 11053
2 3 0 0
2 3 1 0
2 3 2 170
2 3 3 17533
3 0 0 11
3 0 1 0
3 0 2 0
3 0 3 0
3 1 0 856
3 1 1 1376
3 1 2 0
3 1 3 0
3 2 0 0
3 2 1 3650
3 2 2 6260
3 2 3 109
3 3 0 0
3 3 1 0
3 3 2 3415
3 3 3 53.929

Exempel 2

Symcamera1.jpg
Symcamera2.jpg
Symcamera3.jpg

Applikation i kamera:

Idag har vissa kameror möjligheten att visa de 3 färghistogrammen när vi tar bilder.

Vi kan undersöka klipp (spikar på antingen den svarta eller vita sidan av skalan) i vart och ett av de 3 RGB-färghistogrammen. Om vi ​​hittar en eller flera klippning på en kanal med de 3 RGB-kanalerna, skulle detta resultera i förlust av detaljer för den färgen.

För att illustrera detta, tänk på detta exempel:

1. Vi vet att var och en av de tre R-, G-, B-kanalerna har ett intervall av värden från 0-255 (8 bit). Så tänk på ett foto som har ett luminansintervall på 0-255.

2. Anta att fotot vi tar är gjord av fyra block som ligger intill varandra och vi ställer in luminansskalan för vart och ett av de 4 blocken med originalfoto till 10, 100, 205, 245. Därför ser bilden ut som första siffran till höger.

3. Då utsätter vi fotot lite, säger, luminansskalan för varje block ökas med 10. Således är luminansskalan för vart och ett av de fyra blocken av det nya fotot 20, 110, 215, 255. Sedan bilden ser ut som den andra figuren till höger.

Det är inte mycket skillnad mellan figur 8 och figur 9, allt vi kan se är att hela bilden blir ljusare (kontrasten för vart och ett av blocken förblir densamma).

4. Nu exponerar vi över det ursprungliga fotot igen, denna gång ökas luminansskalan för varje block med 50. Således är luminansskalan för vart och ett av de fyra blocken av det nya fotot 60, 150, 255, 255. Den nya bilden ser nu ut som den tredje siffran till höger.

Observera att skalan för sista blocket är 255 istället för 295, för 255 är den översta skalan och därmed har det sista blocket klippts! När detta händer förlorar vi kontrasten för de två senaste blocken, och vi kan alltså inte återställa bilden oavsett hur vi justerar den.

För att avsluta, när du tar foton med en kamera som visar histogram, håll alltid den ljusaste tonen i bilden under den största skalan 255 på histogrammet för att undvika att förlora detaljer.

Nackdelar och andra tillvägagångssätt

Den största nackdelen med histogram för klassificering är att representationen är beroende av färgen på objektet som studeras och ignorerar dess form och struktur. Färghistogram kan potentiellt vara identiska för två bilder med olika objektinnehåll som råkar dela färginformation. Omvänt, utan rumslig information eller forminformation, kan liknande föremål i olika färger vara oskiljbara baserat endast på färghistogramjämförelser. Det finns inget sätt att skilja en röd och vit kopp från en röd och vit platta. Sagt på ett annat sätt, histogrambaserade algoritmer har inget begrepp om en generisk "kopp", och en modell av en röd och vit kopp har ingen nytta när man får en annars identisk blå och vit kopp. Ett annat problem är att färghistogram har hög känslighet för bullriga störningar såsom ljusintensitetsförändringar och kvantiseringsfel. Färghistogram med hög dimensionalitet (fack) är också en annan fråga. Vissa färghistogramfunktioner har ofta mer än hundra dimensioner.

Några av de föreslagna lösningarna har varit färghistogramkorsning, färgkonstantindexering, kumulativt färghistogram, kvadratiskt avstånd och färgkorrelogram . Även om det finns nackdelar med att använda histogram för indexering och klassificering, har färg i ett realtidssystem flera fördelar. Den ena är att färginformation är snabbare att beräkna jämfört med andra invarianter. I vissa fall har det visats att färg kan vara en effektiv metod för att identifiera föremål med känt läge och utseende.

Ytterligare forskning om förhållandet mellan färghistogrondata till de fysiska egenskaperna hos objekten i en bild har visat att de inte bara kan representera objektfärg och belysning utan avser ytråhet och bildgeometri och ge en förbättrad uppskattning av belysning och objektfärg.

Vanligtvis används euklidiskt avstånd, skärning av histogram eller kosinus- eller kvadratiska avstånd för beräkning av bildlikhetsgraderingar. Några av dessa värden återspeglar inte likheten för två bilder i sig; det är användbart endast när det används i jämförelse med andra liknande värden. Detta är anledningen till att alla praktiska implementeringar av innehållsbaserad bildhämtning måste slutföra beräkningen av alla bilder från databasen, och är den största nackdelen med dessa implementationer.

En annan metod för representativt färgbildinnehåll är tvådimensionellt färghistogram. Ett tvådimensionellt färghistogram beaktar förhållandet mellan pixelparets färger (inte bara belysningskomponenten). Ett tvådimensionellt färghistogram är en tvådimensionell matris. Storleken på varje dimension är antalet färger som användes i fasen för färgkvantisering. Dessa matriser behandlas som matriser, där varje element lagrar ett normaliserat antal pixelpar, varvid varje färg motsvarar indexet för ett element i varje pixelområde. För jämförelse av tvådimensionella färghistogram föreslås det att beräkna deras korrelation, eftersom konstruerad som beskrivits ovan, är en slumpmässig vektor (med andra ord ett flerdimensionellt slumpmässigt värde). Medan du skapar en uppsättning av slutliga bilder, bör bilderna ordnas i minskande ordning för korrelationskoefficienten.

Korrelationskoefficienten kan också användas för jämförelse av färghistogram. Återvinningsresultat med korrelationskoefficient är bättre än med andra mätvärden.

Intensitetshistogram för kontinuerliga data

Idén om ett intensitetshistogram kan generaliseras till kontinuerliga data, säger ljudsignaler representerade av verkliga funktioner eller bilder representerade av funktioner med tvådimensionell domän .

Låt (se Lebesgue-utrymme ), då kan den kumulativa histogramoperatören definieras av:

.

är Lebesgue-mått på uppsättningar. i sin tur är en riktig funktion . (Det icke-kumulativa) histogrammet definieras som dess derivat .

.

referenser

externa länkar