Geometria obrazu Wykład 3 Transformaty Rozpoznawanie wielokątów 1. Dualizacja liniowa Problem prostej przecinającej 2. Transformata Hougha 3. Transformata Radona 4. Inne transformaty
Dualizacja liniowa (linear duality). Definicja. Dualizacją liniową nazywamy przekształ-cenie D : R2 R2 przyporządkowujące punktowi (a,b) prostą o równaniu y = ax-b. Przestrzeń obrazów nazywamy przetrzenią dualną. Podobnie możemy zdefiniować przekształ-cenie prostych (niepionowych) w zbiór punktów płaszczyzny. Przykład. Obrazem dualnym punktu p należącego do paraboli y = 0,5x2 jest styczna do tej para-boli w punkcie p.
Problem prostej przecinającej (stabbing line) w R2. Definicja. Dany jest zbiór n odcinków na płaszczyźnie. Problem: Czy istnieje prosta przecinająca wszystkie odcinki ? Jeśli tak, to określ zbiór prostych przecinających.
Fakt. Zbiór prostych przecinających odcinek ab w przestrzeni dualnej przyjmuje postać pod-wójnego klina, którego ramiona są wyzna-czane przez proste D(a) i D(b). Wniosek. Aby rozwiązać problem wystarczy określić w przestrzeni dualnej część wspólną klinów odpowiadających danym odcinkom. Część wspólna n podwójnych klinów od-powiadających danym odcinkom może mieć co najwyżej n spójnych składowych (utożsa-miając punkty w nieskończoności, otrzymu-jemy jedną składową mniej). Składowe są wypukłe (co najwyżej dwie nieskończone).
Algorytm dziel i rządź (divide and conquer algorithm) podziel zbiór S na małe podzbiory ; znajdź w przestrzeni dualnej części wspólne grup klinów odpowiadających podzbiorom zbioru S ; while nie znaleziono przecięcia wszystkich klinów lub któreś z przecięć jest puste do scalaj parami wyniki czastkowe zamiatając kolejne spójne składowe przecięć dualnych obrazów podzbiorów S ; return przecięcie wszystkich klinów ;
Lemat. Część wspólną przecięć dwóch grup stożków można znaleźć w czasie proporcjonalnym do sumy rozmiarów danych przecięć. Dowód. Stożki są monotoniczne względem osi x-ów, więc ich przecięcia również. Dlatego łatwo możemy określić porządek wierzchołków przecięć wzdłuż osi x-ów, czyli strukturę zdarzeń. Do struktury stanu należeć będą aktu-alnie przecinane przez miotłę krawędzie danych przecięć. Zatem rozmiar struktury stanu jest stały. Sprawdzenie, czy aktywne krawędzie krzyżują się wymaga czasu stałego. Zatem algorytm będzie działać w czasie liniowym względem rozmiaru danych wejściowych. Problem prostej przecinającej można rozwiązać w czasie O(n log n).
Transformata Hougha (Hough transform). Prostą o równaniu y = ax + b możemy zapisać w postaci y = (- cos /sin )x + (r/sin ), gdzie (r, ) są biegunowymi współrzędnymi punktu (x,y) względem punktu (0,0). Zatem równanie prostej ma postać r = x cos + y sin . Przestrzeń, którą tworzą pary (r, ), gdzie r R+{0} i [0,), nazywamy przestrzenią Hougha. Gdy ustalimy punkt (x0,y0), przez który przechodzą badane proste otrzymamy równanie r() = Abs(x0 cos + y0 sin ). Zatem punktowi w przestrzeni Hougha odpowiada funkcja sinusoidalna. Transformatą Hougha rozpoznajemy obrazy binarne. [http://en.wikipedia.org/wiki/Hough_transform]
Przykład. [http://en.wikipedia.org/wiki/Hough_transform]
Przykład. [http://lapasoft.wordpress.com/2009/11/04/wykrywanie-linii-za-pomoca-transformaty-hougha/]
Twierdzenie. Z pomocą transformaty Hougha można jednoznacznie wyznaczyć położenie dowolnego wielokąta wypukłego (Rozenfeld, Weiss 95). Transformata Hougha nie określa jednoznacznie położenia wielokąta niewypukłego (Milanfar 96). Transformatę Hougha można wykorzystać również do znajdywania np. okręgów o określonym promieniu. Wychodząc z równania (x-a)2 + (y-b)2 = r2 w przestrzeni Hougha odpowiadającej parom (a,b) jaśniejsze będą środki poszukiwanych okręgów i okręgi o tym samym środku i dwa razy większym promieniu.
Przykład. [http://members.chello.pl/j.kaprzyk/cw2/Proj02.pdf ]
Transformata Radona (Radon transform). Transformata Radona podaje liczbę pikseli obrazu binarnego w rzucie na prostą umieszczoną pod kątem względem osi x-ów. Transformacja jest dana wzorem , gdzie . Transformację Radona stosuje się m.in.. w tomografii.
Obraz kwadratu przy transformacji Radona. Przykład. Obraz kwadratu przy transformacji Radona. [http://www.mathworks.com/access/helpdesk_r13/help/toolbox/images/transfo9.html]
Stosując w różny sposób transformacje odwrotne transformacji Radona możemy otrzymać obraz początkowy. W tym celu stosujemy np. złożenie z transformatą Fouriera lub tzw. projekcję wsteczną, tzn. rozsmarowujemy obraz z odpowiednią gęstością dla każdego kierunku rzutowania, a następnie dzielimy otrzymaną w każdym pikselu sumę wartości przez liczbę rzutowań.
[http://users.uj.edu.pl/~korecki/optykax/w8_2015.pdf]
[http://users.uj.edu.pl/~korecki/optykax/w8_2015.pdf]
Stosuje się ją m.in. do wyszukiwania elementów podobnych na obrazie. Inne transformacje. Dyskretna transformata Fouriera (Fourier transform) dla dyskretnego sygnału dwuwymiarowego dana jest wzorem Stosuje się ją m.in. do wyszukiwania elementów podobnych na obrazie. http://matrix.umcs.lublin.pl/~lbocian/Studia/Seminarium/Przetwarzanie.pps
Dyskretna Transformata Cosinusowa (discrete cosine transform) ma zastosowanie w kompresji obrazów jpg oraz konwersji mpeg. DCT przekształca skończony ciąg N liczb rzeczywistych g(0), …, g(N-1) w ciąg liczb rzeczywistych G(0), …, G(N-1) zgodnie z zależnościami: G(k) są nazywane współczynnikami DCT lub transformatą. Definiuje się również odwrotną dyskretną transformację cosinusową (IDCT): Zaletą stosowania transformaty DCT w kompresji jest to, że większość współczynników jest zwykle bliska 0 – po kwantyzacji wyzerują się, co redukuje liczbę bitów potrzebną do reprezentacji sygnału bez wnoszenia dużego błędu. Standardowy algorytm to podział obrazka na bloki o stałych rozmiarach (np. 8x8), transformacja tych bloków, kwantyzacja i kompresja bezstratna.
Transformata falkowa (wavelet transform). s jest funkcją sygnału, - falką, a i b – parametrami skalującymi (wielkość i przesunięcie falki). Stosuje się ją do lokalizacji zaburzeń – eliminacji szumów lub dekompozycji obrazu. Transformata Wignera-Ville’a (Wigner-Ville transform). x jest zespoloną funkcją sygnału, a x* funkcją do niej sprzężoną. oznacza częstość ( =2f). Transformata wygładza obraz.
Transformata Gabora (Gabor transform). Stosuje się np. do analizy tekstur, wykrywania regularności. [http://sound.eti.pg.gda.pl/akmuz/index.php/Transformacja_Gabora]
Dziękuję za uwagę.
Ćwiczenia. Co jest dualnym obrazem zbioru współliniowych punktów ? Dlaczego na przykładzie ze slajdu 8 przez jaśniejsze punkty przechodzi ciemniejsza prosta ? Dlaczego w przestrzeni Hougha odpowiadającej okręgom, jaśniejsze będą środki poszukiwanych okręgów i okręgi o tym samym środku i dwa razy większym promieniu (patrz slajd 11) ? Jaki jest obraz koła, dwóch odcinków ((nie)równoległych, (nie)przecinających się) po zastosowaniu transformaty Radona ?