Geometria obrazu Wykład 3 1. Suma Minkowskiego 2. Morfologia matematyczna
Suma Minkowskiego. Definicja. Rozpatrzmy wielokąty A i B jako zbiory wektorów o współrzędnych odpowiadających współrzędnym punktów należących do tych wielokątów. Sumą Minkowskiego wielokątów A i B jest A + B := {x + y : x A y B}. Fakt. Suma Minkowskiego dwóch wielo-kątów zależy od ich położenia.
Załóżmy, że robot R ma stałą liczbę wierzchołków, a obszar D ma n wierz-chołków. R D Rozmiar sumy Złożoność czasowa konstrukcji wypukły wypukły O(n) O(n) wypukły niewypukły O(n) O(n log n) niewypukły niewypukły O(n2 ) O(n2 log n) Twierdzenie. Niech P i R będą wielokątami o odpowiednio n i m wierzchołkach. Złożoność sumy Minkowskiego wielokątów P i R ma następujące ograniczenia: O(n+m), jeśli oba wielokąty są wypukłe, O(nm), jeśli jeden z wielokątów jest wypukły, a drugi nie, O(n2m2), jeśli oba wielokąty nie są wypukłe. Ograniczenia są ścisłe w pesymistycznym przypadku.
Morfologia matematyczna. Podstawową koncepcją morfologii matematycznej jest to, że struktura geometryczna jest odkrywana poprzez relację między nią a oddziałującymi na nią elementami strukturującymi. Elementy te modyfikują kształt obiektu, określając jego strukturę. Podstawowymi operacjami stosowanymi w tym modelu przetwarzania obrazu są: dylacja, erozja, szkieletyzacja. Morfologia matematyczna ma zastosowanie głownie do obrazów binarnych, ale nie tylko. Wykorzystuje się ją przy filtrowaniu, segmentacji, detekcji cech itp.
Element strukturujący. W naszych rozważaniach elementem strukturującym będzie układ pikseli z wyróżnionym jednym punktem, zwanym początkowym (lub centralnym). Po zadziałaniu elementem strukturującym na obraz, punkt początkowy wskazuje na piksel obrazu, którego dotyczy wynik przeprowadzanej operacji. Składniki elementu strukturalnego nie muszą być jednobarwne.
Dylacja. Do każdego piksela obrazu przykładamy element strukturujący (o wartościach wszystkich pikseli = 1) w punkcie początkowym. Jeśli choć jeden z pikseli przykrytych przez element strukturujący ma wartość 1, to piksel odpowiadający punktowi początkowemu przyjmuje wartość 1. Innymi słowy, jeśli sij odpowiada wartościowaniu elementu strukturującego a oij odpowiednich pikseli obrazu, to piksel wskazywany przez punkt początkowy przyjmuje wartość V(sijoij).
Rozmiar obrazu wzrasta (kontur staje się wyraźniejszy). Przykład. Rozmiar obrazu wzrasta (kontur staje się wyraźniejszy). Znikają detale (jasne elementy są przykrywane ciemnymi). [http://aragorn.pb.bialystok.pl/~boldak/DIP/CPO-W05-v01-50pr.pdf]
Dylacja elementem strukturującym różnym od kwadratu. Przykład. Dylacja elementem strukturującym różnym od kwadratu. [http://aragorn.pb.bialystok.pl/~boldak/DIP/CPO-W05-v01-50pr.pdf]
Fakt. Obraz powiększy się równomiernie, gdy element strukturyzujacy będzie mieć kształt zbliżony do koła. Ale wtedy będzie mieć większy rozmiar, co zwiększa również dylację. Algorytm obliczania dylacji. Przesuwamy obraz o wektor przeciwny do wektora wyznaczonego przez punkt początkowy i niezerowy piksel elementu strukturyzującego. R(0,0)
Erozja. Do każdego piksela obrazu przykładamy element strukturujący (o wartościach wszystkich pikseli = 1) w punkcie początkowym. Jeśli choć jeden z pikseli przykrytych przez element strukturujący ma wartość 0, to piksel odpowiadający punktowi początkowemu przyjmuje wartość 0. Innymi słowy, jeśli sij odpowiada wartościowaniu elementu strukturującego a oij odpowiednich pikseli obrazu, to piksel wskazywany przez punkt początkowy przyjmuje wartość (sijoij).
Niektóre fragmenty obrazu zanikają. Przykład. Obraz zmniejsza się. Niektóre fragmenty obrazu zanikają. Rosną „0-dziury” i nabierają kształt elementu strukturyzującego. [http://aragorn.pb.bialystok.pl/~boldak/DIP/CPO-W05-v01-50pr.pdf]
Erozja elementem strukturującym różnym od kwadratu. Przykład. Erozja elementem strukturującym różnym od kwadratu. [http://aragorn.pb.bialystok.pl/~boldak/DIP/CPO-W05-v01-50pr.pdf]
Stosując dylację i erozję możemy określić brzeg obrazu odejmujac od siebie obraz po dylacji i przed nią lub obraz przed erozją i po niej.
Przykład.
Otwarcie morfologiczne (opening) jest złożeniem erozji i dylacji. W wyniku złożenia operacji obraz zachowuje swój początkowy rozmiar, ale może stracić niektóre detale (np. wystające fragmenty). Im większy jest element strukturyzujący tym więcej detali znika. Złożenie kilku erozji i takiej samej liczby dylacji jest równoważne otwarciu z odpowiednio większym elementem strukturyzującym. [http://aragorn.pb.bialystok.pl/~boldak/DIP/CPO-W05-v01-50pr.pdf]
Zamknięcie morfologiczne (closing) jest złożeniem dylacji i erozji. W wyniku złożenia operacji obraz zachowuje swój początkowy rozmiar, a wklęsłości (m.in. „dziury”) są uwypuklane. Kolejne otwarcia nie zmieniają „zamkniętego” obrazu. Im większy jest element strukturyzujący tym więcej detali jest pochłanianych przez obraz (łączą się ze sobą). [http://aragorn.pb.bialystok.pl/~boldak/DIP/CPO-W05-v01-50pr.pdf]
Stosując odpowiednie elementy strukturyzujące możemy badać pewne cechy obrazu np. znajdywać rogi. W tym celu definiujemy cztery elementy strukturyzujące takie, że obraz ma róg w miejscu, w którym któryś z tych elementów pasuje do obrazu.
Pogrubianie – znajdywanie wypukłej powłoki. Stosując następujące osiem elementów możemy „uwypuklać” obraz.
Niech S={p1,. , pn} będzie zbiorem n punktów na płaszczyźnie Niech S={p1, ... , pn} będzie zbiorem n punktów na płaszczyźnie. Dla każdego z punktów należących do S określamy obszar Voronoi zawierający punkty płaszczyzny, dla których dany punkt jest najbliższy spośród punktów z S, tzn.: VD(pi)={x: ii d(pi,x) d(pj,x)}. Punkty należące do brzegów obszarów Voronoi tworzą diagram Voronoi. Szkieletem (lub osią medialną) wielokąta prostego nazywamy graf podziału jego wnętrza na obszary Voronoi wyznaczane przez krawędzie wielokąta.
W podobny sposób jak uwypuklenie można pogrubiać obraz w celu znalezienia podziału odpowiadającego diagramowi Voronoi (należy uważać, aby rosnące obszary nie naszły na siebie). Natomiast tworząc coraz cieńszy obraz możemy w wyniku otrzymać jego szkielet.
Szkielet prosty. Załóżmy, że dany wielokąt będzie „obkurczać się” w taki sposób, że jego wierzchołki będą poruszać się wzdłuż dwusiecznych kątów wyznaczanych przez proste zawierające boki wielokąta. Mamy dwa rodzaje zdarzeń, które powo-dują zmianę kierunku poruszania się wierzchołka: - zdarzenie krawędziowe, gdy znika krawędź „obkurczającego się” wielokąta, zdarzenie rozdzielające, gdy krawędź „obkurczającego się” wielokąta jest rozbijana przez wierzchołek poruszający się w przeciwnym kierunku.
Szkielety można parametryzować, aby wprowadzić hierarchię, wynikiem której są różnej dokładności przybliżenia wyjściowego obrazu. [X.Bai et al. IEEE Transsactions on Pattern Analysis and Machine Intelligeence 29 (2007)]
Przykład. [X.Bai et al. IEEE Transsactions on Pattern Analysis and Machine Intelligeence 29 (2007)]
Dziękuję za uwagę.