Laboratorium Cyfrowego Przetwarzania Obrazów
Transkrypt
Laboratorium Cyfrowego Przetwarzania Obrazów
Laboratorium Cyfrowego Przetwarzania Obrazów Ćwiczenie 2 Histogram i arytmetyka 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 I Cel ćwiczenia W ramach ćwiczenia studenci zapoznają się z podstawowymi przekształceniami geometrycznymi obrazów (translacją, obrotem i skalowaniem) oraz podstawowymi operacjami arytmetycznymi na obrazach (suma, różnicą, różnica bezwzględną, iloczynem i ilorazem). II Wymagane wiadomości 1. Przekształcenia geometryczne obrazów: rodzaje, sposób realizacji, artefakty. 2. Operacje arytmetyczne na obrazach: rodzaje, skutki ograniczonego zakresu wartości. III 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 2 – Histogram i arytmetyka obrazów 2/8 Zakład Inżynierii Biomedycznej, Wydział Mechatroniki, Politechnika Warszawska. Laboratorium CPOB IV 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ą: 1. h – uchwyt do obiektu graficznego, Parametrami wejściowymi funkcji są: 1. X – dane obrazowe (macierz), 2. '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 2 – Histogram i arytmetyka obrazów 3/8 Zakład Inżynierii Biomedycznej, Wydział Mechatroniki, Politechnika Warszawska. Laboratorium CPOB Z = arytmetyka_obrazow (X,Y, 'NazwaParametru', WartoscParametru) Funkcja służy do wykonywania wybranych operacji arytmetycznych. Parametrami wyjściowymi funkcji są: 1. Z – wynik operacji arytmetycznej, Parametrami wejściowymi funkcji są: 1. X,Y – dane wejściowe (macierz lub skalar) dla których wykonywana jest operacja arytmetyczna 2. 'NazwaParametru', WartoscParametru - nazwa i wartość parametru określającego sposób tworzenia danych wynikowych. Parametry opisano w poniższej tabeli. Nazwa parametru 'operator' Opis i wartości parametru Łańcuch znakowy określający operator arytmetyczny. Zaimplementowane operatory: '+' - operator dodawania '-' - operator odejmowania '.*' - operator mnożenia tablicowego './' - operator dzielenia tablicowego '|-|' - operator wartości bezwzględnej różnicy (odejmowania) (np.: |X-Y|). 'przepelnienie' Parametr określający sposób postępowania w przypadku gdy wartość wyniku operacji arytmetycznej przekracza zakres wartości dla danej klasy danych (w ćwiczeniu zastosowane dane klasy uint8, dla którego wartość minimalna wynosi 0 a maksymalna 28-1): 'saturacja' – elementy o wartościach wyższych od wartości maksymalnej dla danej klasy danych przyjmują wartość maksymalną, a o wartościach niższych od minimalnej – wartość minimalną; 'przewiniecie' – elementy o wartości przekraczającej zakres wartości dla danej klasy danych przyjmują wartość będącą wynikiem działania: wartość modulo p lub max-|wartość modulo p| (p - liczba wartości jakie może przyjmować zmienna danej klasy danych). Wartość domyślna: 'saturacja' 'klasa' Parametr określa klasę danych wynikowych. Standardowe liczbowe klasy danych MATLAB'a: 'uint8', 'uint16', 'uint32', 'uint64', 'int8', 'int16', 'int32', 'int64', 'single', 'double'. Przykłady: Z = arytmetyka_obrazow(X,100,'operator','+','przepelnienie','przewiniecie'); Powyższe polecenie wykona operację dodania do danych wejściowych X wartości skalarnej równej 100. Wartości przekraczające 255 zostaną „przewinięte”, tzn. potraktowane jako wynik działania: mod(x, 256), x – wartość elementu obrazu X. Ćwiczenie 2 – Histogram i arytmetyka obrazów 4/8 Zakład Inżynierii Biomedycznej, Wydział Mechatroniki, Politechnika Warszawska. Laboratorium CPOB [Wz Pz]= hist_obrazu (X) Funkcja służy do wyznaczania i ilustrowania histogramu obrazu. Parametrami wyjściowymi funkcji są: 1. Wz – wektor liczebności elementów przypadających do określonego przedziału klasowego, 2. Pz – wektor przedziałów klasowych. Dla danych typu uint8 wektor ten zawsze zawiera 256 elementów o wartościach całkowitych z przedziału 0255. Parametrami wejściowymi funkcji są: 1. X – macierz reprezentująca obraz, dla którego wyznaczany jest histogram. Przykłady: [Wz Pz] = hist_obrazu(X); Powyższa komenda wyznaczy histogram obrazu zawartego w zmiennej X oraz stworzy jego ilustrację graficzną. Ćwiczenie 2 – Histogram i arytmetyka obrazów 5/8 Zakład Inżynierii Biomedycznej, Wydział Mechatroniki, Politechnika Warszawska. Laboratorium CPOB V 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, s1a=s1(1:end/4) – polecenie Matlab'a, które należy wpisać w okno komend (ang.: command window). s t= A⋅sin 2⋅⋅ f⋅t - opis w notacji matematycznej. 1. Histogram a) Z plików 'brain.bmp', 'brain_1.bmp' i 'brain_2.bmp' załaduj do przestrzeni roboczej obrazy: brain, brain_1 i brain_2. b) Wyświetl obrazy: brain, brain_1 i brain_2 (pokaz_obraz, domyślne wartości parametrów: 'typ' i 'mapa'). c) Wyznacz i zilustruj histogramy obrazów: brain, brain_1 i brain_2 (hist_obrazu). Wyjaśnij wyniki uzyskane w p. 1.c. Jaką informację o obrazie zawiera jego histogram? d) Wyznacz i zilustruj histogramy fragmentów obrazów: brain, brain_1 i brain_2 (fragmenty o współrzędnych: x1=100, y1=100, x2=156, y2=156) (hist_obrazu). Wyjaśnij wyniki uzyskane w p. 1.d. e) Z pliku 'lungs.bmp' załaduj do przestrzeni roboczej obraz: lungs. f) Wyświetl obraz: lungs (pokaz_obraz, domyślna wartość parametru 'mapa'). parametr 'typ' o wartości 'nieskalowany', g) Wyznacz i zilustruj histogram obrazu: lungs. h) Wyrównaj histogram obrazu lungs (histeq – standardowa funkcja biblioteki Image Processing pakietu MATLAB). i) Skaluj/rozciągnij histogram obrazu lungs. j) Wyświetl obraz lungs po operacji wyrównania i rozciągania histogramu (pokaz_obraz, parametr 'typ' o wartości 'nieskalowany', domyślna wartość parametru 'mapa'). k) Wyznacz i zilustruj histogram obrazu: lungs po operacji wyrównywania i rozciągania histogramu (hist_obrazu). Wyjaśnij różnice pomiędzy wynikiem uzyskanym w punktach 1.h i 1.i. Czym różni się skalowanie/rozciąganie histogramu od jego wyrównywania. W jakim celu stosuje się wyrównywanie histogramu obrazu, a jakim jego skalowanie/rozciąganie? Ćwiczenie 2 – Histogram i arytmetyka obrazów 6/8 Zakład Inżynierii Biomedycznej, Wydział Mechatroniki, Politechnika Warszawska. Laboratorium CPOB 2. Arytmetyka obrazów a) Z pliku 'simpson256.bmp' załaduj obraz simpson. b) Wykonaj następujące operacje arytmetyczne dla obrazu simpson (arytmetyka_obrazow) dla obydwu wartości parametru 'przepelnienie': 'saturacja' oraz 'przewiniecie': • simpson + 100, • simpson - 100, • simpson .* 2, • simpson ./ 5. c) Zilustruj wyniki operacji arytmetycznych (pokaz_obraz, domyślna parametrów 'mapa', samodzielnie dobierz właściwy parametr 'typ'). wartość Dla każdej operacji arytmetycznej wyjaśnij czym spowodowane są ewentualne różnice pomiędzy wynikami operacji dla każdej wartości parametru 'przepełnienie'. Pomocne może być porównanie histogramów obrazu simpson i obrazów wynikowych. Co będzie obrazem wynikowym dla operacji: simpson – max(simpson(:)), dla każdej wartości parametru 'przepelnienie' ('saturacja' i 'przewiniecie')? 3. Zadanie a) Z pliku 'brain256.bmp' załaduj obraz brain. b) Zilustruj obrazy simpson i brain (pokaz_obraz, domyślna wartość parametrów 'mapa', samodzielnie dobierz właściwy parametr 'typ'). c) Stosując właściwe operacje usuń z obrazu simpson obiekt przedstawiony na obrazie brain (arytmetyka_obrazow, samodzielnie dobierz operator i wartości parametru 'przepełnienie') d) Zilustruj wynik (pokaz_obraz, domyślna wartość parametrów 'mapa', samodzielnie dobierz właściwy parametr 'typ'). Wyjaśnij i uzasadnij dobór operacji i parametrów. Ćwiczenie 2 – Histogram i arytmetyka obrazów 7/8 Zakład Inżynierii Biomedycznej, Wydział Mechatroniki, Politechnika Warszawska. Laboratorium CPOB Sprawozdanie Ćwiczenie 2 Histogram i arytmetyka 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 2 – Histogram i arytmetyka obrazów 8/8