Laboratorium Cyfrowego Przetwarzania Obrazów
Transkrypt
Laboratorium Cyfrowego Przetwarzania Obrazów
Laboratorium Cyfrowego Przetwarzania Obrazów Ćwiczenie 3 Interpolacja i przekształcenia geometryczne obrazów Opracowali: - dr inż. Beata Leśniak-Plewińska - dr inż. Jakub Żmigrodzki Zakład Inżynierii Biomedycznej, Instytut Metrologii i Inżynierii Biomedycznej, Wydział Mechatroniki Politechniki Warszawskiej. Warszawa, 2015 Zakład Inżynierii Biomedycznej, Wydział Mechatroniki, Politechnika Warszawska. Laboratorium CPOB 1. Cel ćwiczenia. W ramach ćwiczenia studenci zapoznają się z podstawowymi metodami interpolacji obrazów (dwuliniową, dwusześcienną i metodą najbliższego sąsiada) oraz histogramem obrazów. 2. Wymagane wiadomości Teoria histogramu obrazu i jego wyrównywania oraz metod interpolacji obrazu w zakresie wykładu do przedmiotu. 3. Literatura 1. Notatki z wykładu 2. R. Tadeusiewicz i P. Korohoda "Komputerowa analiza i przetwarzanie obrazów", Wydawnictwo Fundacji Postępu Telekomunikacji, Kraków, 1997 (http://winntbg.bg.agh.edu.pl/skrypty2/0098/komputerowa_analiza.pdf) 3. R.C. Gonzalez i R.E. Woods "Digital Image Processing Using MATLAB", Prentice Hall, 2004 Ćwiczenie 3 - Interpolacja i przekształcenia geometryczne obrazów 2/9 Zakład Inżynierii Biomedycznej, Wydział Mechatroniki, Politechnika Warszawska. Laboratorium CPOB 4. Spis (niestandardowych) funkcji Matlab'a przydatnych podczas realizacji ćwiczenia. h = pokaz_obraz (X, 'NazwaParametru', WartoscParametru) Funkcja służy do tworzenia ilustracji danych 2D. Parametrami wyjściowymi funkcji są: h – uchwyt do obiektu graficznego, Parametrami wejściowymi funkcji są: X – dane obrazowe (macierz), 'NazwaParametru', WartoscParametru - nazwa i wartość parametru określającego wybrane właściwości obiektu graficznego. Parametry opisano w poniższej tabeli. Nazwa parametru Opis i wartości parametru 'mapa' macierz liczbowa określająca paletę barw; standardowe palety barw dostępne w MATLAB'ie: hsv, jet, hot, gray, cool, bone, copper, pink, prism, flag. Wartość domyślna: gray; 'typ' Łańcuch znakowy określający czy dane wejściowe zostaną przeskalowane przed wyświetleniem: 'skalowany' - tworzy ilustrację, w której wartości pixeli obrazu (elementów macierzy) są przeskalowane tak, aby wykorzystać pełen zakres aktualnej palety barw; 'nieskalowany' - brak skalowania. Wartość domyślna: 'skalowany' Przykłady: h = pokaz_obraz(lena, 'mapa', gray, 'typ', 'nieskalowany'); Powyższe polecenie utworzy ilustrację 2D danych zawartych w zmiennej lena. Paletą barw będą odcienie szarości. Dane nie będą skalowane. Ponadto polecenie zwróci uchwyt do utworzonego obiektu graficznego (ilustracji) i przypisze go zmiennej h. pokaz_obraz(lena); Powyższe polecenie utworzy ilustrację 2D danych zawartych w zmiennej lena. Paleta barw i rodzaj skalowania będą miały wartości domyślne. Ćwiczenie 3 - Interpolacja i przekształcenia geometryczne obrazów 3/9 Zakład Inżynierii Biomedycznej, Wydział Mechatroniki, Politechnika Warszawska. Laboratorium CPOB E= mse (X,XI) Funkcja służy do wyznaczania błędu średnio-kwadratowego określonego wzorem: m n 1 1 E= ⋅ ∑ ∑ X ij − XI ij 2 m n i=1 j=1 gdzie: Xij - element obrazu wzorcowego, XIij - element obrazu przetworzonego, m i n – wymiary obrazów. Parametrami wyjściowymi funkcji są: E – błąd średnio-kwadratowy Parametrami wejściowymi funkcji są: X – macierz reprezentująca obraz wzorcowy, XI - macierz reprezentująca obraz przetworzony. Wymiary obrazów (liczba wierszy i kolumn) X i XI muszą być identyczne. Przykłady: E = mse(X,XI); Powyższa komenda wyznaczy błąd średnio-kwadratowy dla obrazu przetworzonego zawartego w zmiennej XI w porównaniu do obrazu wzorcowego X. Ćwiczenie 3 - Interpolacja i przekształcenia geometryczne obrazów 4/9 Zakład Inżynierii Biomedycznej, Wydział Mechatroniki, Politechnika Warszawska. Laboratorium CPOB Z = przeksztalc_obraz (X, 'NazwaParametru', WartoscParametru) Funkcja służy do wykonywania wybranych przekształceń geometrycznych obrazu. Parametrami wyjściowymi funkcji są: Z – dane 2D (macierz) będące wynikiem transformacji geometrycznej, Parametrami wejściowymi funkcji są: X – dane wejściowe 2D (macierz), dla których wykonywana jest transformacja geometryczna 'NazwaParametru', WartoscParametru - nazwa i wartość parametru określającego sposób realizacji przekształcenia. Parametry opisano w poniższej tabeli. Nazwa parametru 'typ' Opis i wartości parametru Łańcuch znakowy określający rodzaj transformacji geometrycznych: 'translacja' - translacja 'obrot' - obrót 'skalowanie'- skalowanie Powyższe transformacje wykonywane są z wykorzystaniem operacji opisanych układami równań dla współrzędnych punktów obrazu (Tabela 1) 'Tform' - transformacja geometryczna opisana za pomocą macierzy T (Tabela 1). Transformacja wykonywana jest z wykorzystaniem rachunku macierzowego, a przekształcenie określone jest za pomocą macierzy T (Tabela 1) 'wymiar' Macierz określająca wymiary transformacji. W przypadku transformacji wykorzystujących układy równań współrzędnych ('typ' = 'translacja', 'obrot' lub 'skalowanie') wartość parametru 'wymiar' jest wektorem trójelementowym o postaci: T = [tx ty 0] - translacja o wektor o składowych t x (oś x) i ty (oś y) (wartości składowych tx i ty wektora w pikselach) T = [0 0 α] - obrót o kąt α (wartość kąta w radianach) T = [sx sy 0] - skalowanie o czynnik sx dla osi x i sy dla osi y W przypadku transformacji wykorzystujących rachunek macierzowy ('typ' = 'Tform') wartość parametru 'wymiar' jest macierzą T w odpowiedniej postaci (Tabela 1). 'kierunek' Łańcuch znakowy określający kierunek transformacji. W przypadku transformacji wykorzystujących układy równań współrzędnych ('typ' = 'translacja', 'obrot' lub 'skalowanie'): 'wprost' - element o współrzędnych (v,w) w obrazie pierwotnym jest Ćwiczenie 3 - Interpolacja i przekształcenia geometryczne obrazów 5/9 Zakład Inżynierii Biomedycznej, Wydział Mechatroniki, Politechnika Warszawska. Laboratorium CPOB kopiowany do elementu o współrzędnych (x,y) w obrazie wynikowym; wartości współrzędnych (x,y) wynikają z układu równań opisujących zastosowane przekształcenie; 'odwrotny' - do piksela o współrzędnych (x,y) w obrazie wynikowym kopiowany jest piksel o współrzędnych (v,w) z obrazu pierwotnego; wartości współrzędnych (v,w) wynikają z układu równań opisujących zastosowane przekształcenie odwrotne. W przypadku, gdy typ transformacji określony jest jako 'Tform', kierunek transformacji jest zawsze odwrotny, niezależnie od podanej wartości parametru 'kierunek'. Tabela 1. Wybrane przekształcenia geometryczne obrazu Przekształcenie Macierz T translacja (wartości składowych wektora tx i ty w punktach) 1 0 0 T= 0 1 0 tx ty 1 obrót o kąt α cos sin 0 T = −sin cos 0 0 0 1 Skalowanie sx 0 0 T= 0 s y 0 0 0 1 [ Układ równań współrzędnych punktów ] [ x=vt x y=wt x ] x=v⋅cos α −w⋅sin α y=v⋅sinα w⋅cos α [ ] x=s x v y=s y w Przykłady: Z = przeksztalc_obraz(X,'typ','translacja','wymiar',[5.5 11 0],... 'kierunek','wprost'); Powyższe polecenie wykona operację translacji obrazu X o wektor o składowych tx=5.5, ty=11, współrzędne obrazu wejściowego zostaną wprost przekształcone na współrzędne obrazu wynikowego z wykorzystaniem równań opisujących przekształcenie (translację). tform = [1 0 0; 0 1 0; 5.5 11 1]; Z = przeksztalc_obraz(X,'typ','Tform','wymiar',tform); Powyższe polecenie wykona operację translacji obrazu X o wektor tx=5.5, ty=11, z wykorzystaniem rachunku macierzowego. Ćwiczenie 3 - Interpolacja i przekształcenia geometryczne obrazów 6/9 Zakład Inżynierii Biomedycznej, Wydział Mechatroniki, Politechnika Warszawska. Laboratorium CPOB 4. Przebieg ćwiczenia Przed przystąpieniem do realizacji ćwiczenia należy poprosić prowadzącego o wskazanie folderu zawierającego dane niezbędne do realizacji ćwiczenia. Oznaczenia użyte w tekście: (sygnal) – nazwa funkcji, która powinna zostać użyta w celu rozwiązania danego problemu, s1 – nazwa zmiennej, – polecenie MATLAB'a, które należy wpisać w okno komend (ang.: s1a=s1(1:end/4) command window). s t= A⋅sin 2⋅⋅ f⋅t - opis w notacji matematycznej. 1. Interpolacja. a) Z plików 'kidneys.bmp', 'kidneys_ds2.mat', 'kidneys_ds4.mat' i 'kidneys_ds8.mat' załaduj do przestrzeni roboczej obraz kidneys, oraz obrazy: kidneys_ds2, kidneys_ds4 i kidneys_ds8. Trzy ostatnie obrazy są wynikiem odpowiednio 2-, 4- i 8-mio krotnej decymacji („podpróbkowania”) obrazu kidneys. b) Wyświetl obrazy: kidneys, kidneys_ds2, kidneys_ds4 i kidneys_ds8 (pokaz_obraz, domyślne wartości parametrów: 'typ' i 'mapa'). c) Przywróć pierwotny rozmiar każdemu ze zdecymowanych obrazów stosując kolejno trzy rodzaje interpolacji: dwuliniową (ang. bilinear), dwusześcienną (ang. bicubic) i metodę najbliższego sąsiada (ang. nearest neighbour) (imresize – standardowa funkcja biblioteki Image Processing pakietu MATLAB). d) Wyświetl obrazy po zmianie rozmiaru dla każdej z metod interpolacji (pokaz_obraz, domyślne wartości parametrów: 'typ' i 'mapa') i porównaj z obrazem kidneys. e) Dla każdej metody interpolacji oceń dokładność operacji zmiany rozmiaru obrazu stosując jako kryterium błąd średnio-kwadratowy (mse). f) Wyniki przedstaw jako wykres błędu średnio-kwadratowego w funkcji krotności interpolacji (plot). Która z zastosowanych metod interpolacji jest najdokładniejsza i dlaczego? Od czego zależy dokładność metody interpolacji? g) Oceń szybkość każdej z trzech metod metod interpolacji dwuliniowej, dwusześciennej i metody najbliższego sąsiada. W tym celu dla obrazu kidneys wykonaj kolejno jego powiększenie dla krotności powiększenia (interpolacji) równych: 2,4,6,…,30 (2:2:30) oraz dla trzech metod interpolacji: dwuliniowej, dwusześciennej i metody najbliższego sąsiada (pętla for, instrukcje: tic … toc, funkcja imresize). h) Wyniki przedstaw jako wykres czasu wyznaczania powiększonego obrazu względem krotności jego powiększenia (interpolacji) (plot). Ćwiczenie 3 - Interpolacja i przekształcenia geometryczne obrazów 7/9 Zakład Inżynierii Biomedycznej, Wydział Mechatroniki, Politechnika Warszawska. Laboratorium CPOB Która z zastosowanych metod interpolacji jest najszybsza i dlaczego? 1. Przekształcenia geometryczne. a) Z pliku 'simpson256.bmp' załaduj do przestrzeni roboczej obraz simpson. b) Wyświetl obraz simpson (pokaz_obraz, domyślne wartości parametrów: 'typ' i 'mapa'). c) Wykonaj trzy przekształcenia geometryczne obrazu simpson dla parametru 'kierunek' o wartości 'wprost' i dla następujących parametrów przekształcenia (parametry: 'typ' i 'wymiar'): • translację o wektor o składowych tx=55.5 i ty=111 ('typ' = 'translacja'), • obrót o kąt α = -30° ('typ' = 'obrot') • skalowanie ze skalą o składowych sx=2 i sy=1.5 ('typ' = 'skalowanie'). d) Zilustruj wyniki przekształceń (pokaz_obraz, domyślne wartości parametrów: 'typ' i 'mapa'). e) Powtórz przekształcenia geometryczne obrazu simpson z p.p. c) dla parametru 'kierunek' o wartości 'odwrotne' (pozostałe parametry bez zmian). f) Zilustruj wyniki poszczególnych przekształceń (pokaz_obraz, domyślne wartości parametrów: 'typ' i 'mapa'). Dla jakiej wartości parametru 'kierunek' po przekształceniu geometrycznym uzyskujemy jakościowo lepsze obrazy i dlaczego (p. 1.c) i 1.e) )? g) Powtórz przekształcenia geometryczne obrazu simpson z p.p. c) dla parametru 'typ' o wartości 'Tform' (domyślna wartość parametru 'kierunek'). h) Zilustruj wyniki przekształceń (pokaz_obraz, domyślne wartości parametrów: 'typ' i 'mapa'). 2. Zadanie a) Porównaj czas realizacji przekształceń geometrycznych stosujących: składanie przekształceń prostych ('typ' = 'Tform') oraz przekształcenie złożone ('typ' = 'Tform'). Test przeprowadź dla 100-krotnej translacji obrazu simpson o wektor tx=1 (pętla for, instrukcje tic toc). b) Zilustruj wyniki p.p. a) (pokaz_obraz, domyślne wartości parametrów: 'typ' i 'mapa'). Wyjaśnij dlaczego uzyskane czasy realizacji przekształceń są różne? Ćwiczenie 3 - Interpolacja i przekształcenia geometryczne obrazów 8/9 Zakład Inżynierii Biomedycznej, Wydział Mechatroniki, Politechnika Warszawska. Laboratorium CPOB Sprawozdanie Ćwiczenie 3 Interpolacja i przekształcenia geometryczne obrazów L.p. Imię i nazwisko Grupa Data wykonania 1 2 3 Punkt Liczba punktów Uzyskana ćwiczenia do uzyskania liczba punktów 1 4 2 4 3 2 Uwagi prowadzącego Ćwiczenie 3 - Interpolacja i przekształcenia geometryczne obrazów 9/9