Informatyka, S1 sem. letni, 2014/2015, wykład#4 Filtracja nieliniowa obrazu dr inż. Paweł Forczmański Katedra Systemów Multimedialnych, Wydział Informatyki ZUT 1 / 61
Proces przetwarzania obrazów Obraz f(x,y) Konwersja obrazu do postaci czytelnej dla komputera Obróbka obrazu Konwersja obrazu do postaci wyjściowej Obraz wyjściowy Wydzielenie cech z obrazu Cechy 2 / 61
Zakres wykładu Filtracja nieliniowa: medianowa, minimalna, maksymalna Operatory morfologiczne Pocienianie (thinning) alg. Hilditcha Lokalizacja kształtów (transf. Hougha) 3 / 61
FILTRY NIELINIOWE obraz wynikowy tworzony jest z ograniczonej liczby pikseli obrazu źródłowego punkty obrazu wynikowego są nieliniową funkcją punktów obrazu źródłowego i maski filtra 4 / 61
FILTR MEDIANOWY pojęcie mediany, jako jednego z kwantyli, które dzielą zbiór danych na przedziały spełniające wybrane relacje ilościowe mediana dzieli zbiór na dwa równoliczne podzbiory mediana przyjmuje wartość elementu środkowego w zbiorze (nie średnią!!!) wykorzystanie algorytmów sortowania do realizacji filtracji medianowej 5 / 61
Przykład Zbiór wejściowy: A={9, 88, 1, 15, 43, 100, 2, 34,102} sortowanie elementów zbioru A: B=sort(A) B={1, 2, 9, 15, 34, 43, 88, 100, 102} wybór mediany zbioru B: mediana(b)=34 6 / 61
IMPLEMENTACJA DLA OBRAZU 7 / 61
Własności f. medianowej Pewne własności filtru medianowego można przybliżyć posługując się jednowymiarowym modelem filtrowanego sygnału (wysokości słupków odpowiadają poziomowi jasności pikseli). przed mediana uśrednianie mediana uśrednianie po Pojedyncze zakłócenie Wpływ na brzeg obiektu 8 / 61
Własności f. medianowej Obr. zaszumiony uśrednianie mediana Obraz RTG Po filtr. medianowej 9 / 61
Własności f. medianowej oryginał 3x3 5x5 7x7 9x9 10 / 61
Inne filtry nieliniowe: - filtr maksymalny B=sort(A) - filtr minimalny B=sort(A) B={ 1, 2, 9, 15, 34, 43, 88, 100, 102 } B={ 1, 2, 9, 15, 34, 43, 88, 100, 102 } 11 / 61
Przekształcenia kontekstowe Przykładem przekształceń kontekstowych są: Filtry adaptacyjne, które zmieniają charakterystykę działania w zależności od cech analizowanego obszaru. 12 / 61
Przekształcenia kontekstowe Wartości piksela po przetwarzaniu logicznym, można uzyskać korzystając z jednej z poniższych formuł: B A X D C Analogicznie można zdefiniować tę operację dla obrazów w pełnej skali szarości: 13 / 61
Morfologia Morfologia: 1. nauka o postaci, ukształtowaniu i budowie organizmów roślinnych i zwierzęcych; 2. ukształtowanie i formy powierzchni Ziemi; 3. dział gramatyki obejmujący fleksję i słowotwórstwo; 4. morfologia matematyczna: dział matematyki oparty na teorii zbiorów 14 / 61
Operacje morfologiczne translacja, dylatacja, erozja 15 / 61
Operacje morfologiczne 16 / 61
Operacje morfologiczne 17 / 61
Operacje morfologiczne 18 / 61
Operacje morfologiczne 19 / 61
Operacje morfologiczne 20 / 61
Operacje morfologiczne 21 / 61
Operacje morfologiczne dla obrazów binarnych. Sąsiedztwo Element strukturujący B jest przenoszony do kolejnych punktów obrazu. W każdym położeniu (x,y) wykonywane są określone operacje Iogiczne na punktach obrazu B znajdujących się pod elementem B. czterospójne a b c ośmiospójne a b c d e f g h i d e f g h i 22 / 61
Efektem operacji erozji jest usunięcie małych obiektów oraz nieistotnych szczegółów dużych obiektów Dylatacja powoduje, że niewielkie dziury optyczne na obrazie zostają wypełnione, a także wygładzają się niewielkie zagłębienia konturu obiektów 23 / 61
Przekształcenia takie jak: erozja i dylatacja posiadają istotną wadę. Zmieniają one w wyraźny sposób pole powierzchni przekształcanych obrazów. Erozja zmniejsza je, a dylatacja zwiększa. Aby wyeliminować tę wadę wprowadzono dwa przekształcenia będące złożeniem poprzednich: Są to otwarcie i zamknięcie, które można zdefiniować następująco: otwarcie = erozja + dylatacja zamknięcie = dylatacja + erozja 24 / 61
Własności użytkowe operacji otwarcia i zamknięcia dla obrazów binarnych: 1. otwarcie usuwa drobne obiekty i drobne szczegóły, jak półwyspy i wypustki, rozłącza niektóre obiekty z przewężeniami 2. zamknięcie wypełnia wąskie wcięcia i zatoki oraz drobne otwory wewnątrz obiektu, może też połączyć leżące blisko siebie obiekty 3. Obie operacje nie zmieniają kształtu ani wymiarów dużych obiektów o wyrównanym gładkim brzegu 25 / 61
Obraz binarny Obraz z zakłóceniami Obraz po op. domknięcia 26 / 61
Obraz binarny Obraz z zakłóceniami Obraz po op. otwarcia 27 / 61
Obraz binarny Obraz z zakłóceniami Obraz po op. domknięcia +otwarcia 28 / 61
Algorytmy ścieniania (thinning) Zastosowanie: przy przetwarzaniu i rozpoznawaniu obrazów, gdyż umożliwiają upraszczanie formy obrazów. Sytuacja, w której zachodzi potrzeba zastosowania algorytmu ścieniania. Ciemne elementy obrazu są wynikiem kwantowania rysunku linii, obrazowanej ostatecznie w postaci zbioru linii. Ścienianie jest potrzebne aby odtworzyć liniową strukturę obrazu wejściowego nie niszcząc jego spójności 29 / 61
Matematyczna definicja ścieniania na płaszczyźnie analogowej: DEFINICJA 1: Niech R będzie zbiorem punktów na płaszczyźnie, B jego brzegiem, a P punktem należącym do R. Najbliższym sąsiadem punktu P na brzegu B jest punkt M należący do B taki, że nie istnieje inny punkt należący do B, którego odległość od punktu P jest mniejsza od odległości PM. Jeżeli punkt P ma więcej niż jednego najbliższego sąsiada, to P nazywamy punktem szkieletowym zbioru R. Zbiór wszystkich punktów szkieletowych jest szkieletem lub osią środkową zbioru R. Z powyższej definicji wynika, że punkty szkieletowe są środkami okręgów zawartych całkowicie w zbiorze R, przy czym nie ma innego okręgu, o tym samym środku i większym promieniu, zawartego w zbiorze R. 30 / 61
Matematyczna definicja szkieletu na płaszczyźnie analogowej: Pojęcie szkieletu wprowadzone zostało przez H. Bluma jako wynik dwóch transformacji: Medial Axis Transform (MAT, Transformacja Osi Środkowej) lub Symmetry Axis Transform (SAT, Transformacja Osi Symetrii). Transformacja MAT określa najbliższe punkty brzegu dla każdego punktu obiektu. Każdy punkt obiektu, który posiada minimum 2 najbliższe punkty brzegowe jest punktem szkieletu. 31 / 61
Matematyczna definicja szkieletu na płaszczyźnie analogowej: A,B punkty szkieletowe, C- punkt poza szkieletem 32 / 61
Przykłady szkieletów Główna cecha: duża wrażliwość na zakłócenia, ponieważ małe naruszenie brzegu powoduje nie tylko naruszenie gałęzi szkieletu, ale również powstawanie nowych gałęzi. a)struktura liniowa sylwetki ściśle odpowiadająca osi środkowej; b)nieoczywista zgodność gałęzi szkieletu i struktury obiektu; c)nieznaczne zakłócenie w sposób istotny zmienia postać szkieletu Szkielety obiektów cienkich dostarczają istotnej informacji o kształcie tych obiektów (a). Nie dotyczy to obiektów grubych (b) 33 / 61
Szkieletyzacja Szkieletyzacja jest operacją pozwalająca wyodrębnić osiowe punkty (szkielety) figur w analizowanym obrazie. 34 / 61
Przykłady szkieletów 35 / 61
Przykłady szkieletów 36 / 61
Cechy szkieletów Ten sam szkielet może należeć do różnych obiektów 37 / 61
Algorytmy ścieniania tworzone w oparciu o siatkę dyskretną Wykorzystano w nich pojęcie powtarzalnych elementów obrazu. W algorytmach tych zmodyfikowano nieco to pojęcie, aby zawsze, gdy jest to możliwe znajdować szkielety, które mają szerokość tylko pojedynczego elementu obrazu. Z tego powodu, opisując istotę algorytmu, będziemy posługiwać się raczej terminem szkieletowy niż powtarzalny. DEFINICJA 2. Szkieletem zbioru R elementów obrazu jest zbiór wyznaczony w następujący sposób. Na początku w zbiorze R należy określić szkieletowe i konturowe elementy obrazu. Następnie usuwa się wszystkie konturowe elementy obrazu, które nie są szkieletowymi, po czym otrzymanym w ten sposób zbiorem zastępuje się zbiór R. Proces ten jest powtarzany aż do uzyskania zbioru zawierającego jedynie szkieletowe elementy obrazu. 38 / 61
Ważną rolę spełnia tu założenie, że można określić dla każdego zbioru te szkieletowe elementy obrazu, które będą zachowywane oraz te elementy obrazu, które nie są szkieletowe i mogą być odrzucone. W większości algorytmów jako szkieletowe elementy obrazu są określone tylko takie elementy, które odpowiadają pewnym wzorcom (przedstawionym na kolejnych slajdach). 39 / 61
Przykłady 40 / 61
Przykłady 41 / 61
Przykłady 42 / 61
Przykłady 43 / 61
Algorytm Hilditcha Definiujemy dwie funkcje A(p) i B(p) w sąsiedztwie 8-spójnym piksela p1 P 9 P 2 P 3 P 98 P 1 P 4 P 97 P 6 P 5 44 / 61
Algorytm Hilditcha W algorytmie decydujemy, czy usunąć lub pozostawić piksel p1 w obrazie. W tym celu oznaczamy otoczenie piksela p1 zgodnie z ruchem wskazówek zegara i definiujemy funkcje: B(p1) = liczba niezerowych sąsiadów piksela p1 A(p1) = liczba wzorców [0,1] w sekwencji p2,p3,p4,p5,p6,p7,p8,p9,p2 np. B(p1)=2, A(p1)=1 P 9 P 2 P 3 B(p1)=2, A(p1)=2 P 9 P 2 P 3 P 98 P 1 P 4 P 97 P 6 P 5 P 98 P 1 P 4 P 97 P 6 P 5 45 / 61
Algorytm Hilditcha Istnieją dwie wersje algorytmu Hilditcha: wykorzystująca okno 4x4 piksele i okno 3x3. W dalszej kolejności omówiona będzie wersja 3x3: Algorytm zakłada wykonanie wielu iteracji. W każdej iteracji sprawdzane są następujące 4 warunki, które określają, czy dany piksel powinien być usunięty: 2 < = B(p1) < = 6 A(p1)=1 p2 p4 p8=0 LUB A(p2)!= 1 p2 p4 p6=0 LUB A(p4)!= 1 Algorytm jest zakończony, kiedy nie ma już pikseli, które należałoby usunąć. 46 / 61
Warunki: przykłady Warunek 1: 2 < = B(p1) < = 6 Warunek 2: A(p1) = 1 Warunek 3: p2 p4 p8=0 LUB A(p2)!= 1 Warunek 4: p2 p4 p6=0 LUB A(p4)!= 1 47 / 61
Kontur obiektu -definicja sąsiedztwa 48 / 61
Kontur obiektu - wyznaczanie 49 / 61
Kontur obiektu długość Wyznaczanie długości obwodu obiektu (konturu) może przebiegać na 3 sposoby: wg ilości punktów konturu (najprostsze, najmniej dokładne) wg środków punktów tworzących kontur (długość boku punktu =1, przekątna = 2) wg punktów skrajnych (najbardziej dokładne) 50 / 61
Transformata Hougha Transformata Hougha jest metodą detekcji kształtów w obrazie poprzez stopniowe kumulowanie wiarygodności. Na wejściu podawany jest obraz z wykrytymi punktami konturów poprzez zastosowanie funkcji detekcji krawędzi, następnie obraz poddawany jest transformacie. Oryginalna metoda Hougha służy do wykrywania prostych. Metodę tę później uogólniono na wykrywanie kształtów dających się opisać analitycznie np. okręgów (Richard Duda and Peter Hart, 1972) oraz na wykrywanie dowolnych kształtów (Dana H. Ballard, 1981). 51 / 61
Transformata Hougha Transformata Hougha wykorzystywana do określenia parametrów okręgów - okrąg o promieniu R i środku (a, b) może zostać opisany poniższym równaniem parametrycznym: Wyznaczając wszystkie pary wartości (x, y) dla wszystkich wartości kąta Θ (0, 360) wyznaczymy współrzędne punktów należących do okręgu. W przypadku obrazu zadanie będzie odwrotne - na podstawie par wartości (x, y) będących współrzędnymi pikseli będziemy starali się znaleźć parametry (a, b, R) opisujące wszystkie okręgi na tym obrazie. 52 / 61
Transformata Hougha Każdy punkt w przestrzeni geometrycznej (z lewej) generuje okrąg w przestrzeni parametrycznej (z prawej). Punkt o współrzędnych (a1, b1, R1) uzyskuje jeden głos. Kiedy operacje powtórzymy dla wszystkich punktów na obrazie okręgi z przestrzeni Hougha przetną się w punkcie (a, b). Uzyska on największa liczbę głosów, tym samym będzie prawdopodobnie stanowił środek okręgu z przestrzeni geometrycznej. a1, b1, R1 (a,b) a2, b2, R2 53 / 61
Transformata Hougha : przykład Od lewej: fragment obrazu wejściowego, obraz wejściowy po konwersji do skali szarości, wykryte krawędzie, akumulator, obraz wejściowy z zaznaczonym środkiem wykrytego okręgu 54 / 61
Transformata Hougha : detekcja linii Prosta może zostać opisana za pomocą następującego równania: Jako ze znamy wartości (x, y) naszym zadaniem jest znalezienie wartości parametrów (a, b). W tym celu wykorzystujemy t. Hougha. Linia o równaniu y = a0x + b0 znajdująca się na obrazie odpowiada jednemu punktowi w przestrzeni parametrycznej (Hough). 55 / 61
Transformata Hougha : detekcja linii Podobnie, punkt z przestrzeni obrazu o współrzędnych (x0, y0) odpowiada zbiorowi rozwiązań równania: a wiec linii z przestrzeni Hough a. 56 / 61
Transformata Hougha : detekcja linii w układzie biegunowym Równanie kierunkowe pozwala na przedstawienie dowolnej prostej z wyjątkiem tych, które są równoległe do osi OY (pionowe). Dodatkowo współczynnik kierunkowy a prostych niemalże pionowych przyjmuje duże wartości.nieznane są również zakresy wartości jakie mogą przyjmować zarówno współczynnik kierunkowy jak i przesuniecie. Te przeszkody spowodowały wyparcie reprezentacji prostej przy pomocy równania kierunkowego na rzecz reprezentacji biegunowej (polarnej) 57 / 61
Transformata Hougha : detekcja linii w układzie biegunowym Obraz jest reprezentowany przez piksele o współrzędnych kartezjańskich (x, y). Prostą można zapisać jako kąt nachylenia θ i odległość od początku układu współrzędnych ρ. Są to też dwie współrzędne, dlatego można utworzyć prostokątny zbiór punktów w układzie współrzędnych θ, ρ (przestrzeń parametrów), w którym każdy punkt reprezentuje prostą. (x,y ) 58 / 61
Transformata Hougha : detekcja linii w układzie biegunowym Ponieważ oryginalny obraz ma ograniczone rozmiary, współrzędne ρ i θ zbioru punktów reprezentujących proste są ograniczone: 0 < θ < π, -R < ρ < R, gdzie R przekątna obrazu, więc zbiór ten można ograniczyć, z założoną dokładnością, do skończonej liczby punktów θ ρ 59 / 61
Transformata Hougha : detekcja linii w układzie biegunowym Wykrywanie linii opiera się na głosowaniu charakterystyczny piksel (wykryty np. w wyniku wykrywania krawędzi) "głosuje" tj. dodaje pewną jednostkową liczbę do wartości tych punktów w zbiorze prostych, które reprezentują proste przechodzące przez ten piksel. Wynikowy zbiór, potraktowany jako obraz, zawiera maksima (jasne punkty), reprezentujące proste wykryte w oryginalnym obrazie. 60 / 61
Transformata Hougha : przykłady 61 / 61