• Nie Znaleziono Wyników

5.5 Segmentacja obrazu - progowanie

5.5.1 Progowanie globalne

Jedną z najprostszych metod wydzielania obszarów jest progowanie, które polega na po-równaniu jasności każdego punktu obrazu z zadaną wartością progową. Jeżeli wartość

progu binaryzacji jest stała dla całego obszaru obrazu, mówimy o progowaniu global-nym. FunkcjaT (O, τ), realizująca operację progowania obrazu dla stałej wartości progu zdefiniowana jest następująco

T : O, NJ → O JT =T (J, τ) =

{ Jm, J(x, y) > τ

0, J(x, y) < τ , (5.3)

gdzie τ ∈ NJ oznacza wartość progu binaryzacji obrazu. Wartość wyjściowa obrazu wy-nikowego na poziomie Jm= 255 jest wartością arbitralną i została ustalona ze względu na sposób wyświetlania obrazów w programie4.

Wybór poziomu progowania τ jest trudny. Na przeszkodzie z jednej strony stoi du-że zróżnicowanie jasności poszczególnych części obrazu, z drugiej natomiast zmienne warunki oświetlenia, powodujące zmienny poziom jasności otrzymywanych obrazów.

Dlatego też zaimplementowano i przetestowano szereg metod automatycznego doboru poziomu progowania obrazu. Sprawdzono cztery metody wyznaczania wartości global-nego poziomu progowania obrazu oraz dwie metody lokalglobal-nego progrowania obrazu.

Rysunek 5.4 przedstawia wynik działania zaimplementowanych metod progowania gloalnego5. Zaimplementowane metody progowania globalnego to: metoda oparta na analizie histogramu, metoda gradientowa [61], metoda Otsu dla dwóch klas oraz metoda Otsu dla trzech klas [44], [58]. Na pierwszym rysunku przedstawiono przykładowy obraz oryginalny, kolejne natomiast przedstawiają obraz wynikowy po zastosowaniu jednej z wymienionych metod progowania globalnego. Zdjęcie zostało wybrane w taki sposób, aby pokazać niedoskonałości wykorzystania progowania globalnego w procesie segmen-tacji obrazu. Ze względu na często pojawiające się nierównomierne oświetlenie sceny, progowanie globalne nie gwarantuje jednoznacznego rozdzielenia poziomu jasności tła (powierzchnia sita) oraz obiektu (szukany otwór). W takich przypadkach nie jest moż-liwe dobranie jednego poziomu progowania, odpowiedniego dla całego obrazu.

Automatyczne metody wyznaczania poziomu progowania, np. metody bazujące na analizie histogramu obrazu, w tym przypadku dostarczają zbyt wysokiej wartości pozio-mu progowania, co sprawia że otrzymywany jest obraz, w którym część tła (powierzchnia sita) rozpoznawana jest jako fragment otworu (rys. 5.4c,d,e). Jak widać na rysunkach 5.4d i 5.4e, możliwe jest nawet połączenie sąsiadujących otworów. W przypadku zasto-sowania metody Otsu zakładającej możliwość wystąpienia dwóch poziomów progowania (obraz dzielimy na trzy klasy: tło, obiekt jaśniejszy, obiekt ciemniejszy) otrzymujemy za-dowalające odseparowanie szukanego obiektu od tła (rys. 5.4f). W tym przypadku widzi-my jednak, że w narożnikach obrazu, kolor czarny odpowiadający szukanemu obiektowi został przypisany powierzchni sita. Zastosowanie metody Otsu dla trzech klas zwięk-sza niezawodność działania etapu segmentacji obrazu. Odporność systemu wizyjnego na nierównomierne warunki oświetlenia wciąż nie była zadowalająca. Zdecydowanie lepsze rezultaty osiąga się wykorzystując metodę lokalnego progowania obrazu, w której dla każdego piksela obrazu wyznacza się odpowiedni poziom progowania (rys. 5.9f).

Metody wyznaczania wartości globalnego poziomu progowania najczęściej opierają się na analizie histogramu obrazu H(Ji), zdefiniowanego następująco

H = {h(J0), h(J1), ..., h(Jm)}, (5.4) gdzie h(Ji) jest rzędną histogramu, przedstawiającą udział pikseli w obrazie o danym stopniu jasności Ji.

4Ponieważ wartość pikseli równa 255 oznacza kolor biały a wartość równa 0 kolor czarny, obrazy będące wynikiem progowania obrazu mogą być wyświetlane za pomocą tych samych funkcji programu co obrazy o odcieniach szarości.

5Wszystkie zaimplementowane metody progowania opisane są między innymi w książce prof. Maliny [49], przyjęte w pracy nazewnictwo metod jest zgodne z podaną publikacją.

a) b)

c) d)

e) f)

h(Ji)

Ji

Rysunek 5.4: Wynik progowania obrazu - progowanie globalne. a) obraz oryginalny;

b) histogram obrazu; c) metoda iteracyjna znajdowania progu, bazująca na analizie histogramu; d) metoda gradientowa; e) metoda Otsu dla 2 klas; f) metoda Otsu dla 3 klas

h(Ji) =

Sx−1 x=0

Sy−1 y=0

gi(x, y), (5.5)

gdzie

gi(x, y) = {

1, J (x, y) = Ji

0, J (x, y) ̸= Ji

(5.6)

Metoda oparta na analizie histogramu

Gdy na obrazie mamy jeden, wyraźnie widoczny obiekt, histogram ma rozkład bi-modalny. Wartość progu odpowiada minimum położonemu między dwoma szczytami (rys. 5.5a). Często trudno jest jednoznacznie określić położenie takiego minimum, szcze-gólnie gdy oba piki są różnej wysokości, lub jak na rysunku 5.4b, pomiędzy szczytem odpowiadającym poziomowi jasności pikseli obiektu a szczytem odpowiadającym pozio-mowi jasności pikseli tła występują lokalne piki odpowiadające niejednorodnemu oświe-tleniu tła (powierzchni sita). Jeszcze trudniejsza jest sytuacja, gdy jak na rysunku 5.5b

’dolina’ między pikami jest płaska, szeroka oraz występują liczne zakłócenia.

a) b)

0 τ Jm 0 τ Jm

d

A

B

h(Ji) h(Ji)

pik obiektów pik tła

Rysunek 5.5: Przykładowe histogramy. a) bimodalny b) z jednym pikiem [49]

W tym przypadku do znalezienia wartości progu można zastosować metodę "trójką-ta". Na początku konstruowana jest linia prosta łącząca maksimum i minimum histo-gramu (punkty A i B). Punktom tym odpowiadają jasności Jmin i Jmax. Badana jest odległość wykreślonej linii od histogramu H(Ji) dla J ∈ (Jmin, Jmax). W charakterze progu wybierana jest taka wartość jasności obrazu τ , dla której odległość d jest maksy-malna. Metoda trójkąta jest efektywna gdy piksele obiektu (ciemne) mają niski szczyt na histogramie. Gdy histogram jest zaszumiony, warto dokonać jego wygładzenia.

Metoda iteracyjna znajdowania progu

Powyższe podejście można zrealizować iteracyjnie według następującego schematu [49]:

1. Przyjmij początkową wartość progu τ .

2. Oblicz średnią wartość czerni µcz wszystkich pikseli poniżej progu τ (tzn. w hi-stogramie położonych na lewo od progu τ ).

3. Oblicz średnią wartość bieli µb wszystkich pikseli powyżej progu τ . 4. Oblicz nową wartość progu

τ = µcz+ µb

2 , (5.7)

gdzie µcz i µb można liczyć na podstawie wzorów opisanych w metodzie Otsu dla dwóch klas.

5. Powtarzaj obliczenia, aż zostanie spełniony warunekn− τn−1| < ε.

Inną metodą wyznaczania wartości progu globalnego na podstawie znajomości hi-stogramu obrazu jest metoda Otsu dla dwóch klas [55], [58], [66]. Ponieważ szukany na obrazie obiekt jest bardzo ciemny (wnętrze otworu), metoda Otsu dla trzech klas, po-woduje wybranie progu na niższym poziomie niż otrzymywany na podstawie innych przedstawionych metod wyznaczania wartości progu globalnego, włącznie z metodą

Otsu zdefiniowaną dla dwóch klas. Powoduje to, że uzyskiwane rezultaty dla większości zdjęć otworów są akceptowalne, nawet jeśli na pokazanym zdjęciu nie cała powierzchnia sita została prawidłowo zaklasyfikowana (rys. 5.4f).

Metoda gradientowa

Najprostszą metodą wyznaczenia wartości progu globalnego, nie wymagającą konstru-owania histogramu, jest metoda bazująca na gradiencie jasności obrazu. Algorytm ob-liczania progu składa się z następujących kroków [49], [61]:

1. Wyznaczenie modułu gradientu jasności dla każdego punktu obrazu

G(x, y) = max{|Gx(x, y)|, |Gy(x, y)|}, (5.8) gdzieGx(x, y), Gy(x, y) są składowymi gradientu obrazu w punkcie (x, y):

Gx(x, y) =J (x + 1, y) − J (x − 1, y)

Gy(x, y) =J (x, y + 1) − J (x, y − 1). (5.9) 2. Obliczenie wartości progu według wzoru:

τ =

Ponieważ operacji Gx(x, y) i Gy(x, y) nie można wykonać na brzegu obrazu, obliczenia wykonujemy na obrazie pomniejszonym o 1 piksel z każdej strony zdjęcia.