Laboratorium: Cyfrowe przetwarzanie obrazów i sygnaªów Operacje morfologiczne 1 Cel i zakres wiczenia Celem wiczenia jest zapoznanie si z wªasno±ciami prostych operacji morfologicznych: zw»ania/erozji (erode), rozszerzania/dylatacji (dilate), otwarcia (open), domkni cia (close) oraz sposobami ich wykorzystania do przetwarzania obrazów. 2 Przykªady Operatory morfologiczne wykorzystuj tzw. element strukturalny (structuring element), który deniuje wielko± i ksztaªt otoczenia (s siedztwa), w którym operacja jest wykonywana. W harpii mo»na okre±li element strukturalny wyª cznie jako kwadrat o boku 3, 5 lub 7. Okna konguracji dla rozszerzania, zw»ania, otwarcia i domkni cia pozwalaj te rozmiary ustawi (rys. 1). Okna konguracji dla operacji rozszerzania i zw»ania pozwalaj dodatkowo wybra liczb iteracji. Warto zauwa»y,»e operacje morfologiczne mog by wykonywane zarówno dla obrazów binarnych jak i dla obrazów ze skal szaro±ci. W tym drugim przypadku erozja odpowiada lokalnemu minimum, a dylatacja - lokalnemu maksimum. Oznaczmy obraz wej±ciowy jako src. Poni»ej przedstawiono kilka przykªadowych wªasno±ci operacji morfologicznych. Zªo»enie erozji i dylatacji jest równowa»ne operacji otwarcia (opening): open(src) = dilate(erode(src)). 1
Rysunek 1: Okna konguracji dla operatorów zw»ania i otwierania Rysunek 2: Przykªad zªo»enia erozji i dylatacji 2
Przykªadowa realizacja w harpii jest pokazana na rys. 2. Operacje erozji i dylatacji s dualne: (erode(src c )) c = dilate(src). Realizacja jest pokazana na rys. 3. Operacja dopeªnienia src c jest wykony- Rysunek 3: Przykªad dualno±ci erozji i dylatacji wana jako ró»nica obrazu wypeªnionego warto±ci 255 i obrazu ¹ródªowego. Wªasno± idempotentno±ci operatora oznacza,»e jego wielokrotne zªo»enie nie zmienia wyniku w stosunku do jednokrotnego zastosowania. Operacja otwarcia jest idempotentna: co przedstawiono na rys. 4. open(open(src)) = open(src), Rysunek 4: Przykªad idempotentno±ci operacji otwierania Operacje morfologiczne mo»na wykorzysta do ltrowania obrazów, znajdowania konturów sylwetek lub tzw. gradientów morfologicznych, wyostrzania obrazów. Poni»ej przedstawiono przykªady takiego wykorzystania. 3
Kaskadowe zastosowanie otwierania i domykania sylwetek: close(open(src)) pozwala usun drobne wady ich brzegów (rys. 5). Rysunek 5: Przykªad ltru morfologicznego Gradient morfologiczny pozwala znale¹ kontur sylwetki (dla obrazu binarnego) lub kraw dzie (dla obrazu ze skal szaro±ci): co przedstawiono na rys. 6. grad(src) = dilate(src) erode(src), lowgrad(src) = dilate(src) src, Rysunek 6: Przykªady gradientu morfologicznego Uwaga: Uzyskane gradienty mo»na wykorzysta do wyostrzania obrazu przez ich odpowiednie dodawanie do obrazu oryginalnego. 4
3 Zadania do wykonania U»ywaj c obrazów ze skal szaro±ci, jak równie» binarnych (uzyskanych przez progowanie po ewentualnej ltracji dolnoprzepustowej) nale»y wykona poni»sze zadania. 1. Sprawdzi podstawowe wªasno±ci operacji morfologicznych: zªo»enie dylatacji i erozji jako domkni cie: dualno± otwarcia i domkni cia: close(src) = erode(dilate(src)), (open(src c )) c = close(src), idempotentno± operacji domykania: open(open(src)) = open(src), close(close(src)) = close(src). 2. Wykorzysta operacje morfologiczne do przetwarzania obrazów: ltry morfologiczne - otwarcie, domkni cie i ich zªo»enia: open(src), close(src), close(open(src)), open(close(src)), close(open(close(open(src)))), open(close(open(close(src)))),... gradienty morfologiczne: gradienty teksturowe: wyostrzanie obrazu: grad(src) = dilate(src) erode(src), lowgrad(src) = dilate(src) src, uppgrad(src) = src erode(src), hatgrad(src) = close(src) open(src), blackhat(src) = close(src) src, tophat(src) = src open(src), sharp(src) = src + uppgrad(src) lowgrad(src), hatsharp(src) = src + tophat(src) blackhat(src). 5
4 Uwagi pomocnicze 1. Operatory morfologiczne: M orphological Operators Erosion - erozja; M orphological Operators Dilate - dylatacja; M orphological Operators Opening - otwarcie; M orphological Operators Closing - domkni cie. 5 Forma sprawozdania Analogicznie jak w wiczeniu EX0, zamieniaj c w odpowiednich miejscach EX0 na EX6. Marek Wnuk 6