• Nie Znaleziono Wyników

5.10 Wyznaczenie parametrów poszczególnych obiektów na obrazie

5.10.1 Obwód obiektu

W celu wyznaczenia wartości współczynnika zwartości konieczne jest wyznaczenie ob-wodu obiektu. Dostępnych jest wiele metod wyznaczania obob-wodu figur, opisanych np.

w pracach wymienionych poniżej [17], [41], [60], [63], [84]. Najbardziej znane metody wyznaczania obwodu:

1. Obwód obiektu równy jest liczbie elementów brzegowych obiektu. Jest to metoda najprostsza ale wprowadza stosunkowo duży błąd pomiarowy.

2. Brzeg obszaru tworzy kontur zamknięty. Obwód obiektu jest równy sumie długości odcinków łączących środki elementów tego konturu. Przyjmuje się, że element kon-turu jest kwadratem o boku jednostkowej długości. Metoda ta jest dokładniejsza niż metoda zliczania punktów brzegowych.

8W książce [49] jak również w materiałach dostępnych w internecie można znaleźć nieco odmienny wzór na niecentryczność: R(i)c =

(

M20(i)−M02(i))2 +4(

M11(i))2

S(i) , najwidoczniej jest to powielany błąd, gdyż tak policzony współczynnik Rc dla obiektów z rysunku 5.27a potrafi znacznie się różnić pomiędzy poszczególnymi figurami.

3. Metoda RL, opisana w pracach [17], [60], [63]. Obwód obiektu wyznaczony jest na podstawie zależności:

O(i)= aoNb(i)− boNw(i), (5.39) gdzie Nb(i) jest liczbą boków kwadratów będących kolejnymi elementami konturu, leżących na zewnętrz i-tego obiektu, Nw(i) jest liczbą elementów konturu oraz:

a = π(1+

2

8 , b = 8π2. (5.40)

Metoda zapewnia ocenę długości o zerowej wartości średniej i minimalnej wariancji dla odcinków nachylonych pod różnym kątem.

W pracy wykorzystano metodę wyznaczenia obwodu obiektu, polegającą na wyzna-czeniu średniej z dwóch ocen długości (rys. 5.21). Pierwsza ocena Ominjest równa sumie długości odcinków łączących środki pikseli należących do konturu obiektu. Długość dru-giego obwodu Omaxjest równa sumie długość odcinków łączących środki elementów tła, sąsiadujących z pikselami konturu figury. Obwód figury wyznaczany jest z wzoru:

O(i)= 1

gdzie O(i)min i O(i)max oznaczają wewnętrzny i zewnętrzny obwód i-tego obiektu.

∆Omin= 0

Rysunek 5.21: Obwód figury, Omin - wewnętrzny obwód, Omax - zewnętrzny obwód.

Wyznaczenie długości obwodów O(i)min i Omax(i) można zrealizować poprzez znalezie-nie piksela należącego do konturu obiektu a następznalezie-nie podążaznalezie-nie wzdłuż brzegu aż do powrotu do miejsca startowego. Algorytm wyznaczania brzegu (konturu) obszaru ana-lizowanego obiektu może mieć postać9:

1. Przeglądamy obraz JI(x, y) wiersz po wierszu (obszar ograniczony zmiennymi x(i)min, x(i)max, ymin(i) , ymax(i) ) aż do znalezienia pierwszego piksela należącego do anali-zowanej figury. Oznaczamy ten piksel symbolem P0 (początkowy punkt konturu).

Definiujemy zmienną K, pamiętającą kierunek poprzedniego ruchu wzdłuż anali-zowanego brzegu figury (od poprzedniego punktu Pn−1 do aktualnego punktu Pn

konturu).

(a) dla 4-sąsiedztwa: K=3 (b) dla 8-sąsiedztwa: K=7

9Na podstawie anonimowego opracowania znalezionego w internecie.

2. Przeszukujemy sąsiedztwo aktualnego piksela (w obszarze 3× 3) obracając się przeciwnie do ruchu wskazówek zegara (zgodnie z numeracją kierunków podaną na rysunku 5.22), rozpoczynając od kierunku:

(a) dla 4-sąsiedztwa:

(K+3) mod 4 (b) dla 8-sąsiedztwa:

(K+7) mod 8, gdy K jest liczbą parzystą (K+6) mod 8, gdy K jest liczbą nieparzystą

Pierwszy znaleziony piksel, należący do analizowanego obiektu, stanowi nowy ele-ment konturu Pn. Uaktualniamy wartość zmiennej K, tak aby wskazywała kierunek ruchu z punktu Pn−1 do punktu Pn.

3. Jeśli dojdziemy do punktu startowego, tzn. Pn= P1 i Pn−1 = P0, kończmy dzia-łanie algorytmu. W przeciwnym wypadku przechodzimy do punktu 2.

4. kontur obiektu określają piksele P0, . . . , Pn−2.

Tak wyznaczony kontur figury (zbiór pikseli P0, . . . , Pn−1) możemy wykorzystać do wy-znaczenia wewnętrznego obwodu obiektu.

kierunki poszukiwań

dla 4-sąsiedztwa

kierunki poszukiwań

dla 8-sąsiedztwa

Rysunek 5.22: Kierunki poszukiwań kolejnych punktów konturu figury dla 4-sąsiedztwa i 8-sąsiedztwa. Poniżej pokazane są kontury dla przykładowego obiektu.

W powstałym systemie wizyjnym wykorzystano odmienne podejście do wyznacze-nia obwodu analizowanego obiektu. Zrezygnowana z śledzewyznacze-nia konturu figury. Zamiast tego, zdefiniowano maski obrazu przedstawione na rysunku 5.23. Symbol X oznacza wyróżniony punkt maski, oznaczający położenie aktualnie testowanego piksela obrazu.

Białe pole oznacza piksel tła natomiast szare pole oznacza piksel należący do obiektu.

Z każdą maską obrazu związane są współczynniki ∆Omin i ∆Omax określające o jaką wartość powinien być zwiększony wewnętrzny Omin(i) i zewnętrzny O(i)max obwód obiektu dla aktualnie testowanego piksela.

Procedura wyznaczania długości obwodu wewnętrznego Omin(i) i zewnętrznego O(i)max, oraz właściwego obwodu obiektu O(i) przebiega następująco:

1. Zerujemy długości obwodów: Omin(i) = 0 i Omax(i) = 0.

∆Omin= 0

∆Omax= 2

∆Omin= 2

∆Omax= 0

∆Omin= 1

∆Omax= 1

∆Omin= 2 2

∆Omax= 0

∆Omin= 0

∆Omax= 0

Rysunek 5.23: Maski obrazu wraz z współczynnikami długości obwodu, używane podczas wyznaczania długości obwodu figury.

2. Przeglądamy obraz JI(x, y) wiersz po wierszu (obszar ograniczony zmiennymi x(i)min, x(i)max, ymin(i) , ymax(i) ). Dla każdego analizowanego piksela obrazu sprawdza-my dopasowanie sąsiadujących pikseli do zdefiniowanych masek obrazu i na tej podstawie zwiększamy długości obwodów O(i)min i O(i)max o przypisaną dla danej maski długość ∆Omin i ∆Omax (rys. 5.23).

O(i)min= O(i)min+ ∆Omin(x, y)

O(i)max= O(i)max+ ∆Omax(x, y) (5.42) gdzie ∆Omin(x, y) i ∆Omax(x, y) oznaczają przyrosty ∆Omin i ∆Omaxw punkcie o współrzędnych (x, y).

3. Na koniec ze wzoru (5.41) wyznaczamy długość obwodu obiektu.

Proponowany algorytm jest wydajny dla obrazów o niedużej rozdzielczości i może być stosowany, gdy nie interesuje nas wyznaczenie punktów konturu obiektu ale chcemy je-dynie określić długość jego obwodu. Przy jednokrotnym przejrzeniu obrazu, wyznaczany jest jednocześnie obwód wewnętrzny i zewnętrzny. Wraz ze wzrostem rozdzielczości ob-razu, ilość wykonywanych operacji znacząco rośnie (dwukrotne zwiększenie rozmiaru obrazu w osi x i y powoduje konieczność przejrzenia czterokrotnie większej liczby pikse-li). W przypadku algorytmu śledzenia konturu, liczba operacji (analizowanych punktów konturu) rośnie liniowo wraz ze wzrostem rozmiaru obrazu. Dlatego też, algorytmy ba-zujące na śledzeniu konturu są efektywniejsze dla obiektów o dużych rozmiarach.

Ważną różnicą między przedstawionymi algorytmami jest uwzględnienie obecności wewnętrznego brzegu figury (rys 5.24). Gdy analizowana figura nie posiada wewnętrz-nych ubytków, dla obu metod otrzymujemy podobną długość obwodu figury (w drugiej metodzie uwzględniony jest również obwód zewnętrzny, stąd wskazywana długość ob-wodu będzie trochę większa). W przypadku obiektów posiadających wewnętrzne „ubyt-ki”, metoda polegająca na wyznaczeniu pikseli konturu obiektu zwraca jedynie długość

a) b)

Rysunek 5.24: Piksele obiektu biorące udział w wyznaczaniu długości obwodu. Białe pola - piksele tła, ciemno szare pola - piksele obiektu biorące udział w obliczaniu długości obwodu figury. a) w przypadku algorytmu śledzenia konturu; b) w przypadku algorytmu wykorzystującego maski obrazu.

zewnętrznego konturu, zupełnie pomijając wewnętrzny kontur obiektu. W przypadku drugiej metody analizowane są wszystkie piksele obrazu bez rozróżnienia zewnętrznego i wewnętrznego konturu obiektu. Otrzymana długość obwodu jest sumą długości konturu zewnętrznego oraz długości wszystkich konturów wewnętrznych.