Histogram obrazów

 

przygotował
Cezary Aniśko
cezary@anisko.net

 
 
 
 
        Cyfrowy obraz posiada tą cechę, że można wyznaczyć jego histogram, czyli wykres częstości występowania kolejnych wartości pikseli obrazu. Histogram pokazuje, jak liczne są w obrazie punkty o różnych wartościach jasności. Przyjmuje się, że pierwszy element histogramu ma numer 0, a ostatni Zmax, gdzie Zmax – zakres maksymalny. Zakładamy, że Zmax = 2n-1, jeżeli barwa jest reprezentowana przez „n” bitów. Analizowane obrazy, zawsze przed obróbką jakimkolwiek algorytmem, były konwertowane do postaci obrazów czarno-białych, tzn. reprezentowane były przez 256 odcieni szarości. Kodowanie 256-ciu odcieni szarości odbywa się na ośmiu bitach. Korzystając z tej wiedzy aplikacja buduje histogram, w którym pierwszy element ma wartość 0, a ostatni 255.
 

Zmin = 20-1 = 0
Zmax = 28-1 = 255
 

        Wartość każdego punktu osi poziomej histogramu równa jest liczbie punktów (pikseli) badanego obrazu o jasności równej wartości tego punktu. Graficznie wygląda to tak, że na osi X mamy poziomy jasności (od 0 do 2n-1, gdy n=8 to do 255), natomiast na osi Y mamy ilość punktów o danym poziomie jasności, zazwyczaj wyrażaną w procentach.
        Analiza histogramów obrazów cyfrowych jest bardzo pomocna w ich przetwarzaniu. Daje dużo informacji na temat obrabianego obrazu, m.in. o zakresie poziomów jasności oraz jak licznie są reprezentowane te poziomy.
 


        Wygląd obwiedni słupków wykresu histogramu przypomina rozkład normalny Gaussa. W rzeczywistości w pojęciu statystycznym histogram jest funkcją gęstości prawdopodobieństwa h(x). Pole histogramu (histogram zbiorczy):

gdzie:
h(x) - funkcja histogramu,
dx - przyrost wartości,
h(x)dx - wysokość kolejnego słupka histogramu.
 
Dla obrazów cyfrowych (dx jest skończone) histogram jest wyznaczany jako suma wszystkich pikseli o danej wartości znormalizowana przez liczbę wszystkich pikseli:
 

h(x)= SUMA(x)/N

gdzie:
SUMA(x) - liczba wszystkich pikseli o wartości x,
N - liczba pikseli (np. 512x512).

        Każdej wartości piksela odpowiada określony kolor. Histogram ukazując nam ile i jakie wartości pikseli występują w obrazie daje nam jednocześnie informacje o ilości kolorów, których można użyć do przedstawienia danego obrazu. Histogram informuje nas, więc o kontraście obrazu. Jeżeli dzwon histogramu jest wąski to znaczy, że bardzo dużo dopuszczalnych wartości pikseli się powtarza, czyli wystarczy zaledwie kilka kolorów do przedstawienia obrazu. W celu poprawienia kontrastu obrazu można zmodyfikować histogram. Do tego celu używa się transformacji jednego rozkładu wartości do drugiego rozkładu wartości pikseli. Transformacja ta jest opisywaną funkcją matematyczną, którą graficznie można przedstawić jako krzywą transformacji. W wyniku tej operacji powstaje nowy histogram, w którym pozostaje ta sama liczba słupków, lecz będą one przesunięte względem pozycji słupków histogramu oryginalnego.
        W oparciu o histogram można dokonać, zatem modyfikacji przypisania poszczególnych wartości obrazu do danej skali odcieni szarości. W przypadku obrazów satelitarnych jest to niezwykle istotne, gdyż dynamika wartości obrazu jest zwykle 24 bitowa (co oznacza 16 777 216 możliwych wartości w obrazie), a liczba odcieni szarości do dyspozycji przy wyświetlaniu jest ograniczona do zaledwie 256. Konieczna jest, zatem transformacja.
        Możliwość tworzenia własnych krzywych transformacji umożliwia nie tylko poprawienie kontrastu, ale również uwypuklenie tych wartości obrazu, które nas najbardziej w danych badaniach interesują. Można na przykład zadać, aby system wyświetlał tylko wartości większe od 150, albo przykładowo na przemian zadać wartościom nieparzystym kolor czarny a wartościom parzystym kolor żółty. Transformacja przydaje się również wówczas, gdy otrzymujemy obraz po określonej analizie. Wówczas dostępne są wartości pikseli z zakresu -1..1 i należy we właściwy sposób dobrać sposób wyświetlania obrazu.
        W oparciu o obliczony histogram obrazu możliwe jest wygenerowanie szeregu parametrów opisujących różne własności histogramu, i obrazu. Zdefiniowano szereg parametrów wykorzystujących obliczony już wcześniej histogram P(g):
- wartość średnia m

gdzie: g - wartość piksela,
P(g) - histogram,
L - liczba możliwych poziomów,
N - liczba wszystkich wartości.
 
- odchyłka standardowa s

- asymetria histogramu m3

lub obliczona jako:

- szerokość piku histogramu m 4

- energia E

- entropia H

 
Powyższe parametry wskazują na różne własności histogramu obrazu i mogą nadawać się do porównywania obrazów.

        W analizie obrazów satelitarnych bardzo istotne są narzędzia umożliwiające wyrysowanie regionów w obrazie. Regiony te, zwane ROI - regions of interest (interesujące regiony), stanowią podstawę do obliczania ich własności, np. według parametrów wymienionych wyżej czy własności geometrycznych (pole powierzchni, obwód), dzięki czemu możliwe jest klasyfikacja poszczególnych obszarów występujących w treści obrazów. Proces rysowania regionów może być zautomatyzowany poprzez metody segmentacji obrazów (grupowanie pikseli w regiony pod względem wybranego warunku jednorodności). W wyniku segmentacji obraz jest podzielony na liczbę regionów, znacznie mniejszą, niż całkowita liczba odcieni szarości w obrazie oryginalnym. Proste metody segmentacji mogą opierać się na progowaniu (tworzenie zakresów wartości) wykorzystując do tego policzony histogram. Budowa histogramu, a więc rodzaj i częstość występowania odcieni szarości, często jest podstawą do ustalenia wartości granicznych w poszczególnych progach.
 
 

  literatura (źródła)


 powrót do góry