Geometria obrazu Wykład 3 Rozpoznawanie obrazu 1. Suma Minkowskiego 2. Morfologia matematyczna 3. Szkielety
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 obszar 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(n 2 ) O(n 2 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(n 2 m 2 ), 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 s ij odpowiada wartościowaniu elementu strukturującego a o ij odpowiednich pikseli obrazu, to piksel wskazywany przez punkt początkowy przyjmuje wartość V( s ij o ij ).
Przykład. -Rozmiar obrazu wzrasta (kontur staje się wyraźniejszy). -Znikają detale (jasne elementy są przykrywane ciemnymi). [
Przykład. Dylacja elementem strukturującym różnym od kwadratu. [
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 s ij odpowiada wartościowaniu elementu strukturującego a o ij odpowiednich pikseli obrazu, to piksel wskazywany przez punkt początkowy przyjmuje wartość ( s ij o ij ).
Przykład. -Obraz zmniejsza się. -Niektóre fragmenty obrazu zanikają. -Rosną „0-dziury” i przybierają kształt elementu strukturyzującego. [
Przykład. Erozja elementem strukturującym różnym od kwadratu. [
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. [
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ą).
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={p 1,..., p n } 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(p i )={x: i i d(p i,x) d(p j,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.
Rozpoznawanie obrazu z pomocą szkieletu. Szkielet dla pewnego spójnego obszaru, aby być przydatnym w rozpoznawaniu obrazu powinien spełniać następujące własności: 1. powinien zachowywać topologiczne informacje o oryginalnym obiekcie, 2. jego położenie powinno być jednoznaczne, 3. nie powinien się zmieniać przy małych deformacjach, 4. powinien zawierać środki maksymalnych kół, które mogłyby być użyte do rekonstrukcji oryginalnego obiektu, 5. nie powinien zmieniać się pod wpływem takich przekształceń przestrzeni takich jak przesunięcia lub obroty, 6. powinien reprezentować istotne wizualnie części obiektu.
Dla danego obrazu możemy tworzyć mniej lub bardziej dokładne szkielety rezygnując z niektórych gałęzi, zmieniając minimalny promień koła wpisanego wewnątrz obrazu lub upraszczając kontur obrazu. [X. Bai et al. IEEE Transactions on Pattern Analysis and Machine Intelligence 29 (2007)]
Jeszcze jedna metoda znajdywania szkieletu. W celu znalezienia szkieletu, dla każdego piksela wykonujemy następujące operacje. 1. Wykorzystując zgromadzone w preprocessingu dane określamy dla danego piksela oraz jego ośmiu sąsiadów najbliższe wybrane punkty brzegowe. 2. Sprawdzamy, czy odległość między odpowiednimi parami najbliższych punktów brzegowych jest większa od parametru . 3. Sprawdzamy, czy różnica odpowiednich odległości od punktów brzegowych jest niewiększa od odległości badanych punktów. 4. Jeśli dla badanego piksela i przynajmniej jednego z jego sąsiadów otrzymamy pozytywne wyniki w punktach 2 i 3, to dany piksel należy do szkieletu.
Przykład. Wpływ parametru na wygląd szkieletu. [W.-P. Choi et al. Pattern Recognition 36 (2003)]
Aby zmniejszyć rozmiar szkieletu, zachowując jednocześnie możliwie dużo jego cech charakterystycznych, rekurencyjnie zmniejszamy liczbę wierzchołków obiektu. Zaczynamy od zbioru wierzchołków wyznaczających końce gałęzi szkieletu. Następnie analizujemy zależności między kolejnymi odcinkami brzegu. Możemy w tym celu wprowadzić miarę, np. funkcja zależna od kąta między sąsiednimi krawędziami pomnożona przez iloczyn ich długości i podzielona przez sumę długości. Eliminujemy wierzchołki o odpowiednio małej mierze i tworzymy nowy kontur obiektu.
Przykład. Wpływ wyboru konturu na postać szkieletu. [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)]
Sposoby identyfikacji obrazu : 1. Badanie podobieństw szkieletu: -Analiza grafowa (izomorfizm krawędzi). -Przekształcenia zaburzające graf. -Odwzorowania między liśćmi drzewa. 2. Badanie podobieństw szkieletu i konturu. 3. Analiza ścieżek w grafie szkieletu. 4. Badania dla różnych wartości parametrów.
Niebezpieczeństwa. Podobne obiekty mają różne grafy. [X.Bai et al. Int. Journal of Pattern Rec. and Art. Intelligence 22 (2008)]
Podobny graf – różne kształty. [X.Bai et al. Int. Journal of Pattern Rec. and Art. Intelligence 22 (2008)]
Pozytywny wynik dopasowania. [X.Bai et al. IEEE Transsactions on Pattern Analysis and Machine Intelligeence 29 (2007)]
Dziękuję za uwagę.
Ćwiczenia. 1.Złożenie kilku erozji i takiej samej liczby dylacji jest równoważne otwarciu z odpowiednio większym elementem strukturyzującym. 2.W wyniku zamknięcia morfologicznego obraz zachowuje swój początkowy rozmiar, a wklęsłości (m.in. „dziury”) są uwypuklane. 3.Kolejne otwarcia nie zmieniają „zamkniętego” obrazu. 4.Jak można wykorzystać morfologię matematyczną w celu stworzenia diagramu Voronoi ?