Laboratorium Cyfrowego Przetwarzania Obrazów
Transkrypt
Laboratorium Cyfrowego Przetwarzania Obrazów
Laboratorium
Cyfrowego Przetwarzania Obrazów
Ćwiczenie 6
„Transformaty: Fouriera i falkowa”
Opracowali:
-
dr inż. Krzysztof Mikołajczyk
-
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, 2011
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
1. Cel ćwiczenia.
W ramach ćwiczenia studenci zapoznają się z zastosowaniami wybranych transformat: Fouriera i
falkowej.
2. Wymagane wiadomości.
1. Transformata Fouriera i jej właściwości
2. Transformata falkowa i jej właściwości
Ćwiczenie 6 - „Transformaty: Fouriera i falkowa”
2/23
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
3. Wstęp
Transformacja Fouriera (TF)
Transformacja Fouriera (TF) jest transformacją całkową z dziedziny czasu w dziedzinę częstotliwości.
Transformata Fouriera jest wynikiem transformacji Fouriera. Transformacja jest operacją (operatorem) na
funkcji wejściowej (operand), dającą w wyniku transformatę (funkcja wyjściowa). TF rozkłada funkcję
na szereg funkcji okresowych (sinus i/lub cosinus) tak, że uzyskana transformata zawiera informację o
wartościach amplitudy i fazy poszczególnych harmonicznych składających się na pierwotną funkcję
wejściową. Analizę tego typu nazywa się analizą spektralna lub widmową.
W dziedzinie przetwarzania sygnałów jednowymiarowych TF jest fundamentalnym narzędziem,
szczególnie przydatnym w analizie procesów zależnych od czasu, a zwłaszcza analizie drgań (akustyce,
analizie sygnału mowy, sygnałów radiowych czy telekomunikacyjnych). Dla sygnałów cyfrowych
stosowana jest jej zmodyfikowana wersja zwana Dyskretną Transformacją Fouriera (DTF).
Ze względu na różną specyfikę zmysłu wzroku i słuchu analiza i przetwarzanie obrazów w dziedzinie
częstotliwości jest rzadziej stosowane niż analiza i przetwarzanie w dziedzinie częstotliwości sygnałów
akustycznych. W analizie obrazów z TF korzysta się najczęściej do:
•
detekcji tych cech obrazu, które są łatwiejsze do analizy w dziedzinie częstotliwości przestrzennej
(widmie - transformacie Fouriera obrazu) niż w dziedzinie przestrzeni,
•
szybkiego obliczania splotu,
•
wzmocnienia lub usunięcia pewnych składowych widma obrazu (odpowiadające np. szumom), a
następnie przez tzw. odwrotną transformacie Fouriera, odtworzenie skorygowanego obrazu.
Z matematycznego punktu widzenia zastosowanie DTF do obrazów cyfrowych jest poszerzeniem
odpowiednich zależności do dwóch wymiarów.
Obraz cyfrowy można traktować jako uporządkowany i ponumerowany dwuwymiarowy zbiór L liczb
rzeczywistych (ciąg dwuwymiarowy o wartościach rzeczywistych) określony wzorem (1):
L=L m , n∈ℝ : m=0,1 ,... , M −1 ; n=0,1 , ... , N −1
(1)
DTF dla obrazu cyfrowego określa równanie (2):
M−1
F (i , k )=βL⋅∑
m=0
[∑
N −1
n =0
L (m , n)⋅exp
(
)] (
− j⋅2⋅π⋅m⋅i
− j⋅2⋅π⋅n⋅k
⋅exp
M
N
)
(2)
dla i=0,1 ,2 , ... , M −1 ; k =0,1 ,2 ,... , N −1
Ćwiczenie 6 - „Transformaty: Fouriera i falkowa”
3/23
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
Operacja dwuwymiarowej odwrotnej DTF jest zdefiniowana wzorem (3):
M −1
L m , n= F⋅ ∑
i=0
[∑
N −1
F i , k ⋅exp
k=0
]
j⋅2⋅⋅m⋅i
j⋅2⋅⋅n⋅k
⋅exp
M
N
(3)
dla m=0,1 ,2 , ... , M −1 ; n=0,1,2 , ... , N −1
Aby operacje określone równaniami (2) i (3) były wzajemnymi odwrotnościami musi zachodzić
zależność:
L⋅ F =
1
M⋅N
(4)
Jeśli przyjmiemy:
L =1 ; F =
1
M⋅N
(5)
w dziedzinie częstotliwości element o indeksach (0,0) będzie suma wszystkich wartości
dwuwymiarowego ciągu L (obrazu):
M −1 N −1
F 0,0= ∑
∑ L m , n
(6)
m=0 n=0
Dwuwymiarowy ciąg F(i,k) przyjmuje wartości ze zbioru liczb zespolonych i posiada dokładnie tyle
samo elementów co dwuwymiarowy ciąg L(m,n) będący reprezentacja cyfrowego obrazu. Można go
zinterpretować jako specyficzny obraz, łącznie z określeniem poszczególnych jego elementów jako
pikseli. W celu uniknięcia nieporozumień obrazy w dziedzinie transformaty Furiera określa się
F-obrazami, a ich elementy F-pikselami.
Wyrażenie (2) możemy w skrócie zapisać w postaci kanonicznej (algebraicznej) (7):
F (i , k )=ℜ(F ( i , k ))+ j⋅ℑ( F (i , k ))
gdzie ℜ( F (i , k )) − część rzeczywista F (i , k ) ; ℑ( F (i , k )) − część urojona F (i , k ) ; (7)
j= √−1 − jednostka urojona
w postaci wykładniczej (8):
F (i , k )= A(i , k )⋅e
j⋅ϕ(i , k)
gdzie A(i , k )=∣F (i , k )∣=√ ℜ(F (i , k ))2+ ℑ( F (i , k )) 2 − moduł F ( i , k ) ;
ϕ(i , k ) − argument F ( i , k )
Ćwiczenie 6 - „Transformaty: Fouriera i falkowa”
(8)
4/23
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
lub w postaci trygonometrycznej (9):
F (i , k )= A(i , k )⋅[cos (ϕ(i , k ))+ j⋅sin (ϕ(i , k ))]
(9)
ℜ(F (i , k ))
ℑ( F (i , k ))
gdzie∣F (i , k )∣ − moduł F (i , k ) ; cos (ϕ(i , k ))=
; sin (ϕ(i , k ))=
∣ F (i , k )∣
∣F (i , k )∣
Dwuwymiarowa transformacja Fouriera jest separowalna ze względu na wymiar. Nawiasy kwadratowe
we wzorach (2) i (3) wskazują fakt, że najpierw można wyznaczyć jednowymiarowe transformaty
Fouriera dla jednego wymiaru (np. kolumn), a następnie tak otrzymany obraz pośredni
przetransformować dla drugiego wymiaru (wierszy). Ostatecznie, po obu etapach. obraz może zostać
opisany jako suma dwuwymiarowych ciągów bazowych z odpowiednimi współczynnikami (10 lub 11):
M / 2 N /2
L m , n= ∑ ∑ a i , k⋅Li ,k m , n
(10)
i=0 k =0
gdzie M i N − parzyste
lub
M −1 /2 N −1 /2
L m , n=
∑ ∑
i=0
k=0
ai , k⋅L i , k m , n
(11)
gdzie M i N −nieparzyste
Każdy z ciągów składowych Li,k otrzymany jest z iloczynu elementarnych ciągów jednowymiarowych:
Li , k m , n=l m , j⋅l n ,k
2⋅⋅m⋅ t
2⋅⋅n⋅ t
gdzie I m , i=cos
i ; I n , k =cos
k
Ti
Tk
(12)
Położenie współczynnika po pełnej dwuwymiarowej DTF na dwuwymiarowej siatce indeksów
jednoznacznie informuje, z jaka kombinacją ciągów jednowymiarowych należy go łączyć. Np. w punkcie
N
0,
(0,0) znajduje wartość średnia (lub suma) – zwana często składową stałą, w punkcie
(lub
2
N−1
0,
) współczynnik określający udział w obrazie ciągu powstałego ze stałego ciągu
2
M N
,
wierszowego i najszybciej zmiennego ciągu kolumnowego, a w punkcie
(lub
2 2
M−1 N−1
,
) umieszczony jest współczynnik związany z połączeniem najszybciej zmiennych
2
2
ciągów kolumnowego i wierszowego.
Zależności pomiędzy modułami wartości transformaty F(i,k) ( A(i,k) ) oraz współczynnikami ai,k we
wzorach (10) i (11) jest następująca (na rysunku 1 pokazano rozmieszczenie F-pikseli poszczególnych
typów):
Ćwiczenie 6 - „Transformaty: Fouriera i falkowa”
5/23
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
{
ai , k⋅1/ L dla F− pikseli typu 1 Rys.1. piksele w kolorze czarnym
Ai , k = 1/2⋅ai , k⋅1/ L dla F − pikseli typu 2 Rys.1. piksele w kolorze szarym
1/4⋅a i , k⋅1/ L dla F − pikseli typu 3 Rys.1. piksele w kolorze białym
(13)
Sama znajomość współczynników ai,k równania (10) lub (11) nie wystarcza by jednoznacznie określić
ciąg L. Potrzebna jest jeszcze informacja o tym jak były przesunięte w fazie obie funkcje kosinus, które
służą do wygenerowania ciągów jednowymiarowych Im,i, oraz In,k (wzór 12). Faza jednego F-piksela nie
może jednoznacznie określić dwóch faz kosinusów generujących ciąg bazowy. Oznaczmy przez φi fazę
kosinusa generującego ciąg jednowymiarowy Im,i, przez
φk fazę kosinusa generującego ciąg
jednowymiarowy In,k, a przez φ(i,k) fazę F-piksela o współrzędnych (i,k) (porównaj ze wzorami (8) i (9)).
F-piksele typu 1 (Rys.1) powinny być zawsze rzeczywiste.
F-piksele typu 2 wiążą się z
dwuwymiarowymi ciągami bazowymi, które powstały z ciągu stałego (bez fazy) i z jednej kosinusoidy
(którą można przesuwać fazowo). Zarówno dla F-pikseli typu 1 jak i 2 łatwo jest określić związek
pomiędzy odpowiednimi fazami. Natomiast dla wyjaśnienia zależności fazowych F-pikseli typu 3
wygodniej będzie najpierw wyjaśnić symetrie zachodzące w dwuwymiarowej TF obrazu cyfrowego,
który składa się z pikseli o wartościach rzeczywistych (bez części urojonej).
Rysunek 1: Lokalizacja F-pikseli poszczególnych typów dla wzoru 13: z lewej dla obrazu o
rozmiarach parzystych (6x6), z prawej dla obrazu o rozmiarach nieparzystych (5x5);
kolory pikseli: czarny – typu 1, szary – typu 2, biały – typu 3
Symetrie dwuwymiarowej TF obrazu o rzeczywistych wartościach pikseli
W przypadku gdy oryginalny ciąg składa się z elementów o wartościach wyłącznie rzeczywistych, w
dziedzinie transformaty Fouriera powstają specyficzne symetrie. Zagadnienie to zostanie opisane w
sposób uproszczony, bez wnikania w szczegóły analityczne.
Rozważmy dwa obrazy jeden o rozmiarach parzystych np. 6x6 pikseli, drugi o rozmiarach nieparzystych
np 5x5 pikseli (Rys.2).
Ćwiczenie 6 - „Transformaty: Fouriera i falkowa”
6/23
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
Rysunek 2: Ilustracja symetrii w dziedzinie TF: z lewej obraz o rozmiarach parzystych (6x6),
z prawej obraz o rozmiarach nieparzystych (5x5)
Pogrubione czerwone linie na rysunku 2 pokazują osie symetrii amplitudy transformaty Fouriera, a punkt
przecięcia tych linii wyznacza punkt symetrii dla fazy. F-piksele oznaczone kolorem szarym nie są
związane z powyższymi symetriami. Są to F-piksele typu 1 lub 2 i spełniają one warunki dotyczące
ciągów jednowymiarowych.
a)
b)
Rysunek 3: Przesunięcia poszczególny obszarów F-obrazów - z lewej F-obraz o rozmiarze
parzystym 6x6, z prawej o rozmiarze nieparzystym 5x5; a) F-obrazy przed przesunięciem,
b) F-obrazy o przesunięciu
W przypadku dwuwymiarowej DTF, podobnie jak w przypadku jednowymiarowym, stosuje się zmianę
organizacji wynikowej transformaty, tak aby F-piksel odpowiadający składowej stałej znajdujący się
pierwotnie się w lewym górnym rogu (niezależnie od tego czy rozmiar obrazu jest parzysty, czy
nieparzysty) znalazł się w środku obrazu. W przypadku obrazów o rozmiarze nieparzystym ten F-piksel
znajduje się dokładnie w centrum obrazu (zakreślony – rys.3), a w przypadku obrazów o rozmiarze
parzystym - lewym górnym rogu prawej dolnej ćwiartki F-obrazu (zakreślony – rys.3). Ponadto, po takim
przesunięciu, na krawędziach F-obrazu znajdują się F-piksele odpowiadające największym
częstotliwościom kosinusoid tworzących ciągi bazowe. Rysunek 3 demonstruje schematycznie to
przesunięcie w przypadku obrazów o rozmiarach parzystych i nieparzystych. Rysunek 4 przedstawia
relacje symetrii zachodzące pomiędzy F-pikselami należącymi do poszczególnych ćwiartek F-obrazu. Są
to symetrie dwojakiego typu: symetria osiowa – względem danej linii poziomej lub pionowej, oraz
Ćwiczenie 6 - „Transformaty: Fouriera i falkowa”
7/23
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
symetria punktowa – względem punktu obrazu, wyznaczonego przez przecięcie linii symetrii poziomej i
pionowej.
a)
b)
A
B D
C
C
D B
A
Rysunek 4: Ilustracja symetrii zachodzących w uproszczonej (z pominięciem F-pikseli) interpretacji
F-obrazu, linie ze strzałkami oznaczają zachodzące rodzaje symetrii, a) F-obraz przed
przesunięciem, b) F-obraz po przesunięciu
Wprowadźmy następujące oznaczenia, określające wszystkie F-piksele obrazu w odniesieniu do obszaru
A (rys.4):
FA(i,k) - F-piksel należący do obszaru A o położeniu wyznaczonym przez indeksy (i,k);
FB/A(i,k) - F-piksel należący do obszaru B o położeniu symetrycznym do FA(i,k) względem osi
pionowej;
FC/A(i,k) - F-piksel należący do obszaru C o położeniu symetrycznym do FA(i,k) względem osi
poziomej;
FD/A(i,k) - F-piksel należący do obszaru D o położeniu symetrycznym do FA(i,k) względem środka
obrazu.
Jeśli AB/A(i,k) oznacza amplitudę F-piksela należącego do obszaru B i będącego w odpowiedniej symetrii
względem F-piksela obszaru A o indeksach (i,k) i φB/A(i,k) oznacza fazę tego samego F-piksela należącego
do obszaru B, to:
AA i , k =A B / A i , k
AB / A i , k = AC / A i , k
(14)
AC / A i , k =A D / A i , k
Zatem wszystkie cztery F-piksele wyszczególnione na rysunku 4 posiadają tę sama amplitudę. Relacje
fazowe są opisane następującymi zależnościami:
A i , k =− D / A i , k
B / A i , k =− C / A i , k
(15)
Nie ma związku pomiędzy fazami: φA(i,k) i φB/A(i,k) ani pomiędzy φC/A(i,k) i φD/A(i,k). Zatem relacje
fazowe (wzór 14) dotyczą jedynie symetrii punktowej względem środka F-obrazu.
Ponadto, jeśli dany F-piksel typu 3 należy do obszaru A, to jego faza jest powiązana fazami kosinusów
generujących (wzór 12) zgodnie ze wzorem:
i , k =i k
(16)
Uwzględniając wzór 16 można uzyskać wzory na dwie szukane fazy jednowymiarowe:
Ćwiczenie 6 - „Transformaty: Fouriera i falkowa”
8/23
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
A i , k = i k
B / A i , k =i − k
(17)
Transformacja Falkowa
Transformacje flakowe znajdują coraz szersze zastosowanie w analizie i przetwarzaniu sygnałów
cyfrowych, w kompresji obrazu i dźwięku oraz przy rozwiązywaniu wielu innych problemów. Nazwa
charakteryzuje istotę metody, która wykorzystuje sygnały zwane falkami do opisu funkcji wejściowej.
Mianem falek określamy rodziny funkcji z których każda jest utworzona na przez skalowanie i
przesunięcie funkcji podstawowej (macierzystej). Falki umożliwiają rozłożenie (dekompozycję), z
określoną dokładnością, dowolnej funkcji ciągłej na sumę ważoną poszczególnych falek.
Istotą dekompozycji wielorozdzielczej jest podział sygnału na komponenty o coraz mniejszej
rozdzielczości (częstotliwości) za pomocą pary filtrów dolno- (FDP) i górnoprzepustowego (FDP), a
następnie hierarchiczna dekompozycja składowej nisko-częstotliwościowej w analogiczny sposób.
Do falkowej analizy obrazów najczęściej stosowana jest w sposób sekwencyjny jednowymiarowa
transformacja falkowa. Taki sposób dekompozycji falkowej obrazu został przedstawiony na rysunku 5.
W dwuwymiarowej transformacie falkowej obrazu w kolejnym kroku (skali) k dekomponowana jest
tylko macierz współczynników aproksymacji z poprzedniego kroku, tzn. A(k−1). Wynikiem
dekompozycji obrazu na poziom k ≥ 1 jest 1+3k macierzy oznaczonych następująco: A(k) – macierz
współczynników aproksymacji na poziomie k, oraz macierze współczynników detali z poziomu k i
poprzednich: D(k,h), D(k,v), D(k,d), D(k−1,h), D(k−1,v), D(k−1,d),..., D(1,h), D(1,v), D(1,d).
Filtracja i decymacja wzdłuż kolumn.
FGP
FGP
2↓
D(k,d)M/2×N/2
FDP
2↓
D(k,v)M/2×N/2
FGP
2↓
D(k,h)M/2×N/2
FDP
2↓
A(k)M/2×N/2
2↓
A(k-1)M×N
FDP
2↓
Filtracja i decymacja wzdłuż wierszy
(wynikowe podobrazy mają rozmiar M×N/2)
Rysunek 5: Schemat dekompozycji falkowej dla skali równej k.
Pierwszy krok dekompozycji falkowej obrazu cyfrowego reprezentowanego przez macierz wartości
amplitud o rozmiarze M × N (zgodnie z rys. 5 jest to macierz współczynników aproksymacji o indeksie 0
- A(0)), polega na wyznaczeniu M jednowymiarowych transformat falkowych dla każdego wiersza
macierzy reprezentującej ten obraz. W wyniku tej operacji otrzymywane są podobrazy współczynników
aproksymacji i detali o rozmiarze M × (N/2) każdy. Następnie, dla uzyskanych w pierwszym kroku
Ćwiczenie 6 - „Transformaty: Fouriera i falkowa”
9/23
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
macierzy podobrazów wyznaczane są jednowymiarowe transformaty falkowe dla wszystkich kolumn
(stosowane są te same filtry ). Wynikiem tej operacji są cztery macierze współczynników: aproksymacji
– A(k) oraz detali – D(k,h), D(k,v), D(k,d). Pierwszy indeks przy macierzach oznacza poziom
dekompozycji (k 1), zaś drugi indeks (występujący przy macierzach współczynników detali) oznacza
nazwę detalu tj: h – detal horyzontalny, v – detal wertykalny, d – detal diagonalny. Macierze te
reprezentują dane otrzymane w wyniku filtracji dolnoprzepustowej lub/i górnoprzepustowej oraz
dwukrotnej decymacji tj. wzdłuż wierszy i kolumn (ang. down-sampling).
Macierz A(k), zawierająca współczynniki aproksymacji, powstaje jako wynik filtracji dolnoprzepustowej
zarówno wzdłuż wierszy jak i kolumn. Macierz D(k,h) zawiera współczynniki tzw. detalu
horyzontalnego. Powstaje ona jako wynik filtracji dolnoprzepustowej wzdłuż wierszy i
górnoprzepustowej wzdłuż kolumn. Macierz D(k,v) zawiera współczynniki detalu wertykalnego.
Powstaje ona jako wynik filtracji górnoprzepustowej wzdłuż wierszy i dolnoprzepustowej wzdłuż
kolumn. Natomiast macierz D(k,d) zawiera współczynniki detalu diagonalnego, który jest wynikiem
filtracji górnoprzepustowej zarówno wzdłuż wierszy jak i kolumn.
Po jednopoziomowej dekompozycji obraz jest reprezentowany przez cztery macierze współczynników
falkowych, które łącznie zawierają tyle samo elementów co obraz oryginalny. Schemat ilustracji struktury
powstałej po dekompozycji falkowej dla skali 2 przedstawiono na rysunku 6.
[
A 0
][
][
⋮
A 2
⋮
D 2, h ⋮
⋮ D 1,h
⋯
⋯
⋯
⋮
⋮
D 2, v
⋮
D 2,d ⋮
⋯
⋯
⋯
⋯
⋯
⋯
⋯
⋯
⋯
⋮
⋮
D 1,v ⋮ D 1,d
D 1, v
⋮
⋮
⋮
A 1
]
D 2, h
⋯
⋯
⋯ ⋯
D 1,d
Rysunek 6: Schemat struktury po dekompozycji falkowej dla skali równej 2
A(0) jest obrazem wejściowym czyli aproksymacją na poziomie zerowym; A(1), A(2), itd. - to
współczynniki kolejnych aproksymacji, reprezentujących obraz wejściowy z coraz mniejszą
rozdzielczością.
Ćwiczenie 6 - „Transformaty: Fouriera i falkowa”
10/23
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ą:
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 6 - „Transformaty: Fouriera i falkowa”
11/23
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
[C, S] = wavefast (X, N, Wname)
Funkcja służy do wyznaczania szybkiej transformaty falkowej.
Parametrami wyjściowymi funkcji są:
1. C – wektor dekompozycji; C = [ AN(:)' HN(:)' VN(:)' DN(:)' HN-1(:)' ... V1(:)' D1(:)' ], gdzie Ak(:)',
Hk(:)', Vk(:)' i Dk(:)' są wektorami kolumnowymi zawierającymi współczynniki falkowe:
macierzy aproksymacji oraz macierzy detali horyzontalnych, wertykalnych i diagonalnych na ktym poziomie (k=1,...,N).
2. S – macierz informucjąca o sposobie organizacji współczynników falkowych w macierzy C
(bookkeping matrix); S = [ saN; sdN; sdN-1; ... ; sd1; sf ], gdzie saN, sdk i sx są dwuelementowymi
wektorami zawierającymi horyzontalne i wertykalne rozmiary aproksymacji na N-tym poziomie,
detali na k-tym poziomie (Hk, Vk, Dk) oraz oryginalnego obrazu X.
Parametrami wejściowymi funkcji są:
1. X – macierz reprezentująca obraz;
2. N – skala dekompozycji;
3. Wname – nazwa rodziny falek:
•
'haar',
•
'dbN',
•
'symN',
•
'coifN',
•
'biorN',
•
'rbioN',
•
'meyr',
•
'dmey',
•
'gausN',
•
'mexh'
•
'morl',
•
'cgauN',
•
'shanN',
•
'fbsmN',
•
'cmorN'
Przykłady:
[c,s] = wavefast(wrist,2,'haar');
Powyższe polecenie wyznaczy macierze c i s (dekompozycję flakową) obrazu wrsit dla skali równej dwa
i falki Haar'a.
Ćwiczenie 6 - „Transformaty: Fouriera i falkowa”
12/23
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
W = wave2gray (C, S, scale)
Funkcja służy do tworzenia/wyświetlania wyników dekompozycji falkowej.
Parametrami wejściowymi funkcji są:
1. W – obraz wyjściowy
----- ----- ---------- ------------------|
|
|
| a(n) | h(n) |
|
|
|
------- ----|
|
|
| v(n) | d(n) |
|
|
|
h(n-1)
----- ----- ----------
|
|
|
|
|
|
v(n-1)
d(n-1)
|
|
|
|
|
|
|
h(n-2)
|
|
|
----- ----- ---------- ------------------|
|
|
v(n-2)
|
|
|
d(n-2)
UWAGA: Funkcja wywołana bez operacji przypisania automatycznie tworzy ilustracje obrazu W.
Parametrami wejściowymi funkcji są:
1. C – wektor dekompozycji; C = [ AN(:)' HN(:)' VN(:)' DN(:)' HN-1(:)' ... V1(:)' D1(:)' ], gdzie Ak(:)',
Hk(:)', Vk(:)' i Dk(:)' są wektorami kolumnowymi zawierającymi współczynniki falkowe: macierz
aproksymacji oraz macierze detali horyzontalnych, wertykalnych i diagonalnych na k-tym
poziomie (k=1,...,N).
2. S – macierz informująca o sposobie organizacji współczynników falkowych w macierzy C
(bookkeping matrix); S = [ saN; sdN; sdN-1; ... ; sd1; sf ], gdzie saN, sdk i sx są dwuelementowymi
wektorami zawierającymi horyzontalne i wertykalne rozmiary aproksymacji na N-tym poziomie,
detali na k-tym poziomie (Hk, Vk, Dk) oraz oryginalnego obrazu X.
3. scale – wartość czynnika skalującego (wzmocnienie) wartości detali:
0 lub 1
- zakres maksymalny (domyślnie)
2, 3, …
- wzmocnienie o podaną wartość czynnika skalującego
Przykłady:
[c,s] = wavefast(wrist,2,'haar');
figure; wave2gray(nc,s,8);
Powyższe polecenie wyznaczy macierze c i s (dekompozycję flakową) obrazu wrsit dla skali równej dwa
i falki Haar'a, a następnie stworzy ilustrację wyników dekompozycji (wartości współczynników detali
zostaną wzmocnione 8-miokrotnie).
Ćwiczenie 6 - „Transformaty: Fouriera i falkowa”
13/23
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
Ćwiczenie 6 - „Transformaty: Fouriera i falkowa”
14/23
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
[nc, y] = wavecut (type, C, S, N)
Funkcja służy do zerowanie określonych współczynników dekompozycji falkowej.
Parametrami wyjściowymi funkcji są:
1. nc – nowy wektor dekompozycji, którego odpowiednie współczynniki (na podstawie zmiennych
typ i n) zostały wyzerowane.
2. y – wyzerowane współczynniki
Parametrami wejściowymi funkcji są:
1. type – typ zerowanych współczynników:
•
'a' – współczynniki aproksymacji,
•
'h' – horyzontalne współczynniki dekompozycji,
•
'v' - horyzontalne współczynniki dekompozycji,
•
'd' - horyzontalne współczynniki dekompozycji;
1. C, S – struktura dekompozycji wyznaczona np. za pomocą funkcji wavefast
2. N – poziom dekompozycji;
Przykłady:
[nc y] = wavecut('a',c,s);
Powyższe polecenie zeruje współczynniki aproksymacji a macierzy c.
Ćwiczenie 6 - „Transformaty: Fouriera i falkowa”
15/23
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
Y = wavecopy (type, C, S, N)
Funkcja służy do pobierania współczynników struktury dekompozycji falkowej.
Parametrami wyjściowymi funkcji są:
1. Y – macierz współczynników
Parametrami wejściowymi funkcji są:
1. type – typ zerowanych współczynników:
'a' – współczynniki aproksymacji,
'h' – horyzontalne współczynniki dekompozycji,
'v' - horyzontalne współczynniki dekompozycji,
'd' - horyzontalne współczynniki dekompozycji;
1. C, S – struktura dekompozycji wyznaczona np. za pomocą funkcji wavefast
2. N – poziom dekompozycji;
Przykłady:
f = wavecopy('a',c,s);
Powyższe polecenie pobiera macierz współczynników aproksymujących.
Ćwiczenie 6 - „Transformaty: Fouriera i falkowa”
16/23
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
Y = waveback (C, S, Wname)
[c, s] = waveback (C, S, Wname, n)
Funkcja służy do wyznaczania odwrotnej transformaty falkowej lub nowej struktury dekompozycji
falkowej na podstawie rekonstrukcji stopnia n-tego.
Parametrami wyjściowymi funkcji są:
1. Y – wynik odwrotnej transformaty falkowej
lub
2. [c, s] – nowa struktura dekompozycji falkowej
Parametrami wejściowymi funkcji są:
1. C, S – struktura dekompozycji wyznaczona np. za pomocą funkcji wavefast
2. Wname – nazwa rodziny falek:
'haar',
'dbN',
'symN',
'coifN',
'biorN',
'rbioN',
'meyr',
'dmey',
'gausN',
'mexh'
'morl',
'cgauN',
'shanN',
'fbsmN',
'cmorN';
3. n – stopień rekonstrukcji
Przykłady:
[c,s] = waveback(C,S,'db4',1);
Powyższe polecenie wyznaczy nową strukturę dekompozycji po 1-ym stopniu rekonstrukcji.
Ćwiczenie 6 - „Transformaty: Fouriera i falkowa”
17/23
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
[nc, g8] = wavezero (C, S, k, Wname)
Funkcja służy do zerowanie współczynników detali struktury dekompozycji falkowej C (h, v, d) na
poziomie k i wyznacza transformatę odwrotną zgodnie z podaną nazwą flaki wname.
Parametrami wyjściowymi funkcji są:
1. nc – nowy wektor dekompozycji, którego współczynniki detali zostały wyzerowane.
2. g8 – wynik odwrotnej transformaty falkowej wyznaczonej ze struktury dekompozycji po
wyzerowaniu współczynników detali
Parametrami wejściowymi funkcji są:
1. k - poziom
1. C, S – struktura dekompozycji wyznaczona np. za pomocą funkcji wavefast
2. Wname – nazwa falki.
Przykłady:
[C,G8] = wavezero(c,s,1,'db4');
Powyższe polecenie zeruje współczynniki detali (h, v, d) macierzy c
Ćwiczenie 6 - „Transformaty: Fouriera i falkowa”
18/23
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
5. 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. Związki pomiędzy obrazem i odpowiadającym mu F-obrazem.
a) Z pliku 'obraz1.mat' załaduj do przestrzeni roboczej obraz obraz1 (load)
b) Zilustruj obraz1 (pokaz_obraz, dobierz wartości parametrów: 'typ' i 'mapa').
10
20
30
40
50
60
70
80
90
1 00
20
40
60
80
100
c) Wyznacz jego F-obraz (F_obraz1) (fft2).
d) Wyznacz F-obrazy: amplitudowy (aF_obraz1) (abs) oraz fazowy (fF_obraz1) (angle)
obrazu obraz1. Wyniki zilustruj (pokaz_obraz, dobierz wartości parametrów: 'typ' i
'mapa').
Uwaga: Funkcja fft2 zwraca F-obraz o ćwiartkach zorganizowanych tak, że element odpowiadający
składowej stałej znajduje się w lewym górnym rogu.
Uwaga: W przypadku amplitudowych F-obrazów stosuj funkcję logarytmiczną (log) w celu
uwidocznienia słabszych składowych.
Uwaga: Logarytm z 0 jest nieskończonością.
e) Dokonaj przesunięcia ćwiartek F-obrazu F_obraz1 (fftshift).
f) Ponownie wyznacz F-obrazy: amplitudowy (aF_obraz1_s) oraz fazowy (fF_obraz1_s)
obrazu obraz1. Wyniki zilustruj (pokaz_obraz, dobierz wartości parametrów: 'typ' i
'mapa').
Gdzie znajduje się składowa stała w F-obrazach z pp. c) i d)? Wyjaśnij co osiągnięto w pp.d).
Ćwiczenie 6 - „Transformaty: Fouriera i falkowa”
19/23
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
g) Z pliku 'obraz2.mat' załaduj do przestrzeni roboczej obraz obraz2 (load) i zilustruj go
(pokaz_obraz, dobierz wartości parametrów: 'typ' i 'mapa').
10
20
30
40
50
60
70
80
90
1 00
20
40
60
80
100
h) Powtórz operacje z pp. 1.b)-1.g).
i)
Z pliku 'obraz3.mat' załaduj do przestrzeni roboczej obraz obraz3 (load) i zilustruj go
(pokaz_obraz, dobierz wartości parametrów: 'typ' i 'mapa').
20
40
60
80
1 00
1 20
1 40
20
j)
40
60
80
100
1 20
140
Powtórz operacje z pp. 1.b)-1.g).
Wyjaśnij różnice w F-obrazach dla obrazów obraz1, obraz2 i obraz3. Jaka informację o obrazach
uzyskujemy z ich F-obrazów?
2. Filtracja obrazów w dziedzinie Fouriera
a) Z pliku 'wrist.bmp' załadować do przestrzeni roboczej obraz wrist.
b) Wyświetl obraz wrist (pokaz_obraz, domyślne wartości parametrów: 'typ' i 'mapa').
c) Wyznacz F-obraz obrazu wrist.
d) Dokonaj przesunięcia ćwiartek F-obrazu F_wrist (fftshift).
e) Wyznacz F-obrazy (przesunięte - składowa stała w centrum F-obrazu): amplitudowy
(aF_obraz1_s) oraz fazowy (fF_obraz1_s) obrazu wrist. Wyniki zilustruj (pokaz_obraz,
dobierz wartości parametrów: 'typ' i 'mapa').
f) Utwórz F-obraz filtru F_filtr1: macierz o rozmiarze równym rozmiarowi F-obrazu F_wrist,
o wartości jeden (1) w punkcie centralnym i jego otoczeniu o szerokości 10 punktów i zero
(0) na pozostałym obszarze (Rys. 6).
Ćwiczenie 6 - „Transformaty: Fouriera i falkowa”
20/23
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
100
200
300
400
500
600
10 0
20 0
300
400
Rysunek 7: F-obraz filtru
g) Korzystając z F-obrazu filtru F_filtr1 dokonaj filtracji obrazu wrist.
h) Zilustruj uzyskane w wyniku filtracji F-obrazy: amplitudowy i fazowy (pokaz_obraz,
dobierz wartości parametrów: 'typ' i 'mapa').
i)
Z uzyskanego w wyniku filtracji F-obrazu (zespolonego) uzyskaj odfiltrowany obraz w
dziedzinie pierwotnej (przestrzeni) (ifft2, real). Wynik zilustruj (pokaz_obraz, dobierz
wartości parametrów: 'typ' i 'mapa').
Uwaga: Funkcja ifft2 wymaga F-obrazu o ćwiartkach zorganizowanych w taki sposób, że element
odpowiadający składowej stałej powinien się znajdować w lewym górnym rogu F-obrazu.
Porównaj wynik uzyskany w pp.2. i) z pierwotnym obrazem. Co osunięto z obrazu wrist?
j)
Utwórz F-obraz filtru F_filtr2 będący negatywem obrazu F-obrazu filtru F_filtr1.
k) Dla F-obrazu filtru F_filtr2 powtórz operację z pp 2.g)-2.i)
Porównaj wynik uzyskany w pp. k) z pierwotnym obrazem. Co osunięto z obrazu wrist?
Jaka jest różnica pomiędzy obrazami uzyskanymi w pp 2.i) i 2.k)?
3. Dyskretna analiza falkowa obrazów
a) Wyznacz strukturę dekompozycji obrazu wrist dla falki 'haar' i skali równej 1 (wavefast).
b) Zilustruj wynik z pp. 3.a) (wave2gray).
c) Utwórz obraz krawędzi obrazu wrist poprzez usuniecie współczynników aproksymacji A z
wektora współczynników dekompozycji (wavecut, wavecopy).
d) Zilustruj strukturę dekompozycji falkowej po usunięciu z niej współczynników
aproksymacji (wave2gray).
e) Zilustruj obraz krawędzi (pokaz_obraz, dobierz wartości parametrów: 'typ' i 'mapa').
f) Wyznacz strukturę dekompozycji obrazu wrist dla falki 'db4' i skali równej 4 (wavefast).
g) Wyznacz aproksymacje obrazów dla kolejnych poziomów dekompozycji z pp. 3.f)
(wavecopy).
h) Zilustruj wyniki z pp. 3.g) (pokaz_obraz, dobierz wartości parametrów: 'typ' i 'mapa')
Ćwiczenie 6 - „Transformaty: Fouriera i falkowa”
21/23
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
Wyjaśnij związki między właściwościami obrazu a właściwościami poszczególnych składowych
dekompozycji
Porównaj rozmiary kolejnych aproksymacji z pp. 3.g) i obrazu oryginalnego. Jaki współczynnik
kompresji (stosunek rozmiarów obrazu oryginalnego i jego aproksymacji na k-ym poziomie) jest
akceptowalny (aproksymacja jest dopuszczalna zamiast obrazu oryginalnego).
Ćwiczenie 6 - „Transformaty: Fouriera i falkowa”
22/23
Zakład Inżynierii Biomedycznej,
Wydział Mechatroniki,
Politechnika Warszawska.
Laboratorium CPOB
Sprawozdanie
Ćwiczenie 6 Transformaty: Fouriera i falkowa
L.p.
Imię i nazwisko
Grupa
Data
1
2
3
Punkt
ćwiczenia
1
Liczba punktów Uzyskana liczba
do uzyskania
punktów
a) - f)
1
g) - h)
1
i) - j)
1
a) - i)
2
j) - k)
2
a) - b)
1
c) - e)
1
g) - h)
1
Uwagi prowadzącego
2
3
Ćwiczenie 6 - „Transformaty: Fouriera i falkowa”
23/23