Przeksztaªcenia morfologiczne II i operacje na obrazach logicznych 1 Przeksztaªcenia morfologiczne 1.1 cienianie i Pogrubianie Pogrubianie i ±cienianie: Operacje te polegaj na naªo»eniu lub ±ci gni ciu wierzchniej warstwy obiektu. W procesie ±cieniania warto± punktu nie zmienia si, gdy SE nie pokrywa si z jego s siedztwem lub zmienia jego warto± na zero, gdy SE pasuje do s - siedztwa rozpatrywanego punktu. W procesie pogrubiania relacje s odwrotne. Do wykonywania tych operacji sªu»y polecenie bwmorph z parametrami 'thicken' i 'thin': bwmorph(obraz, 'thin'); Elementem wykorzystywanym do ±cieniania jest maska, obracana co 90 : 1.2 Szkieletyzacja X 1 1 Szkielet gury to zbiór wszystkich wszystkich ±rodków okr gów, mieszcz cych si w ca- ªo±ci wewn trz gury i maj cych co najmniej dwa punkty wspólne z brzegiem gury. Szkieletyzacje wykonuje si przy u»yciu nast puj cych elementów: X 1 X 0 0 0 1 X 1 X 1 X 0 0 0 Do szkieletyzacji sªu»y polecenie bwmorph(obraz, 'skel'); 1.3 Dylatacja bez stykania obszarów (SKIZ) 1 1 X 1 1 0 1 1 X SKIZ (ang. skeleton by inuence zone) jest pomocne przy rozdzielaniu elementów cz - ±ciowo si stykaj cych. Jako pierwszy krok wykonuje si erozje, a nast pnie pogrubienie nast puj cym SE: X X X Gdy przeksztaªcenie to jest stosowane cyklicznie, a» do braku zmian, uzyskuje si szkielet wpªywów (SKIZ). Strefa wpªywów danego punktu deniowana jest jako zbiór wszystkich punktów obrazu, dla których odlegªo± do danego punktu jest mniejsza ni» do pozosta- ªych. Przeksztaªcenie to czasami powoduje pewne artefakty (w skie i gª bokie zatoki), które eliminuje si w 3 krokach: negatyw obci cie gaª zi negatyw. 1
1.4 Obcinanie gaª zi Do obcinania gaª zi, powstaªych np. w wyniku szkieletyzacji lub wycieniania sªu» nast puj ce elementy strukturalne: X 0 0 0 X X 1 1 0 0 1 0 X 1 X 0 0 0 1.5 Pakiet bwmorph bwmorph(obraz, 'metoda', parametr); Funkcja ta aplikuje operacje morfologiczne na obrazie logicznym. Do metod zaliczamy: 'bothat' - operacja Bottom hat, która polega na odj ciu od zamkni cia obrazu samego obrazu. Istnieje jej uogólnienie na obrazy monochromatyczne imbothat. 'bridge' - ª czy blisko siebie le» ce piksele. 'clean' - zeruje pojedy«czego piksela, otoczonego samymi zerami. 'close' i 'open'- zamkni cie i otwarcie elementem ones(3). 'diag' - zamienia poª czenia diagonalne (8-s siedztwo) na 4-s siedztwo poprzez zmian warto±ci piksela le» cego pod przek tn na 1. 'dilate' i 'erode' - dylatacja i erozja elementem ones(3) 'fill' - zmienia warto± zerowego piksela otoczonego samymi jedynkami na jeden. 'hbreak' - rozdziela H-poª czone piksele (w pionie i poziomie) 'majority' - je»eli suma maski 3x3 jest wi ksza lub równa 5, to element centralny przyjmuje warto± 1. Je»eli nie, to element centralny ma warto± 0. 'remove' - zmienia warto± ±rodkowego piksela na 0, je»eli wszyscy jego 4-s siedzi maj warto± 1. ('shrink',n) - kurczy obiekty do punktów. W przypadku obiektu z "dziurami", i u»ycia tej funkcji z n=inf, powstaje obwódka w pomi dzy granic zewn trzn i wewn trzn obiektu. Obiekty jednorodne s zmniejszane do punktu. Parametr n oznacza ilo± iteracji, przy n=inf operacja jest wykonywana do momentu, kiedy pomi dzy wynikami dwóch s siednich iteracji nie b dzie ró»nicy. Efekt dziaªania tej funkcji z parametrem n=inf (kolor czerwony) naniesiony na obraz wej±ciowy przedstawia g.1. Widoczna jest obwódka wokóª dziury oraz pojedy«czy punkt w wewn trznym obiekcie. ('skel',n) - szkieletyzacja. Dziaªanie parametru n jest analogiczne do funkcji 'shrink'. 'spur' - usuwa gaª zie, poª czone diagonalnie. 1 1 0 0 0 1 0 0 1 0 0 1 0 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 2
Rysunek 1: Efekt dziaªania funkcji bwmorph('shrink',inf) zaznaczony kolorem czerwonym ('thicken', n) i ('thin', n) - pogrubianie i wycienianie obiektu 'tophat' - operacja Top hat. Funkcja zwraca ró»nice mi dzy obrazem, a jego otwarciem. Istnieje jej uogólnienie na obrazy monochromatyczne imtophat. 1.6 Operacje geodezyjne Operacje geodezyjne wymagaj u»ycia dwóch obrazów (obraz wej±ciowy oraz maska / marker). W wyniku tych operacji obraz wej±ciowy jest poddawany operacji morfologicznej, a nast pnie porównywany z mask. Wyró»niamy nast puj ce operacje geodezyjne: dylatacja geodezyjna (o rozmiarze 1) - jest to warto± minimalna z obrazu wej- ±ciowego poddanego dylatacji jednostkowym elementem strukturalnym oraz maski. W przypadku obrazów logicznych jest to iloczyn logiczny maski oraz obrazu po dylatacji. Zakªada si,»e D(obraz) maska erozja geodezyjna (o rozmiarze 1) - jest to warto± maksymalna z obrazu wej±ciowego poddanego erozji jednostkowym elementem strukturalnym oraz maski. W przypadku obrazów logicznych jest to suma logiczna maski oraz obrazu po erozji. Zakªada si,»e E(obraz) maska rekonstrukcja przez dylatacj - wykonywanie cyklicznie dylatacji geodezyjnych, a» do braku ró»nic pomi dzy kolejnymi dylatacjami. Jest to najcz ±ciej stosowana rekonstrukcja morfologiczna. rekonstrukcja przez erozj - wykonywanie cyklicznie erozji geodezyjnych, a» do uzyskania braku ró»nicy pomi dzy kolejnymi iteracjami. otwarcie przez rekonstrukcj - Polega na wykonaniu erozji zadanym elementem strukturalnym, a nast pnie rekonstrukcji przez dylatacj. zamkni cie przez rekonstrukcj - Polega na wykonaniu dylatacji zadanym elementem strukturalnym, a nast pnie rekonstrukcji przez erozj. 2 Operacje na obrazach logicznych Do innych operacji (ni» morfologiczne) na obrazach logicznych nale» nast puj ce przeksztaªcenia i operacje: 3
2.1 Estymacja pola powierzchni Polecenie bwarea(obraz); podaje estymowane pole powierzchni. Warto± uzyskana t funkcj mo»e by inna od warto±ci rzeczywistej (uzyskanej funkcj sum(obraz(:))). Zliczania dokonuje si w otoczeniu 2x2 i na podstawie nast puj cych warunków: 0 - je»eli w otoczeniu wszystkie piksele maj warto± 0. 0.25 - je»eli tylko jeden piksel ma warto± 1. 0.5 - je»eli dwa piksele maj warto± 1 i stykaj si bokami. 0.75 - je»eli dwa piksele maj warto± 1 i stykaj si rogami. 0.875 - je»eli 3 piksele maj warto± 1. 1 - je»eli wszystkie 4 piksele maj warto± 1. 2.2 Wyznaczanie obwodu Polecenie bwperim(obraz, s siedztwo); wyznacza linie obwodu. S siedztwo dla obrazów 2D mo»e przyjmowa warto± 4 lub 8. Rozbudowaniem tej funkcji jest polecenie D=bwboundaries(obraz, s siedztwo, opcje). Jako rezultat dziaªania funkcji otrzymujemy wektor o rozmiarze równym ilo±ci izolowanych obiektów, skªadaj cy si z tablic wspóªrz dnych ka»dej granicy. Jako opcje mamy dwie mo»liwo±ci: 'noholes' i 'holes'. Na g.2 pokazano efekt dziaªania tych parametrów. Kolorem czerwonym zaznaczono granice obliczone z parametrem 'noholes'. Dzi ki zastosowaniu opcji 'holes' zyskujemy, oprócz dwóch czerwonych, dodatkow granic zaznaczon kolorem niebieskim. Rysunek 2: Efekt dziaªania funkcji bwboudaries z parametrami 'noholes' - kolor czerwony, i 'holes' - czerwony + niebieski 2.3 Obliczanie odlegªo±ci Polecenie bwdist(obraz,'metryka'); podaje odlegªo± od najbli»szego piksela o warto- ±ci 1, przy wykorzystaniu jednej z nast puj cych metryk: 'euclidean': d = (m 1 m 2 ) 2 + (n 1 n 2 ) 2 'quasi-euclidean': d = { m1 m 2 + ( (2) 1) n 1 n 2 dla m 1 m 2 > n 1 n 2 ( (2) 1) m 1 m 2 + n 1 n 2 dla m 1 m 2 n 1 n 2 4
'chessboard': d = max( m 1 m 2, n 1 n 2 ) 'cityblock': d = m 1 m 2 + n 1 n 2 2.4 Liczba Eulera bweuler(obraz, s siedztwo); - podaje warto± liczby Eulera. Jest to ilo± obiektów wyst puj cych na obrazie binarnym, pomniejszona o ilo± dziur w tych obiektach. S - siedztwo przyjmuje warto± 4 lub 8. 2.5 Wypeªnianie dziur w obiektach Do wypeªniania dziur w obiektach sªu»y polecenie: imfill(obraz, s siedztwo, lokalizacja, 'holes'); We wcze±niejszych wersjach biblioteki jest to funkcja bwfill. W przypadku obrazów logicznych wypeªnia wskazane myszk lub poprzez podanie wspóªrz dnych punktu obszaru zªo»onego z zer wewn trz gury. Dodanie parametru 'holes' wypeªnia wszystkie dziury na obrazie. W przypadku obrazu monochromatycznego poprzez dziur rozumie si obszary zbudowane z pikseli o mniejszej intensywno±ci ni» otoczenie. 2.6 Etykietowanie i segmentacja Polecenie bwlabel(obraz, s siedztwo); sªu»y do etykietowania, tzn. do przypisywania jednakowej warto±ci pikselom wewn trz obszarów jednorodnych i rozª cznych z innymi obiektami. S siedztwo przyjmuje warto± 4 lub 8. Ka»dy jednorodny obiekt ma unikalny numer, b d cy kolejnymi dodatnimi liczbami caªkowitymi. Do prezentacji wyników etykietowania sªu»y polecenie label2rgb (wynik, 'paleta', [kolor zerowy], 'kolejno± '). Do etykietowania obrazów wielowymiarowych sªu»y polecenie bwlabeln (obraz, s siedztwo). Z poj ciem etykietowania zwi zana jest segmentacja czyli proces podziaªu obrazu na fragmenty odpowiadaj ce widocznym na obrazie obiektom. Wyró»niamy dwie grupy metod segmentacji: poprzez podziaª obszaru: polega na stopniowym, iteracyjnym, podziale du»ych obszarów na mniejsze, których piksele maj warto± ró»ni c si od s siedztwa. poprzez rozrost obszaru: piksele s siedztwa obszaru s sprawdzane czy speªniaj warunki podobie«stwa i w przypadku speªnienia, s doª czane do obszaru. 2.7 Wskazywanie obiektów Polecenie bwselect(obraz, x, y, s siedztwo); sªu»y do wskazywania obszarów jednorodnych poprzez wskazanie dowolnego punktu wewn trznego. Wektory x,y wskazuj poªo»enie pikseli wewn trznych. W przypadku ich braku, wskazywanie odbywa si przy u»yciu myszki. S siedztwo=4,8 i oznacza typ s siedztwa. Wynikiem dziaªania tego polecenia jest mapa logiczna, gdzie warto± jeden maj tylko obiekty wskazane poprzez punkty wewn trzne. 2.8 Dziaª wodny Dziaª wodny jest to linia rozdzielaj ca dwa obszary przyci gania (zlewnie). Sªu»y do tego polecenie watershed(obraz, s siedztwo);. Funkcja dziaªu wodnego mo»e sªu»y do rozdzielania blisko siebie le» cych obiektów. 5