• Nie Znaleziono Wyników

Wypełnienie konturów poszczególnych obiektów

x,y

JI(x, y) =TI(JI(x, y)). (5.26)

a) b)

Rysunek 5.18: Przedstawienie działania indeksacji obrazu. Szare tło oznacza kolor czar-ny na obrazie binarczar-nym. a) Obraz wynikowy po wykonaniu pierwszego etapu indeksacji obrazu; b) obraz wynikowy po wykonaniu trzeciego etapu indeksacji obrazu;

Rysunek 5.18 przedstawia końcowy wynik indeksacji obrazu przeprowadzonej dla przykładu z rysunku 5.15a. Efekt indeksacji obrazu przeprowadzonej na oryginalnym obrazie otrzymanym z kamery można zobaczyć na rysunku 5.13, na którym poszczegól-nym obiektom przypisano inny poziom jasności. Na widoczposzczegól-nym obrazie kolejne otwory mają przypisaną coraz jaśniejszą barwę. Tak przygotowany obraz jest wykorzystywany podczas wyznaczania parametrów znalezionych obiektów.

W przeciwieństwie do algorytmu indeksacji obrazu opisanego w książce [74], algo-rytm opisany w tym rozdziale powoduje rozdzielenie obiektów, których skrajne piksele łączy jedynie narożnik (np. obiekty 1 i 4 oraz 6 i 8 na rysunku 5.18b).

5.9 Wypełnienie konturów poszczególnych obiektów

Spawane do tej pory otwory mają kształt wypukły, tak więc na otrzymanych zdjęciach, wewnątrz ich obrysów nie powinny znajdować się białe plamy. Z powodu występowania różnego rodzaju zakłóceń zdarza się, że wewnątrz obrazu otworu znajdzie się biała plama - takie plamy widoczne są na rysunkach 5.10 i 5.19.

Najczęstsze przyczyny pojawiania się tego typu zakłóceń to:

1. Odblaski pochodzące z wnętrza rurki, pojawiające się z powodu pofałdowania powierzchni rurki (powierzchnia falista lub celowo wykonane wgniecenia, mają-ce na mają-celu wymuszenia turbulentnego przepływu czynnika roboczego przez rurkę) (rys. 5.19a). Sposób radzenia sobie z tego typu odblaskami opisany został w roz-dziale dotyczącym sklejania otworów (rozdział 6.2). Najlepszym sposobem elimi-nowania tego typu zakłóceń jest zapewnienie odpowiedniego oświetlenia sceny.

2. Przenikanie światła z drugiego końca rurki. Przy małej długości rurek oraz sto-sunkowo jasnej powierzchni po jej drugiej stronie, może się zdarzyć, że do kamery dotrze światło z jej drugiego końca. Jest to stosunkowo rzadka przyczyna po-wstawania zakłóceń i łatwo ją wyeliminować tym niemniej takie przypadki się zdarzają.

a) b)

Rysunek 5.19: Przykładowe zdjęcia w których występują zakłócenia wewnątrz konturu otworu. a) odblask pochodzący z wnętrza rurki; b) w rurce znajdującej się na górze obrazu widoczny jest kawałek metalu będący pozostałością po skracaniu jej długości.

3. Kawałki metalu odstające od krawędzi rurki (rys. 5.19b). W przypadku mechanicz-nego przycinania rurek do odpowiedniej długości zdarzało się czasem otrzymywać rurki z kawałkami metalu odstającymi w kierunku wnętrza rurki. Ręczna kon-trola wymiennika ciepła przed procesem spawania pozwala wyeliminować prawie wszystkie tego typu zakłócenia.

4. Błędy na etapie wstępnej obróbki obrazu. Pojawienie się białych plam wewnątrz obrazu otworu może być wynikiem niewłaściwie przeprowadzonej operacji progo-wania lokalnego.

Wypełnianie konturów obiektów realizowane jest zgodnie z następującą procedurą:

1. Przeglądamy obrazJI(x, y) wiersz po wierszu. W celu zwiększenia czytelności opi-su, wprowadzamy symbol yk oznaczający numer aktualnie analizowanego wiersza obrazu. Wraz z przeglądaniem kolejnych wierszy, yk zwiększa swą wartość od 0 do Sy− 1, gdzie Sy jest rozmiarem obrazu w osi y. Wprowadzamy również zmien-ną Iakt, przechowującą numer ostatnio napotkanego obiektu (wartość niezerowego piksela obrazuJI(x, y)) podczas przeglądania kolejnych pikseli obrazu. Piksele w danym wierszu obrazu przeglądamy po kolei w kierunku narastających wartości współrzędnych x. Na początku każdego k-tego wiersza, zmiennej Iakt przypisu-jemy wartość pierwszego piksela analizowanego wiersza, Iakt = JI(0, yk). jeżeli Iakt = 0, oznacza to, że analiza danego wiersza rozpoczyna się bez przypisanego numeru aktualnego obiektu.

2. Przeglądamy k-ty wiersz obrazu piksel po pikselu. Niech xj oznacza współrzędną x aktualnie przeglądanego piksela.

(a) Jeżeli nowy piksel należy do tła, tzn.JI(xj, yk) = 0, oraz Iakt = 0 (w danym wierszu nie napotkaliśmy jeszcze na piksel należący do jakiegoś obiektu), nie wykonujemy żadnych operacji.

(b) W momencie, gdy JI(xj, yk) > 0 (piksel jest już przydzielony do któregoś obiektu) oraz JI(xj, yk) ̸= Iakt, zapamiętujemy numer aktualnego obiektu Iakt=JI(xj, yk).

(c) JI(xj, yk) = 0 oraz Iakt> 0 oznacza, że natrafiliśmy na potencjalny początek

„dziur”, zapamiętujemy współrzędną x piksela (xpocz = xk) - początku dziury.

(d) JI(xj, yk) > 0 oraz JI(xj, yk) = Iakt oznacza, że znaleziono koniec „dziury”

i obszar między punktem (xpocz, yk) a (xj−1, yk) (włącznie z wymienionymi punktami) wypełniamy wartością Iakt.

3. Po zakończeniu analizy obrazu w poziomie (wiersz po wierszu), realizowane jest przeglądanie obrazu i wypełnianie „dziur” w pionie (kolumna za kolumną) zgodnie z procedurą przedstawioną dla wierszy (punkt 1 i 2).

a) b)

Rysunek 5.20: Przykład działania procedury wypełniania otworów. a) wejściowy obraz JI(x, y); b) obraz JI(x, y) będący wynikiem przeprowadzenia procedury wypełniania otworów.

Wynik działania przedstawionej procedury dla przykładowego obrazu JI pokazany jest na rysunku 5.20. Szare pola oznaczają czarne piksele na obrazie JB(x, y) (obraz czarnobiały będący wynikiem przeprowadzenia progowania obrazu). Jak widzimy, wnę-trza figur zostały wypełnione. Ponieważ jednak wypełnianie wnęwnę-trza figur odbywa się poprzez analizowanie linii w pionie i poziomie, wypełnienie otworów nie jest doskonałe:

1. W przypadku obiektu o indeksie nr 2 widzimy, że ubytki zostały wypełnione tylko w pionie i w poziomie, mimo iż dla tego obiektu o wiele lepszy rezultat otrzy-malibyśmy przypisując również wartość równą dwa, pikselom łączącym odstające części figury po przekątnej.

2. Ze względu na obecność dodatkowego obiektu (nr 7) wewnątrz obiektu o numerze 5, obszar wewnętrzny nie został całkowicie wypełniony pikselami przypisanymi obiektowi nr 5. W dolnym prawym rogu figury (pomiędzy figurą nr 5 i 7 pozostał nieprzydzielony piksel (wartość zero oznacza przydzielenie piksela do tła).

3. Ponieważ najpierw uzupełniane są ubytki figur w poziomie a następnie w pionie, piksele pomiędzy obiektem nr 6 i 8 zostały prawidłowo przydzielone do obiektu nr 6. Gdyby obiekt nr 6 był obrócony o 90 lub gdybyśmy zmienili kolejność przeglądania pikseli (najpierw w pionie a następnie w poziomie), piksele pomiędzy obiektami nr 6 i 8 pozostałyby pikselami tła.

Przedstawiona metoda wypełniania ubytków obiektów jest bardzo szybka. Po jedno-krotnym przejrzeniu wszystkich pikseli obrazuJI(x, y) w poziomie (wiersz po wierszu) oraz w pionie (kolumna po kolumnie) otrzymujemy uzupełnienie ubytków wszystkich obiektów występujących na obrazie. Ponieważ w opisywanym systemie wizyjnym liczy

się krótki czas przetwarzania obrazu, wymienione wady prezentowanej metody są ak-ceptowalne. Doświadczenia pokazały, że przedstawione niedociągnięcia występujące na