Analiza obrazów - sprawozdanie nr 3

Transkrypt

Analiza obrazów - sprawozdanie nr 3
Natalia Kolasa
Analiza obrazów - sprawozdanie nr 3
Przekształcenia morfologiczne
Przekształcenia morfologiczne wywodzą się z morfologii matematycznej, czyli dziedziny,
która opiera się na teorii zbiorów, topologii i funkcjach losowych. Dotyczy ona przetwarzania
i analizy struktur geometrycznych. W odróżnieniu od operacji punktowych, przekształcenia
morfologiczne opierają się na związkach, które zachodzą pomiędzy analizowanym punktem, a jego
sąsiedztwem. Z tego względu mają dużą złożoność obliczeniową. Dlatego stosowane są przede
wszystkim przy przetwarzaniu obrazów binarnych. Podstawowe przekształcenia morfologiczne to:
•
•
•
erozja i dylatacja,
otwarcie i zamknięcie,
szkieletyzacja.
Podstawowym terminem związanym z tego typu przekształceniami jest element strukturalny.
Jest to zbiór punktów wykorzystywany przy przekształceniu. Można powiedzieć, że stanowi
on szablon, który jest dopasowywany do kolejnych pikseli obrazu i jego sąsiedztwa. Na podstawie
tego dopasowania określane jest czy w danym punkcie dochodzi do wykonania operacji związanej
z danym przekształceniem. Elementy strukturalne mogą mieć różne wielkości i kształty.
Przekształcenia morfologiczne należą do jednych z najważniejszych algorytmów w analizie
obrazów. Dzięki analizowaniu sąsiedztwa danego punktu pozwalają bowiem na złożone operacje
związane z badaniem kształtów obrazu. Oprócz tego używane są przy algorytmach segmentacji
obrazu, a także przy poprawie jego jakości.
1. Przekształcenia morfologiczne obrazu rzeczywistego i nierzeczywistego
Implementacja przykładów do obrazu rzeczywistego i nierzeczywistego znajdują się odpowiednio
w plikach: PrzekszMorfologiczne2.m i PrzekszMorfologiczne.m.
We wszystkich poniższych przykładach zastosowanym elementem strukturalnym jest obiekt
ball o parametrach 10 oraz 4. Został stworzony przy pomocy funkcji strel programu Matlab.
Każde przekształcenie morfologiczne zostało wykonany za pomocą funkcji wbudowanych takich jak:
imdilate, imerode, imopen oraz imclose.
a) Obraz nierzeczywisty
o
Erozja i dylatacja
Erozja i dylatacja to jedne z podstawowych przekształceń morfologicznych.
Można powiedzieć, że są względem siebie odwrotne. Erozja polega na obcinaniu brzegów obiektu
na obrazie. Na obrazach binarnych erozję możemy więc interpretować jako odcięcie pewnego pasa
1
Natalia Kolasa
o zadanej szerokości wzdłuż brzegu obiektów. Do jej praktycznych zastosowań można zaliczyć więc
usuwanie drobnych szczegółów na obrazie i wygładzanie brzegów obiektów. Erozja powoduję
więc generalizację obrazu.
Dylatację natomiast można interpretować jako dodanie pasa o zadanej szerokości wzdłuż
brzegu obiektów. Służy ona więc do zamykania małych otworów oraz zatok, a jeśli obiekty położone
są blisko siebie, to dochodzi do ich połączenia. Dylatacja podobnie jak erozja prowadzi
do generalizacji obrazu, ale w tym wypadku dochodzi do zwiększenia obiektów, wygładzenia brzegów
obszaru i usunięcia drobnych wklęsłości na obiektach.
Wynik zastosowania erozji:
Jak widać na powyższym obrazku po dokonaniu erozji doszło do odcięcia fragmentów
obiektów na obrazie wzdłuż ich brzegów, co zmniejszyło wielkość poszczególnych elementów.
W przypadku obiektów o niewielkiej wielkości doszło do ich całkowitego usunięcia.
Wynik zastosowania dylatacji:
2
Natalia Kolasa
Jak widać na powyższym obrazku po dokonaniu dylatacji doszło do pogrubienia brzegów
poszczególnych obiektów, przez co stały się one większe. W niektórych przypadkach doszło nawet
do połączenia niektórych obiektów w jeden.
o
Otwarcie i zamknięcie
Otwarcie i zamknięcie to operacje, które zostały wprowadzone w celu wyeliminowania wad
związanych z erozją i dylatacją. Podczas ich zastosowania dochodzi bowiem do znacznych zmian pól
powierzchni przekształcanych obiektów; w przypadku erozji do ich zmniejszenia, natomiast
w przypadku dylatacji do zwiększenia. Otwarcie i zamknięcie stanowią złożenie operacji erozji
i dylatacji w odpowiedniej kolejności. W przypadku otwarcia najpierw następuje erozja, a następnie
dylatacja. Natomiast w przypadku zamknięcia odwrotnie. Dzięki temu nie zmieniają one kształtu
obiektów o równym gładkim brzegu.
Otwarcie pozwala na rozłączenie elementów obrazu z przewężeniami oraz usuwa z obrazów
drobne obiekty oraz wypustki figur, nie zmieniając przy tym kształtu podstawowej części obiektu.
Zamknięcie pozwala natomiast na połączenie obiektów leżących blisko siebie. Dodatkowo umożliwia
zamknięcie wąskich szczelin i zatok.
Wynik zastosowania otwarcia:
Jak widać na powyższym przykładzie zastosowanie otwarcia spowodowało, że niewielkie
elementy obrazu zniknęły, niektóre obiekty zostały otwarte. W przypadku koła z obręczami,
znajdującego się w dolnej części obrazka, zastosowanie tego przekształcenia spowodowało, że główna
część figury została niezmieniona zniknęły natomiast obręcze, które stanowiły wspomniane wcześniej
wypustki.
3
Natalia Kolasa
Wynik zastosowania zamknięcia:
W wyniku zastosowania zamknięcia elementy na obrazie, które posiadały niewielkie szczeliny
zostały zamknięte. Zmniejszyły się również otwory znajdujące się w poszczególnych elementach.
W przypadku dwóch wielokątów, znajdujących się w środkowej części powyższego obrazka, doszło
do ich połączenia.
b) Obraz rzeczywisty
W związku z tym, że zastosowanie powyższych przekształceń morfologicznych nie pokazało
wszystkich jej istotnych cech poniżej znajdują się przykłady ich zastosowania do obrazu
rzeczywistego.
o
Erozja i dylatacja
Wynik zastosowania erozji:
4
Natalia Kolasa
Jak widać obraz rzeczywisty po zastosowaniu erozji uległ generalizacji. Widoczne wcześniej
szczegóły stały się niedostrzegalne. Zastąpiły je grube plamy symbolizujące najbardziej istotne
elementy, w wypadku postaci są to oczy, nos i włosy. Erozji uległy przede wszystkim jasne elementy.
Zostały znacznie bardziej rozmazane i niewidoczne.
Wynik zastosowania dylatacji:
Powyższy przykład doskonale pokazuje, że dylatacja jest przekształceniem, które działa
odwrotnie niż erozja. Tutaj również obraz uległ generalizacji, ale w tym wypadku brzegi jasnych
elementów zostały pogrubione, przez co to właśnie jaśniejsze elementy zostały bardziej wydobyte
i stały się widoczne.
o
Otwarcie i zamknięcie
Wynik zastosowania otwarcia:
Jak widać otwarcie jest doskonalszym odpowiednim przekształcenia jakim jest erozja.
Tutaj podobnie jak w pierwszym przykładzie jasne elementy zostały pomniejszone i uległy erozji
5
Natalia Kolasa
przez co lepiej widoczne są ciemniejsze części obrazu. Zdjęcie nie jest jednak tak rozmazane jak
wcześniej, co umożliwia lepszą jego późniejszą analizę.
Wynik zastosowania zamknięcia:
Powyższy przykład również udowadnia prawdziwość stwierdzenia, że operacje otwarcia
i zamknięcia wyeliminowują wady związane z erozją i dylatacją. W tym wypadku zamknięcie,
które jest doskonalsze niż dylatacja, również działa podobnie jak swój odpowiednik, ale nie pogarsza
tak jakości obrazu. Nie jest on aż tak rozmazany jak wcześniej. Obraz ponownie uległ generalizacji,
ale tutaj w przeciwieństwie do otwarcia jaśniejsze elementy uległy pogrubieniu.
2. Szkieletyzacja
Implementacja przykładu znajduje się w plikach: Szkieletyzacja.m oraz Szkieletyzacja2.m.
Szkieletyzacja obrazu polega na wydobyciu szkieletów obiektów znajdujących się na obrazie
zbinaryzowanym. Szkielet jest to zbiór punktów, które są równoodległe od co najmniej dwóch
punktów należących do brzegu figury. Algorytm tego przekształcenia polega więc na usuwaniu pikseli
wzdłuż granic obiektów tak długo, aż powstanie szkielet. Dzięki szkieletyzacji możliwe jest między
innymi rozdzielenie posklejanych figur, przeprowadzenie ich klasyfikacji na podstawie kształtu
oraz określenie orientacji podłużnych obiektów.
Istnieje kilka rodzaji szkieletyzacji. W poniższym przykładzie zastosowany został algorytm
szkieletyzacji poprzez maskę. Użyta maska:
1
0
1
1
1
Piksel, który jest aktualnie sprawdzany symbolizuje środkowy element macierzy. Aby maska została
spełniona sąsiednie piksele muszą mieć odpowiednie wartości, zgodne z podanymi w masce.
Możliwe są trzy warianty: wartość 1, 0 lub X. Wartość 1 oznacza, że dany piksel powinien być czarny,
6
Natalia Kolasa
natomiast 0 biały. Znak X oznacza, że wartość piksela w danym miejscu nie ma znaczenia dla
działania algorytmu.
Przebieg algorytmu:
- każdy czarny piksel obrazu zbinaryzowanego należy przyrównać do powyższej maski oraz jej
obrotów o 90°, 180° oraz 270°; jeśli otoczenie piksela spełnia warunki narzucone w masce do kopii
należy wstawić biały piksel, natomiast jeśli maska nie została spełniona należy wstawić czarny piksel,
-oryginalny obrazek należy zastąpić kopią,
-czynności należy powtarzać tak długo, aż na obrazie nie będą już zachodziły żadne zmiany.
W celu poprawnego działania algorytmu należy wokół obrazka zrobić białą ramkę o szerokości
jednego piksela.
Poniższy przykład przedstawia jak podany algorytm szkieletyzacji zadziałał na obraz
nierzeczywisty:
Jak widać z każdej figury udało się wydobyć jej szkielet, który stanowią pojedyncze linie.
Składają się na nie punkty, które są równoodległe od co najmniej dwóch punktów należących
do brzegu figury, co doskonale widać na powyższym obrazku.
7
Natalia Kolasa
Przykład zastosowania danego algorytmu na obrazie rzeczywistym przedstawionym poniżej:
Aby możliwe było wykonanie szkieletyzacji obraz został wcześniej zbinaryzowany z progiem
dolnym równym 50. Wartości pikseli na obrazie mogły mieć bowiem tylko wartości białe lub czarne.
Jak widać na powyższym obrazku opisany wcześniej algorytm pozwolił na wydobycie szkieletów
elementów obrazu. Otrzymany efekt zależy od dobrania sposobu binaryzacji oraz jej progu.
Im zostanie on lepiej określony tym na przykład zostanie utraconych mniej szczegółów. Jak widać
na obrazku w wyniku binaryzacji zostały utracone informacje dotyczące prawej części obrazka,
więc nie mogły zostać uwzględnione przy szkieletyzacji.
3. Segmentacja
Implementacja przykładu znajduje się w plikach: Segmentacja.m oraz FunkcjaDoSegmentacji.m.
Segmentacja obrazu jest to proces, który polega na podziale obrazu na części, które
charakteryzuje pewna jednorodność, pod względem wybranych własności. Wybranymi kryteriami
8
Natalia Kolasa
jednorodności mogą być między innymi; barwa obrazu bądź poziomy szarości. Segmentacja
umożliwia podział obrazu na obiekty.
Segmentacja jest jednym z najtrudniejszych, ale i najważniejszych zagadnień w analizie
obrazów. Istnieje wiele możliwości jej realizacji. Podstawowe metody można podzielić na oparte
na obszarach, czyli bazujące na sąsiedztwie pod kątem jednorodności pikseli oraz oparte na ekstrakcji
krawędzi, opierające się na wyznaczaniu granic i konturów obiektów.
Omawiany sposób segmentacji opiera się na obszarach i łączy w sobie techniki ich podziału
i rozrostu. Polega on na tym, że na początku obraz jest dzielony tak długo na podobszary, aż wszędzie
zostanie spełniony warunek jednorodności. W wyniku tej operacji niektóre sąsiadujące ze sobą
obszary, chociaż zostały wcześniej podzielone, mogą posiadać te same własności. Dlatego powinno
nastąpić ich połączenie.
Przykład podziału obrazu na fragmenty o jednakowej jednorodności:
Jak widać na powyższym przykładzie po zastosowaniu techniki podziału obraz został
podzielony na fragmenty o podobnych właściwościach. Oddzielne części stanowi tło, a oddzielne
fragmenty postaci przedstawionej na zdjęciu.
Przykład podziału obrazu z jeszcze większą dokładnością :
9

Podobne dokumenty