Histograma de culoare - Color histogram

În procesarea imaginii și fotografie , o histogramă a culorilor este o reprezentare a distribuției culorilor într-o imagine . Pentru imaginile digitale, o histogramă de culoare reprezintă numărul de pixeli care au culori în fiecare dintre o listă fixă ​​de intervale de culori, care acoperă spațiul de culoare al imaginii , setul de culori posibile.

Histograma de culoare poate fi construită pentru orice tip de spațiu de culoare, deși termenul este mai des utilizat pentru spații tridimensionale precum RGB sau HSV . Pentru imaginile monocromatice , în schimb, poate fi utilizat termenul de histogramă de intensitate . Pentru imaginile multi-spectrale, unde fiecare pixel este reprezentat de un număr arbitrar de măsurători (de exemplu, dincolo de cele trei măsurători în RGB), histograma de culoare este N- dimensională, N fiind numărul de măsurători efectuate. Fiecare măsurare are propriul său interval de lungime de undă a spectrului luminos, unele dintre ele putând fi în afara spectrului vizibil.

Dacă setul de valori posibile ale culorii este suficient de mic, fiecare dintre aceste culori poate fi plasată pe o gamă de la sine; atunci histograma este doar numărul de pixeli care au fiecare culoare posibilă. Cel mai adesea, spațiul este împărțit într-un număr adecvat de intervale, deseori aranjate ca o grilă obișnuită, fiecare conținând multe valori de culoare similare. Histograma culorii poate fi, de asemenea, reprezentată și afișată ca o funcție lină definită pe spațiul de culoare care aproximează numărul de pixeli.

Ca și alte tipuri de histograme , histograma de culoare este o statistică care poate fi privită ca o aproximare a unei distribuții continue subiacente a valorilor culorilor.

Prezentare generală

Histogramele de culoare sunt construcții flexibile care pot fi construite din imagini în diverse spații de culoare , fie RGB , cromaticitate rg sau orice alt spațiu de culoare de orice dimensiune. O histogramă a unei imagini este produsă mai întâi prin discretizarea culorilor din imagine într-un număr de coșuri și numărând numărul de pixeli de imagine din fiecare coș. De exemplu, o histogramă cromatică Roșu-Albastru poate fi formată mai întâi prin normalizarea valorilor pixelilor de culoare prin împărțirea valorilor RGB la R + G + B, apoi cuantificarea coordonatelor R și B normalizate în N bins fiecare. O histogramă bidimensională de cromatică Roșu-Albastru împărțită în patru pubele ( N = 4) ar putea produce o histogramă care arată ca acest tabel:

  roșu
0-63 64-127 128-191 192-255
albastru 0-63 43 78 18 0
64-127 45 67 33 2
128-191 127 58 25 8
192-255 140 47 47 13

O histogramă poate fi dimensională N. Deși este mai greu de afișat, o histogramă tridimensională a culorilor pentru exemplul de mai sus ar putea fi gândită ca patru histograme de Roșu-Albastru separate, unde fiecare din cele patru histograme conține valorile Roșu-Albastru pentru o coș de verde (0-63, 64 -127, 128-191 și 192-255).

Histograma oferă o rezumare compactă a distribuției datelor într-o imagine. Histograma de culori a unei imagini este relativ invariabilă cu translația și rotirea în jurul axei de vizualizare și variază doar încet cu unghiul de vedere. Prin compararea semnăturilor histogramelor a două imagini și potrivirea conținutului de culoare al unei imagini cu cealaltă, histograma culorilor este deosebit de potrivită pentru problema recunoașterii unui obiect de poziție și rotire necunoscută în cadrul unei scene. Este important de tradus o imagine RGB în spațiul de cromaticitate rg invariantă pentru iluminare permite histogramei să funcționeze bine în diferite niveluri de lumină.

1.Care este o histogramă?

O histogramă este o reprezentare grafică a numărului de pixeli dintr-o imagine. Într-un mod mai simplu de explicat, o histogramă este un grafic cu bare, a cărui axa X reprezintă scala tonală (negru la stânga și alb la dreapta), iar axa Y reprezintă numărul de pixeli dintr-o imagine într-o anumită aria scării tonale. De exemplu, graficul unei histograme de luminanță arată numărul de pixeli pentru fiecare nivel de luminozitate (de la negru la alb), iar atunci când există mai mulți pixeli, vârful la un anumit nivel de luminanță este mai mare.

2.Care este o histogramă a culorilor?

O histogramă de culoare a unei imagini reprezintă distribuția compoziției culorilor din imagine. Prezintă diferite tipuri de culori apărute și numărul de pixeli din fiecare tip de culori a apărut. Relația dintre o histogramă de culoare și o histogramă de luminanță este aceea că o histogramă a culorii poate fi exprimată și sub denumirea de „trei histograme de lumină”, fiecare dintre ele indicând distribuția luminozității fiecărui canal de culoare Roșu / Verde / Albastru.

Caracteristicile unei histograme de culori

O histogramă a culorilor se concentrează numai pe proporția numărului de diferite tipuri de culori, indiferent de locația spațială a culorilor. Valorile unei histograme de culori provin din statistici. Acestea arată distribuția statistică a culorilor și tonul esențial al unei imagini.

În general, întrucât distribuțiile de culoare ale prim-planului și ale fundalului dintr-o imagine sunt diferite, poate exista o distribuție bimodală în histogramă.

Doar pentru histograma de luminanță, nu există o histogramă perfectă și, în general, histograma poate spune dacă este peste expunere sau nu, dar există momente în care s-ar putea să credeți că imaginea este expusă prea mult prin vizualizarea histogramei; cu toate acestea, în realitate nu este.

Principii de formare a unei histograme color

Formarea unei histograme de culori este destul de simplă. Din definiția de mai sus, putem număra pur și simplu numărul de pixeli pentru fiecare scară de 256 în fiecare dintre cele 3 canale RGB și să le desenăm pe 3 grafice cu bare individuale.

În general, o histogramă a culorilor se bazează pe un anumit spațiu de culoare, cum ar fi RGB sau HSV. Când calculăm pixeli de diferite culori într-o imagine, dacă spațiul de culoare este mare, atunci mai întâi putem împărți spațiul color în anumite numere de intervale mici. Fiecare dintre intervale se numește coș. Acest proces se numește cuantificarea culorilor. Apoi, numărând numărul de pixeli din fiecare coș, obținem histograma de culoare a imaginii.

Etapele concrete ale principiilor pot fi vizualizate în Exemplul 2.

Exemple

Exemplul 1

Având în vedere imaginea următoare a unei pisici (o versiune originală și o versiune care a fost redusă la 256 de culori în scopuri ușoare de histogramă), următoarele date reprezintă o histogramă de culoare în spațiul de culoare RGB, folosind patru coșuri. Coșul 0 corespunde intensităților 0-63, coșul 1 este 64-127, coșul 2 este 128-191, iar coșul 3 este 192-255.

O imagine o pisică
O poză a unei pisici
Image
Histograma color a imaginii pisicii de mai sus, cu axa x fiind RGB și axa y fiind frecvența.
O imagine cu o pisică care a fost redusă la 256 de culori
O imagine cu o pisică redusă la 256 de culori în spațiul de culori RGB
roșu Verde Albastru Numărul pixelilor
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 53929

Exemplul 2

Symcamera1.jpg
Symcamera2.jpg
Symcamera3.jpg

Aplicație în camera foto:

În zilele noastre, unele camere au capacitatea de a arăta cele 3 histograme color atunci când facem fotografii.

Putem examina clipuri (vârfuri fie pe partea albă sau albă a scării) în fiecare dintre cele 3 histograme de culori RGB. Dacă găsim unul sau mai multe clipiri pe un canal al celor 3 canale RGB, atunci aceasta ar duce la o pierdere de detalii pentru acea culoare.

Pentru a ilustra acest lucru, luați în considerare acest exemplu:

1. Știm că fiecare din cele trei canale R, G, B are o gamă de valori de la 0-255 (8 biți). Deci, luați în considerare o fotografie care are un interval de luminanță de 0-255.

2. Presupunem că fotografia pe care o facem este formată din 4 blocuri adiacente între ele și setăm scala de luminanță pentru fiecare din cele 4 blocuri ale fotografiei originale ca 10, 100, 205, 245. Astfel, imaginea arată ca prima figură din dreapta.

3. Apoi, expunem puțin fotografia, să zicem, scala de luminanță a fiecărui bloc este mărită cu 10. Astfel, scala de luminanță pentru fiecare din cele 4 blocuri ale fotografiei noi este 20, 110, 215, 255. Apoi, imaginea arată ca a doua figură din dreapta.

Nu există prea multe diferențe între figura 8 și figura 9, tot ce putem vedea este că întreaga imagine devine mai strălucitoare (contrastul pentru fiecare dintre blocuri rămâne același).

4. Acum, expunem din nou fotografia originală, de data aceasta scala de luminanță a fiecărui bloc este mărită cu 50. Astfel, scala de luminanță pentru fiecare din cele 4 blocuri ale noii fotografii este 60, 150, 255, 255. Noua imaginea arată acum a treia figură din dreapta.

Rețineți că scala pentru ultimul bloc este 255 în loc de 295, pentru 255 este scara superioară și astfel ultimul bloc a fost tăiat! Când se întâmplă acest lucru, pierdem contrastul ultimelor 2 blocuri și, astfel, nu putem recupera imaginea indiferent de modul în care o ajustăm.

În concluzie, când faceți fotografii cu o cameră care afișează histograme, păstrați întotdeauna cel mai luminos ton din imagine sub cea mai mare scară 255 de pe histogramă pentru a evita pierderea de detalii.

Dezavantaje și alte abordări

Principalul dezavantaj al histogramelor pentru clasificare este acela că reprezentarea depinde de culoarea obiectului studiat, ignorând forma și textura acestuia. Histogramele de culoare pot fi identice pentru două imagini cu un conținut de obiect diferit, care se întâmplă să partajeze informații despre culoare. În schimb, fără informații spațiale sau de formă, obiecte similare de culoare diferită pot fi indistinguibile numai pe baza comparațiilor cu histograme de culori. Nu există nicio modalitate de a distinge o ceașcă roșie și albă de o farfurie roșie și albă. În altă ordine de idei, algoritmii pe bază de histogramă nu au niciun concept de „cupă” generică, iar modelul unei cupe roșii și albe nu are niciun folos atunci când li se oferă o cană albastră și albă identică. O altă problemă este că histogramele de culoare au o sensibilitate ridicată la interferențe zgomotoase, cum ar fi modificările de intensitate a iluminatului și erorile de cuantificare. Histogramele de culoare de dimensionalitate înaltă (pubele) sunt, de asemenea, o altă problemă. Unele spații cu caracteristici de histogramă color ocupă adesea mai mult de o sută de dimensiuni.

Unele dintre soluțiile propuse au fost intersecția histogramei de culoare, indexarea constantă a culorii, histograma cumulativă a culorii, distanța cuadratică și corelogramele de culoare . Deși există dezavantaje ale utilizării histogramelor pentru indexare și clasificare, utilizarea culorii într-un sistem în timp real are mai multe avantaje. Unul este că informațiile despre culoare sunt mai rapid de calculat în comparație cu alte invariante. În unele cazuri, s-a arătat că culoarea poate fi o metodă eficientă pentru identificarea obiectelor cu locație și aspect cunoscute.

Cercetările ulterioare privind relația dintre datele histogramei culorilor cu proprietățile fizice ale obiectelor dintr-o imagine au arătat că pot reprezenta nu numai culoarea și iluminarea obiectului, ci se referă la rugozitatea suprafeței și la geometria imaginii și oferă o estimare îmbunătățită a iluminării și a obiectului.

De obicei, distanța euclidiană, intersecția histogramelor sau distanțele cosinice sau patratice sunt utilizate pentru calculul evaluărilor de asemănare a imaginii. Oricare dintre aceste valori nu reflectă rata de asemănare a două imagini în sine; este util numai atunci când este utilizat în comparație cu alte valori similare. Acesta este motivul pentru care toate implementările practice ale regăsirii imaginilor bazate pe conținut trebuie să completeze calculul tuturor imaginilor din baza de date și este principalul dezavantaj al acestor implementări.

O altă abordare a conținutului reprezentativ al imaginii color este histograma bidimensională a culorii. O histogramă a culorilor bidimensionale ia în considerare relația dintre culorile perechii de pixeli (nu numai componenta de iluminare). O histogramă în culori bidimensională este un tablou bidimensional. Mărimea fiecărei dimensiuni este numărul de culori care au fost utilizate în faza de cuantizare a culorilor. Aceste tablouri sunt tratate ca matrice, fiecare element stocând un număr normalizat de perechi de pixeli, fiecare culoare corespunzând indexului unui element din fiecare cartier de pixeli. Pentru compararea histogramelor bidimensionale de culoare, se sugerează calcularea corelației lor, deoarece construit așa cum este descris mai sus, este un vector aleator (cu alte cuvinte, o valoare aleatorie multidimensională). În timp ce se creează un set de imagini finale, imaginile trebuie aranjate în ordinea descrescătoare a coeficientului de corelație.

Coeficientul de corelație poate fi, de asemenea, utilizat pentru compararea histogramei culorilor. Rezultatele de recuperare cu coeficientul de corelație sunt mai bune decât în ​​cazul altor valori.

Histograma de intensitate a datelor continue

Ideea unei histograme de intensitate poate fi generalizată la date continue, să spunem semnale audio reprezentate de funcții reale sau imagini reprezentate de funcții cu domeniu bidimensional .

Fie (vezi spațiul Lebesgue ), apoi operatorul de histogramă cumulată poate fi definit prin:

.

este măsura Lebesgue a seturilor. la rândul său este o funcție reală . Histograma (non-cumulativă) este definită ca derivată a acesteia .

.

Referințe

linkuri externe