Przeksztaªcenia morfologiczne II i operacje na obrazach logicznych
Transkrypt
Przeksztaªcenia morfologiczne II i operacje na obrazach logicznych
Analiza i Przetwarzania Obrazów Cyfrowych IIIr Informatyki Stosowanej 2015/2016 copyright: M. Dwornik [email protected] 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◦ : X 1 1 1 1 1 1 1 1 1.2 Szkieletyzacja 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: 1 1 1 X 1 X 0 0 0 1 X 1 X 1 X 0 0 0 1 1 X 1 1 0 1 1 X Do szkieletyzacji sªu»y polecenie bwmorph(obraz, 'skel'); 1.3 Dylatacja bez stykania obszarów (SKIZ) 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 1 1 1 1 1 1 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 Analiza i Przetwarzania Obrazów Cyfrowych IIIr Informatyki Stosowanej 2015/2016 1.4 copyright: M. Dwornik [email protected] Obcinanie gaª¦zi Do obcinania gaª¦zi, powstaªych np. w wyniku szkieletyzacji lub wycieniania sªu»¡ nast¦puj¡ce elementy strukturalne: 0 X X 0 1 0 0 0 0 X 0 0 1 1 0 X 1 X 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) 1 0 1 1 1 1 1 0 1 ⇒ 1 0 1 1 0 1 1 0 1 • '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 1 1 1 0 1 0 1 0 0 0 1 0 0 1 0 1 1 0 0 1 0 0 ⇒ 2 1 1 0 1 1 1 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 Analiza i Przetwarzania Obrazów Cyfrowych IIIr Informatyki Stosowanej 2015/2016 copyright: M. Dwornik [email protected] 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- • • • • • 2 ±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¦. Operacje na obrazach logicznych Do innych operacji (ni» morfologiczne) na obrazach logicznych nale»¡ nast¦puj¡ce przeksztaªcenia i operacje: 3 Analiza i Przetwarzania Obrazów Cyfrowych IIIr Informatyki Stosowanej 2015/2016 2.1 copyright: M. Dwornik [email protected] 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: • • • • • • 2.2 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. 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 = (m1 − m2 )2 + (n1 − n2 )2 • 'quasi-euclidean': p ( d= p |m p1 − m2 | + ( (2) − 1)|n1 − n2 | dla |m1 − m2 | > |n1 − n2 | ( (2) − 1)|m1 − m2 | + |n1 − n2 | dla |m1 − m2 | ¬ |n1 − n2 | 4 Analiza i Przetwarzania Obrazów Cyfrowych IIIr Informatyki Stosowanej 2015/2016 copyright: M. Dwornik [email protected] • 'chessboard': d = max(|m1 − m2 |, |n1 − n2 |) • 'cityblock': d = |m1 − m2 | + |n1 − n2 | 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 lo- gicznych 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 ob- szaró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