Histogram kolorów

W przetwarzaniu obrazu i fotografii histogram kolorów jest reprezentacją rozkładu kolorów na obrazie . W przypadku obrazów cyfrowych histogram kolorów reprezentuje liczbę pikseli , które mają kolory w każdym z ustalonych zakresów kolorów obejmujących przestrzeń kolorów obrazu , zestaw wszystkich możliwych kolorów.

Histogram kolorów można zbudować dla dowolnego rodzaju przestrzeni kolorów, chociaż termin ten jest częściej używany w odniesieniu do przestrzeni trójwymiarowych, takich jak RGB lub HSV . W przypadku obrazów monochromatycznych zamiast tego można użyć terminu histogram intensywności . W przypadku obrazów multispektralnych, w których każdy piksel jest reprezentowany przez dowolną liczbę pomiarów (na przykład poza trzema pomiarami w RGB), histogram kolorów jest N -wymiarowy, gdzie N oznacza liczbę wykonanych pomiarów. Każdy pomiar ma swój własny zakres długości fal widma światła, z których część może znajdować się poza widmem widzialnym.

Jeśli zestaw możliwych wartości kolorów jest wystarczająco mały, każdy z tych kolorów może być umieszczony osobno w zakresie; wówczas histogram jest jedynie liczbą pikseli, które mają każdy możliwy kolor. Najczęściej przestrzeń dzieli się na odpowiednią liczbę zakresów, często ułożonych w regularną siatkę, z których każdy zawiera wiele podobnych wartości kolorystycznych. Histogram kolorów może być również reprezentowany i wyświetlany jako płynna funkcja zdefiniowana w przestrzeni kolorów, która przybliża liczbę pikseli.

Podobnie jak inne rodzaje histogramów , histogram kolorów jest statystyką , którą można postrzegać jako przybliżenie podstawowego ciągłego rozkładu wartości kolorów.

Przegląd

Histogramy kolorów to elastyczne konstrukcje, które można budować z obrazów w różnych przestrzeniach kolorów , czy to RGB , chromatyczności rg , czy dowolnej innej przestrzeni kolorów o dowolnym wymiarze. Histogram obrazu jest tworzony najpierw przez dyskretyzację kolorów obrazu na pewną liczbę pojemników i zliczanie liczby pikseli obrazu w każdym przedziale. Na przykład histogram chromatyczności czerwono-niebieskiej można utworzyć, najpierw normalizując wartości kolorowych pikseli, dzieląc wartości RGB przez R + G + B, a następnie kwantyzując znormalizowane współrzędne R i B na N przedziałów każdy. Dwuwymiarowy histogram chromatyczności czerwono-niebieskiej podzielony na cztery przedziały ( N = 4) może dać histogram, który wygląda jak w poniższej tabeli:

  czerwony
0-63 64-127 128-191 192-255
niebieski 0-63 43 78 18 0
64-127 45 67 33 2
128-191 127 58 25 8
192-255 140 47 47 13

Histogram może być N-wymiarowy. Choć trudniejszy do wyświetlenia, trójwymiarowy histogram kolorów dla powyższego przykładu można traktować jako cztery osobne histogramy czerwono-niebieskie, gdzie każdy z czterech histogramów zawiera wartości czerwono-niebieskie dla przedziału zieleni (0-63, 64 -127, 128-191 i 192-255).

Histogram zapewnia zwięzłe podsumowanie rozkładu danych na obrazie. Histogram kolorów obrazu jest stosunkowo niezmienny w przypadku translacji i obrotu wokół osi oglądania i zmienia się tylko powoli wraz z kątem widzenia. Porównując sygnatury histogramów dwóch obrazów i dopasowując zawartość kolorów jednego obrazu do drugiego, histogram kolorów jest szczególnie dobrze dostosowany do problemu rozpoznawania obiektu o nieznanym położeniu i obrocie w obrębie sceny. Co ważne, translacja obrazu RGB do niezmiennej dla oświetlenia przestrzeni rg-chromatyczności umożliwia dobre działanie histogramu przy różnych poziomach oświetlenia.

1. Co to jest histogram?

Histogram jest graficzną reprezentacją liczby pikseli obrazu. Mówiąc prościej, histogram jest wykresem słupkowym, którego oś X reprezentuje skalę tonalną (czarny po lewej i biały po prawej), a oś Y reprezentuje liczbę pikseli obrazu w określonej obszar skali tonalnej. Na przykład wykres histogramu luminancji pokazuje liczbę pikseli dla każdego poziomu jasności (od czerni do bieli), a gdy jest więcej pikseli, wartość szczytowa na określonym poziomie luminancji jest wyższa.

2. Co to jest histogram kolorów?

Histogram kolorów obrazu przedstawia rozkład kompozycji kolorów na obrazie. Pokazuje różne rodzaje pojawiających się kolorów i liczbę pikseli w każdym typie pojawiających się kolorów. Zależność między histogramem koloru a histogramem luminancji polega na tym, że histogram koloru można również wyrazić jako „trzy histogramy luminancji”, z których każdy przedstawia rozkład jasności każdego kanału koloru czerwonego/zielonego/niebieskiego.

Charakterystyka histogramu barwnego

Histogram kolorów koncentruje się tylko na proporcjach liczby różnych rodzajów kolorów, niezależnie od przestrzennego rozmieszczenia kolorów. Wartości histogramu koloru pochodzą ze statystyk. Pokazują one statystyczny rozkład kolorów i zasadniczy ton obrazu.

Ogólnie rzecz biorąc, ponieważ rozkłady kolorów pierwszego planu i tła na obrazie są różne, na histogramie może występować rozkład bimodalny.

W przypadku samego histogramu luminancji nie ma idealnego histogramu i ogólnie histogram może stwierdzić, czy doszło do prześwietlenia, czy nie, ale są chwile, kiedy patrząc na histogram można pomyśleć, że obraz jest prześwietlony; jednak w rzeczywistości tak nie jest.

Zasady tworzenia histogramu barwnego

Tworzenie histogramu koloru jest raczej proste. Z powyższej definicji możemy po prostu policzyć liczbę pikseli dla każdych 256 skal w każdym z 3 kanałów RGB i wykreślić je na 3 indywidualnych wykresach słupkowych.

Zasadniczo histogram kolorów jest oparty na określonej przestrzeni kolorów, takiej jak RGB lub HSV. Kiedy obliczamy piksele różnych kolorów na obrazie, jeśli przestrzeń kolorów jest duża, możemy najpierw podzielić przestrzeń kolorów na pewną liczbę małych przedziałów. Każdy z przedziałów nazywa się koszem. Ten proces nazywa się kwantyzacją kolorów. Następnie, licząc liczbę pikseli w każdym z pojemników, otrzymujemy histogram kolorów obrazu.

Konkretne etapy zasad można zobaczyć w przykładzie 1.

Przykłady

Przykład 1

Biorąc pod uwagę poniższy obraz kota (wersja oryginalna i wersja, która została zredukowana do 256 kolorów dla ułatwienia histogramu), poniższe dane reprezentują histogram kolorów w przestrzeni kolorów RGB, używając czterech pojemników.

Bin 0 odpowiada intensywnościom 0-63

Pojemnik 1 to 64-127

Pojemnik 2 to 128-191, a Pojemnik 3 to 192-255.

A picture a cat
Zdjęcie kota
Histogram kolorów powyższego zdjęcia kota, gdzie oś x to RGB, a oś y to częstotliwość.
A picture of a cat that has been reduced to 256 colors
Zdjęcie kota zredukowane do 256 kolorów w przestrzeni kolorów RGB
Czerwony Zielony Niebieski Liczba pikseli
Kosz 0 Kosz 0 Kosz 0 7414
Kosz 0 Kosz 0 Kosz 1 230
Kosz 0 Kosz 0 Kosz 2 0
Kosz 0 Kosz 0 Kosz 3 0
Kosz 0 Kosz 1 Kosz 0 8
Kosz 0 Kosz 1 Kosz 1 372
Kosz 0 Kosz 1 Kosz 2 88
Kosz 0 Kosz 1 Kosz 3 0
Kosz 0 Kosz 2 Kosz 0 0
Kosz 0 Kosz 2 Kosz 1 0
Kosz 0 Kosz 2 Kosz 2 10
Kosz 0 Kosz 2 Kosz 3 1
Kosz 0 Kosz 3 Kosz 0 0
Kosz 0 Kosz 3 Kosz 1 0
Kosz 0 Kosz 3 Kosz 2 0
Kosz 0 Kosz 3 Kosz 3 0
Kosz 1 Kosz 0 Kosz 0 891
Kosz 1 Kosz 0 Kosz 1 13
Kosz 1 Kosz 0 Kosz 2 0
Kosz 1 Kosz 0 Kosz 3 0
Kosz 1 Kosz 1 Kosz 0 592
Kosz 1 Kosz 1 Kosz 1 3462
Kosz 1 Kosz 1 Kosz 2 355
Kosz 1 Kosz 1 Kosz 3 0
Kosz 1 Kosz 2 Kosz 0 0
Kosz 1 Kosz 2 Kosz 1 101
Kosz 1 Kosz 2 Kosz 2 882
Kosz 1 Kosz 2 Kosz 3 16
Kosz 1 Kosz 3 Kosz 0 0
Kosz 1 Kosz 3 Kosz 1 0
Kosz 1 Kosz 3 Kosz 2 0
Kosz 1 Kosz 3 Kosz 3 0
Kosz 2 Kosz 0 Kosz 0 1146
Kosz 2 Kosz 0 Kosz 1 0
Kosz 2 Kosz 0 Kosz 2 0
Kosz 2 Kosz 0 Kosz 3 0
Kosz 2 Kosz 1 Kosz 0 2552
Kosz 2 Kosz 1 Kosz 1 9040
Kosz 2 Kosz 1 Kosz 2 47
Kosz 2 Kosz 1 Kosz 3 0
Kosz 2 Kosz 2 Kosz 0 0
Kosz 2 Kosz 2 Kosz 1 8808
Kosz 2 Kosz 2 Kosz 2 53110
Kosz 2 Kosz 2 Kosz 3 11053
Kosz 2 Kosz 3 Kosz 0 0
Kosz 2 Kosz 3 Kosz 1 0
Kosz 2 Kosz 3 Kosz 2 170
Kosz 2 Kosz 3 Kosz 3 17533
Kosz 3 Kosz 0 Kosz 0 11
Kosz 3 Kosz 0 Kosz 1 0
Kosz 3 Kosz 0 Kosz 2 0
Kosz 3 Kosz 0 Kosz 3 0
Kosz 3 Kosz 1 Kosz 0 856
Kosz 3 Kosz 1 Kosz 1 1376
Kosz 3 Kosz 1 Kosz 2 0
Kosz 3 Kosz 1 Kosz 3 0
Kosz 3 Kosz 2 Kosz 0 0
Kosz 3 Kosz 2 Kosz 1 3650
Kosz 3 Kosz 2 Kosz 2 6260
Kosz 3 Kosz 2 Kosz 3 109
Kosz 3 Kosz 3 Kosz 0 0
Kosz 3 Kosz 3 Kosz 1 0
Kosz 3 Kosz 3 Kosz 2 3415
Kosz 3 Kosz 3 Kosz 3 53929

Przykład 2

Symcamera1.jpg
Symcamera2.jpg
Symcamera3.jpg

Zastosowanie w aparacie:

Obecnie niektóre aparaty mają możliwość wyświetlania 3-kolorowych histogramów podczas robienia zdjęć.

Możemy badać klipy (kolce po czarnej lub białej stronie skali) na każdym z 3 histogramów kolorów RGB. Jeśli znajdziemy jedno lub więcej obcięć na kanale z 3 kanałów RGB, spowoduje to utratę szczegółów dla tego koloru.

Aby to zilustrować, rozważ ten przykład:

1. Wiemy, że każdy z trzech kanałów R, G, B ma zakres wartości od 0-255(8 bitów). Weźmy więc pod uwagę zdjęcie, które ma zakres luminancji 0-255.

2. Załóżmy, że zdjęcie, które robimy, składa się z 4 sąsiadujących ze sobą bloków i ustawiliśmy skalę luminancji dla każdego z 4 bloków oryginalnego zdjęcia na 10, 100, 205, 245. Tak więc obraz wygląda jak najwyższa postać po prawej stronie.

3. Następnie nieco prześwietlamy zdjęcie, powiedzmy, skala luminancji każdego bloku zostaje zwiększona o 10. Zatem skala luminancji dla każdego z 4 bloków nowego zdjęcia wynosi 20, 110, 215, 255. Następnie obraz wygląda jak drugi rysunek po prawej stronie.

Nie ma dużej różnicy między rysunkiem 8 a rysunkiem 9, widzimy tylko, że cały obraz staje się jaśniejszy (kontrast dla każdego z bloków pozostaje taki sam).

4. Teraz ponownie naświetlamy oryginalne zdjęcie, tym razem skala luminancji każdego bloku jest zwiększona o 50. Zatem skala luminancji dla każdego z 4 bloków nowego zdjęcia wynosi 60, 150, 255, 255. Nowe obraz wygląda teraz jak trzeci rysunek po prawej stronie.

Zauważ, że skala dla ostatniego bloku to 255 zamiast 295, ponieważ 255 to górna skala, a zatem ostatni blok został obcięty! Kiedy tak się dzieje, tracimy kontrast ostatnich 2 bloków, a zatem nie możemy odzyskać obrazu bez względu na to, jak go dostosujemy.

Podsumowując, robiąc zdjęcia aparatem wyświetlającym histogramy, zawsze utrzymuj najjaśniejszy ton zdjęcia poniżej największej skali 255 na histogramie, aby uniknąć utraty szczegółów.

Wady i inne podejścia

Główną wadą histogramów do klasyfikacji jest to, że reprezentacja zależy od koloru badanego obiektu, ignorując jego kształt i teksturę. Histogramy kolorów mogą potencjalnie być identyczne dla dwóch obrazów z różną zawartością obiektów, które mają wspólne informacje o kolorach. I odwrotnie, bez informacji o przestrzeni lub kształcie podobne obiekty o różnych kolorach mogą być nie do odróżnienia na podstawie wyłącznie porównań histogramów kolorów. Nie ma sposobu, aby odróżnić czerwono-biały kubek od czerwono-białego talerza. Innymi słowy, algorytmy oparte na histogramie nie mają pojęcia o ogólnym „filiżance”, a model czerwono-białego kubka jest bezużyteczny, gdy otrzyma się identyczny niebiesko-biały kubek. Innym problemem jest to, że histogramy kolorów mają dużą wrażliwość na szumy, takie jak zmiany natężenia oświetlenia i błędy kwantyzacji. Innym problemem są również histogramy kolorów o wysokiej wymiarowości (pojemniki). Niektóre przestrzenie cech histogramu kolorów często zajmują więcej niż sto wymiarów.

Niektóre z proponowanych rozwiązań to przecięcie histogramu kolorów, indeksowanie stałych kolorów, skumulowany histogram kolorów, odległość kwadratowa i korelogramy kolorów . Chociaż istnieją wady używania histogramów do indeksowania i klasyfikacji, używanie kolorów w systemie czasu rzeczywistego ma kilka zalet. Jednym z nich jest szybsze obliczenie informacji o kolorze w porównaniu z innymi niezmiennikami. W niektórych przypadkach wykazano, że kolor może być skuteczną metodą identyfikacji obiektów o znanej lokalizacji i wyglądzie.

Dalsze badania nad zależnością między danymi histogramu kolorów a właściwościami fizycznymi obiektów na obrazie wykazały, że mogą one reprezentować nie tylko kolor obiektu i oświetlenie, ale także odnosić się do chropowatości powierzchni i geometrii obrazu oraz zapewniać lepsze oszacowanie oświetlenia i koloru obiektu.

Zwykle do obliczania ocen podobieństwa obrazów stosuje się odległość euklidesową, przecięcie histogramu lub odległości cosinusowe lub kwadratowe. Żadna z tych wartości sama w sobie nie odzwierciedla współczynnika podobieństwa dwóch obrazów; jest użyteczna tylko wtedy, gdy jest używana w porównaniu z innymi podobnymi wartościami. To jest powód, dla którego wszystkie praktyczne implementacje wyszukiwania obrazów w oparciu o treść muszą kończyć obliczenia wszystkich obrazów z bazy danych, co jest główną wadą tych implementacji.

Innym podejściem do reprezentatywnej zawartości obrazu kolorowego jest dwuwymiarowy histogram kolorów. Dwuwymiarowy histogram kolorów uwzględnia relacje między kolorami par pikseli (nie tylko składową oświetlenia). Dwuwymiarowy histogram kolorów to tablica dwuwymiarowa. Rozmiar każdego wymiaru to liczba kolorów użytych w fazie kwantyzacji kolorów. Tablice te są traktowane jako macierze, których każdy element przechowuje znormalizowaną liczbę par pikseli, przy czym każdy kolor odpowiada indeksowi elementu w każdym sąsiedztwie piksela. W celu porównania dwuwymiarowych histogramów kolorów sugeruje się obliczenie ich korelacji, ponieważ skonstruowany w sposób opisany powyżej jest wektorem losowym (innymi słowy wielowymiarową wartością losową). Tworząc zestaw końcowych obrazów, obrazy należy ułożyć w malejącej kolejności współczynnika korelacji.

Współczynnik korelacji można również wykorzystać do porównania histogramu kolorów. Wyniki wyszukiwania ze współczynnikiem korelacji są lepsze niż z innymi metrykami.

Histogram intensywności danych ciągłych

domenie dwuwymiarowej .

Niech (patrz przestrzeń Lebesgue'a , to skumulowany operator histogramu może być określony przez:

.

jest miarą . z kolei jest funkcją rzeczywistą . Histogram (nieskumulowany) jest definiowany jako jego pochodna .

.

Linki zewnętrzne