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 0255.
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

Podobne dokumenty