WaveLet Matlab
WaveLet Matlab
PRELUCRAREA IMAGINILOR
CU AJUTORUL TRANSFORMA
RII WAVELET
Iunie 2008
FACULTATEA DE AUTOMATICA SI
CALCULATOARE, UNIVERSITATEA POLITEHNICA
BUCURESTI
Cuprins
1 Introducere
2 Transformarea wavelet
2.1 Definitii . . . . . . . . . . . . . . . . . . . . . . .
.
2.1.1 Transformarea Wavelet Reala . . . . . . .
.
2.1.2
Transformata Wavelet Discreta . . . . . . .
2.2 Dezavantaje ale transformarii wavelet . . . . . . . .
2.2.1 Oscilatiile . . . . . . . . . . . . . . . . . .
.
2.2.2
Invarianta translatiilor . . . . . . . . . . .
.2.2.3 Aliasing . . . . . . . . . . . . . . . . . . . .
2.2.4 Lipsa orientarii . . . . . . . . . . . . . . . .
2.3 Implementare . . . . . . . . . . . . . . . . . . . . .
2.3.1 Transformata discreta wavelet D
1 . . . . . .
2.3.2 Transformata discreta wavelet
. . . . . .
2D
3 Arborele dual
3.1 Definitii . . . . . . . . . . . . . . . . . . . . . . .
.
3.1.1 Wavelet-uri complexe . . . . . . . . . . . . .
3.1.2 Analiticitatea . . . . . . . . . . . . . . . . .
3.1.3 Transformata wavelet complexa si arborele
3.2 dual
Bancuri de filtre . . . . . . . . . . . . . . . . . . . .
3.2.1 Conditia de ntarziere . . . . . . . . . . . .
.
Alegerea. bancurilor
3.3 3.2.2
Implementare
. . . . . . de
. . filtre
. . . pentru
. . . . prima
. . . . .
3.3.1 Transformata wavelet cu arbore dual 1D . .
3.3.2 Transformata wavelet cu arbore dual 2D . .
4 Arborele dual cu
4.1 Proiectare . .
4.2 Implementare
4.3 Filtre . . . . .
densitate
. . . . . .
. . . . . .
. . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
7
8
10
10
11
11
11
12
12
12
14
. . . .
. . . .
. . . .
. .
. . . .
. . . .
. .
. . . .
. . . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
17
17
17
19
20
22
23
23
24
24
26
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
dubla
29
. . . . . . . . . . . . . . . . . . . . . 30
. . . . . . . . . . . . . . . . . . . . . 31
. . . . . . . . . . . . . . . . . . . . . 34
5.1.6
5.1.7
43
44
45
46
.
47
48
49
49
49
50
50
6 Rezultate experimentale
52
6.1 Rezultate numerice . . . . . . . . . . . . . . . . . . . . . . . . 53
6.1.1 Rezultatele obtinute cu threshold-uri diferite pentru
arborele dual simplu . . . . . . . . . . . . . . . . . . . 53
6.1.2 Rezultatele obtinute cu bancurile de filtre pentru arborele dual simplu . . . . . . . . . . . . . . . . . . . . 54
6.1.3 Rezultatele obtinute pentru arborele dual cu DD . . . . 56
6.2 Rezultate grafice . . . . . . . . . . . . . . . . . . . . . . . . . 57
6.2.1 Tipuri de threshold . . . . . . . . . . . . . . . . . . . . 57
6.2.2 Bancuri de filtre arbore dual . . . . . . . . . . . . . 65
6.2.3 Bancuri de filtre arbore dual cu DD . . . . . . . . . 71
7 Concluzii
74
Lista de figuri
1
2
3
4
5
6
7
8
9
13
13
14
15
16
25
26
27
28
10 Filtrele supraesantionate de
si
analiz
sintez
11 Iterarea filtrelor (DD DT-DWT) . . . . . . .
12 DT rezultate threshold: Imaginea original .
13 DT rezultate threshold: Imaginea cu zgomot
14 DT rezultate threshold: Hard Thresholding .
15 DT rezultate threshold: Soft Thresholding .
16 DD rezultate threshold: Imaginea original .
17 DD rezultate threshold: Imaginea cu zgomot
18 DD rezultate threshold: Hard Thresholding
19 DD rezultate threshold: Soft Thresholding .
20 DT rezultate filtre: Peppers original . . . . .
21 DT rezultate filtre: Peppers cu zgomot . . .
22 DT rezultate filtre: Peppers prelucrat . . . .
23 DT rezultate filtre: Flinstones original . . .
24 DT rezultate filtre: Flinstones cu zgomot . .
25 DT rezultate filtre: Flinstones prelucrat . . .
26 DD rezultate filtre: House original . . . . . .
27 DD rezultate filtre: House cu zgomot . . . .
28 DD rezultate filtre: House prelucrat . . . . .
List de tabele
a DT: Diferente ntre tipurile
2
3
4
55
5
6
7
house)
DT: Filtre de lungime 10 (N
DT: Filtre de lungime 12 (N
DT: Filtre cu unul si doua
DD: Diferente ntre tipurile
house)
DD:
Filtre de lungime 10 (N
DD: Filtre de lungime 16 (N
(DD DT-DWT)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
de threshold (N = 4 : 22,
= 10, barbara) . . . . . . . .
= 12, flinstones) . . . . . . .
grade de libertate (N = 4 : 22,
de threshold (N = 10, 16,
= 10, flinstones) . . . . . . .
= 16, flinstones) . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
31
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
32
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
. 53
. . 54
. . 54
boat)
. 56
. . 56
. . 56
Rezumat
Lucrarea
prezinta prelucrarea imaginilor cu ajutorul
transformarii wavelet. Se propune pentru aceasta compararea mai
multor metode de analiza si prelucrare ce implica transformata
wavelet. Intr-o prima instanta se va prezenta notiunea de
wavelet si modul de reprezentare a functiilor cu ajutorul ei.
Transformata wavelet
continua a
unei
functii se
discretizeaza si astfel se obtine transformata wavelet discreta.
Deficientele si proble- mele de proiectare ale acestei transformari
duc la dezvoltarea de noi metode de prelucrare.
Pentru a
ti performantele si a ndeparta problemele transmbunat
formatei wavelet discrete se construieste un arbore dual. Acesta este
constituit din doua transformate wavelet discrete ce lucreaza n
para- lel. Ramurile arborelui sunt interpretate drept partea reala
si, respectiv, imaginar a unui wavelet complex. Astfel se obtine transformata
wavelet complexa.
O structura
pe arborele dual este arborele dual cu densitate
bazat
dubla.
abordare a prelucrarii imaginii mbina transformata
Aceast
wavelet complexa cu transformata cu densitate dubla. Cea din urm
este bazat tot pe doua transformate wavelet discrete dar prezint
anumite propriet ti ce sunt dorite si n arborele dual.
Pentru aceste abordari ale prelucrarii imaginii cu ajutorul
trans- formatei wavelet, se implementeaza rutinele Matlab necesare
pentru testarea si experimentarea diferitelor
caracteristici si
performante ale acestor structuri.
Cu ajutorul mai multor bancuri de filtre, specifice fiecarei structuri, se testeaz performantele n eliminarea zgomotului pentru fiecare
implementare si se compara atat numeric cat si grafic.
Introducere
Nevoia de a prelucra si
ti un semnal este
n numeroase
mbunata
prezent
procese si aplicatii. De exemplu, de fiecare data cand un semnal este
transmis de-a lungul unui canal, exista riscul de a pierde informatii.
Aceste pierderi sunt cunoscute si prevazute n proiectarea canalului, astfel
aparand algoritmi
de corectie si algoritmi de verificare a
tii datelor. Un alt exemplu
integrita
este nevoia de a comprima semnalul pentru a-l putea reprezenta pe un suport
cat mai scurt fie pentru a putea fi transmis mai rapid, fie pentru a fi stocat
ntr-o
sau chiar pentru a mentine numai informatiile esentiale oferite
arhiv de
acesta.
In aceste cazuri, si multe altele, pentru a obtine informatia originala
a
semnalului, sau o copie cat mai fidela a lui, sunt necesari diferiti
algoritmi de sinteza (reconstructie). In unele cazuri, semnalul este n asa
fel modificat
ncat reconstructia
fie robusta rezultand un semnal prelucrat identic
lui s
cu cel initial, precum anumiti algoritmi de compresie.
si cazuri n care
Exist
semnalul original, odat modificat, este pierdut, iar algoritmii de sintez sunt
proiectati astfel ncat sa
o copie cat mai fidela. Aici se ncadreaza si
reproduc
unele metodele de compresie de imagini sau sunete prin eliminarea anumitor
portiuni ce nu sunt sesizabile senzorilor de perceptie umani (JPG,
MP3, OGG).
Cazul cel mai defavorabil pentru reconstructia unui semnal este cand nu
se cunoaste sursa de unde a derivat acesta.
a sti cum era reprezentat
Far
semnalul original sau ce procese l-au modificat pe parcurs crearea algoritmilor
specifici cu rezultate bune este destul de dificila. Astfel se apeleaz la o
reconstructie generica ce ia n calcul doar semnalul perturbat,
ncercandu-se eliminarea pe cat mai mult posibil a zgomotelor aparute pe
parcurs.
Daca reprezentam o imagine drept o matrice bidimensionala, n
care pozitia fiecarui element si valoarea
sa sunt corespondente
pozitiei si, res- pectiv, culorii unui pixel din imagine, atunci acestea pot fi
considerate si re- prezentate drept semnale bidimensionale. Aceasta permite
prelucrarea ima- ginilor cu notiunile si teoriile actuale din teoria prelucrarii
semnalelor.
Prelucrarea imaginii, si a semnalelor n general,
un domeniu
reprezint
foarte larg n care diferite metode si abordari apar frecvent. O
recenta
metod este prelucrarea imaginilor cu ajutorul transformarii
wavelet.
Transformarea wavelet
2.1
Definitii
ti:
este
obtinut
1
u,s (t) = t u
s
s
Aceste prelucrari pastreaza norma:
||u,s (t)|| = 1
Filtrarea liniara
Transformata wavelet poate fi rescrisa sub forma unui produs de convolutie:
Z +
tu
1
f (t)
W f (u, s) =
dt cu:
s
s
s (t) = 1
s
t
s
s (s)
R
Din moment ce (0) = + (t) dt = 0, se observ
reprezinta
c
+
0
()
d < +
Z + Z +
tu
1
ds
1
W f (u, s)
du 2 si
f (t) =
s
s
s
C 0
Z + Z +
Z +
ds
1
|W f (u, s)| 2 du 2
|f (t)|2 dt =
C 0
s
Functia de scalare.
Cand W f (u, s) este cunoscut doar pentru s < s0 , apare necesitatea unei
informatii suplimentare, pentru recuperarea lui f, corespunzatoare lui W f (u,
s)
pentru s > s0 . Aceasta informatie este
introducand o functie de scaobtinut
lare reprezentand o agregare a wavelet-urilor cu scala mai mare decat 1.
Modulul transformatei Fourier a functiei de scalare este:
Z +
2
2 ds
() =
(s)
lim ()
=C
Astfel functia de
scal filtru trece-jos.
1
s (t) =
t
s
s
; s (t) =
(t).
s
2.1.2
Scalare discreta
O transformare wavelet calculata
la scala aJ nu este o reprezentare
pan
complet a semnalului. Astfel este necesar adaugarea frecventelor Lf [n, aJ ]
joase corespunzatoare scalelor mai mari de aJ .
Un filtru de scalare discret si periodic este obtinut prin
esantionarea functiei de scalare (t) definita anterior.
1
J [n] = n
aJ
aJ
2.2
In pofida algoritmilor de calcul eficienti si a reprezentarii compacte, transformarea wavelet prezint patru deficiente fundamentale.
2.2.1
Oscilatiile
T inand cont de faptul ca wavelet-urile sunt functii cu filtre trecebanda, coeficientii wavelet si n special coeficientii functiei prelucrate
cu ajutorul
transformatei wavelet tind s oscileze pozitiv si negativ n jurul singularit tilor. Aceasta
o problema care complica considerabil procea reprezint
sarea cu ajutorul wavelet-urilor, ceea ce face ca extractia singularitatilor si,
n particular, modelarea semnalului sa
o provocare.
devin
2.2.2
Invarianta translatiilor
3j/2
2j t0 n
raspunsul
sau
treapta d(j(j,
n)
este
o functie
a lui n. Mai
mult,
factorul
2j
n
limita
superioara
0)
amplifica
sensibilitatea
lui
d
(j,
n)
la
translatia de
timp t0 , ducand la o
variatie la translatie.
puternic
2.2.3
Aliasing
Din distantarea
a esantioanelor coeficientilor wavelet si din faptul
larg
ca
acesti coeficienti wavelet sunt calculati prin operatii recurente de
subesantionare
discret combinate cu filtre trece sus si trece jos neideale,
un alias
rezult
substantial. DWT-ul invers
desigur alias-ul, dar numai n cazul n
anuleaz
care coeficientii wavelet si de scalare nu sunt schimbati. Orice
coeficienti
Lipsa
2.3
2.3.1
1D
Implementare
Transformata discreta wavelet
semnalul
de iesire y (n) sa fie egal cu semnalul de intrare x (n), atunci filtrele
satisfac conditia de reconstructie perfecta.
Figura 3: Wavelet 1D
2.3.2
2D Bancuri de filtre
Pentru a folosi transformata wavelet n procesarea de imagine trebuie implementat o versiune 2D a bancurilor de filtre de analiz si sinteza. In cazul
2D, filtrele de analiza 1D sunt aplicate ntai pe coloanele imaginii si
apoi linilor.
Dac imaginea are N1 linii si N2 coloane, atunci
aplicarea filtrelor
dup
1D de analiz fiecarei coloane se obtin doua subbenzi de imagini, fiecare
avand N1/2 linii si N2 coloane.
aplicarea filtrelor de analiza 1D asupra
Dup
fiecarei linii a ambelor subbenzi, se obtin patru subbenzi continand fiecare
cate o imagine (vezi figura 4). Fiecare imagine
are N1/2 linii si
obtinut
N2/2 coloane.
Figura 5: Wavelet 2D
Se observ ca primele
wavelet-uri sunt orientate n directie verticala
dou
si, respectiv, orizontala. Totusi, al treilea wavelet nu
o orientare
prezint
dominanta. Aceasta din urma combina
orientari diagonale indicand
dou
efectul de checkboard. Transformata wavelet discreta 2D izoleaza slab cele
dou orientari diagonale.
Arborele dual
3.1
Definitii
Arborele dual este construit prin aplicarea simultan a doua wavelet-uri discrete asupra unui semnal dat. Avand de a face cu dou transformate cu
coeficienti reali, cele
vor fi considerate partea real si, respectiv, parte
dou
imaginar a unei transformate complexe.
3.1.1
Wavelet-uri complexe
pozitiv si negativ.
cand transformata este aplicat de doua ori succesiv asupra unei functii
u rezultatul este -u :
H (H (u)) (t) = u (t)
Componentele sinus si cosinus (partea imaginara si, respectiv, reala) formeaz o transformata Hilbert, ceea ce presupune un defazaj de 90 al uneia
fat de cealalta.
ele constituie un semnal analitic ejt care are
a Impreun
suport numai pe jumatate din axa frecventei ( > 0).
Astfel, pornind de la transformarea Fourier, se defineste transformarea
wavelet complex odat cu functia de scalare complexa si wavelet-urile complexe:
c (t) = r (t) + ji (t)
Prin analogie cu transformata Fourier, definim r (t) fiind real si para si
ji (t) drept imaginar si impara. Mai departe,
r (t) si i (t) alcatuiesc
dac
o transformare Hilbert (defazate cu 90 una fata de alta), atunci c (t) reprezint un semnal analitic cu suport numai pe jumatate din axa frecventei.
Functia de scalare
este definita similar.
se proiecteaza
complex
Dac
semnalul astfel ncat
se evidentieze coeficientii complecsi wavelet (ex.
s
2j/2 c (2j t n)) se obtine:
dc (j, n) = dr (j, n) + jdi (j, n) cu amplitudinea:
q
|dc (j, n)| = |dr (j, n)| 2 + |di (j, n)| 2 si faza:
di (j, n)
dr (j, n)
cand |dc (j, n) > 0|. Similar cu transformata Fourier, wavelet-urile complexe pot fi folosite pentru a analiza si reprezenta atat semnale cu
valori reale (rezultand simetria coeficientilor) cat si semnale cu valori
complexe. In
oricare dintre cazuri, transformata wavelet complex face loc unor noi algoritmi pentru procesarea semnalelor multiscal ce se folosesc de amplitudinea
si faza
rezultate.
complex
De exemplu, o amplitudine mare indic prezenta unei
ti, n
singularita
timp ce faza indic pozitia sa n cadrul suportului wavelet-ului.
dc (j, n) = arctan
3.1.2
Analiticitatea
g (t) H {h (t)}
Bancurile de filtre au coeficienti reali, deci nu este
aplicarea
necesar
unei aritmetici complexe pentru a implementa arborele dual complex. O alta
caracteristic a arborelui dual o reprezinta faptul ca nu este critic esantionat.
Pentru 1D, el este doua ori expansiv datorita datelor de iesire ce reprezinta
exact dublul datelor de intrare.
Inversa transformatei complexe cu arbore dual se obtine printr-un proces
similar cu cea directa. Pentru a inversa partea imaginara si cea real se
foloseste inversa fiecarei transformate wavelet discrete, obtinandu-se astfel
dou semnale reale. Aceste dou semnale sunt apoi mediate pentru a obtine
rezultatul final.
Dac cele dou transformate discrete reale sunt reprezentate cu ajutorul
matricelor patratice Fh si Fg , atunci transformata
wavelet cu arcomplexa
bore dual poate fi reprezentata de matricea
dreptunghiulara:
F =
Fh
Fg
1
2
F h1 Fg1
se verific prin:
F 1 F =
1
2
Fh1 Fg1
Fh
Fg
1
[I + I ] = I
2
1
1
Fh ; F =
2
Fg
Fh1 Fg1 .
I jI
I jI
F c1 =
1
2
Fh ,
Fg
Fh1 Fg1
I
I
jI jI
j,n
3.2
Bancuri de filtre
Conditia de ntarziere
3.2.2
aproximativ analitice.
Acest efect apare din cauza alegerii filtrelor n functie de conditia de
translatare cu jumatate de esantion, ce a fost
prin corelarea cu proimpus
prietatea de transformare Hilbert wavelet-urilor (g (t) H {h (t)}). Totusi
aceste
wavelet
sunt folositoare pentru a procesa bancurile de filtre
la etapefunctii
mari, cu
j .
Se arata ca daca filtrele trece-jos satisfac conditia de translatare cu
jumatate
de esantion, atunci si functiile de scalare satisfac
conditie:
aceast
g0 (n) h0 (n 0, 5) g (t) h (n 0, 5)
Extinderea wavelet reala pentru un semnal x (t) aduce translatari cu
un numar ntreg a functiei de scalare. Astfel conditia de ntarziere a
functiei de scalare presupune ca translatarile ntregi ale lui g (t) sa fie la
jumatate ntre
translatarile ntregi ale lui h (t).
cele dou functii satisfac o proprieAdic
tate de ntrepatrundere. Pentru ca forma discreta a arborelui dual complex
s fie aproximativ analitic la fiecare etap j, este necesar ca bancurile de
filtre ale arborelui dual sa duplice aceasta proprietate.
Astfel filtrele care sunt proiectate sa ndeplineasca proprietatea de
translatie cu jumatate de esantion nu ar trebui folosite n prima etapa.
Pentru prima
etap trebuie satisfacuta o conditie similara cu:
(1)
g0 h0(1) (n 1)
folosind aceleasi set de filtre n ambele ramuri. Este
numai
necesar
translatarea unui set de filtre cu un esantion relativ la celalalt. Mai
mult, orice banc de filtre ce satisface proprietatea de reconstructie poate fi
folosit
n prima etapa.
3.3
3.3.1
Implementare
Transformata wavelet cu arbore dual 1D
Bancuri de filtre
Filtrele folosite n prima
a transformatei wavelet complexe cu arbore
etap
dual trebuie s fie diferite de filtrele folosite n restul etapelor (discutat n
sectiunile anterioare).
Transformata wavelet este aplicat similar celei discrete. Frecventele
joase ale fiecarei etape sunt prelucrate de filtrele asociate partii superioare si
expansiva.
Arborele dual 2D complex este implementat cu ajutorul a patru transformate wavelet discrete ce opereaza n paralel. Cu toate acestea,
bancuri de filtre diferite sunt folosite de-a lungul liniilor si coloanelor. Ca
si n cazul real, suma si diferenta imaginilor din subbenzi sunt calculate
pentru a obtine wavelet-urile orientate.
Imaginea x este recuperat folosind transformata invers ce opereaz similar celor descrise anterior, dar n concordanta cu transformata direct 2D
cu arbore dual. Proprietatea de reconstructie este asigurata, din nou, datorit filtrelor alese.
Cele doisprezece wavelet-uri asociate cu cele din arborele dual real sunt
obtinute similar prin aplicarea transformarilor asupra unui semnal nul.
Ima- ginea acestor wavelet-uri este similara cu cea prezentata n figura 9.
Arborele dual poate fi extins prin mbinarea acestuia cu transformata wavelet discret cu densitate dubl (DD). Aceast transformata DD se comporta mult mai bine decat transformata discreta, detinand proprietatea
de invarianta la translatii. Transformata DD are la baza o singura
functie de scalare si doua wavelet-uri distincte.
Cele doua wavelet-uri sunt proiectate astfel fie deplasate la
ncat sa una fata de cealalta.
Consecinta jumatate translatiile
acestui fapt este ca unui wavelet ajung la mijlocul ntregi ale
translatiilor celeilalte:
2 (t) 1 (t 0, 5)
Astfel transformata continu este mult mai bine aproximat cu ajutorul transformatei DD, fata de transformata discreta, avand n vedere c
se dispune de mai multe wavelet-uri decat necesar pentru acest proces.
Exist mai multe lucrari [6, 2] ce trateaz subiectul proiectarii diferitelor
filtre de tip FIR si legatura lor cu wavelet-urile folosite pentru
transformarea DD. Continua cercetare si experimentare cu acest tip de
transformare wavelet a dus la urmatoarele concluzii: wavelet-urile folosite cu
transformata DD sunt foarte line, cu un suport mic, iar transformata este
aproximativ invarianta la translatii.
Dac se iau n vedere transformata DD si cea cu arbore dual se observa
cateva similaritati. In principal ambele sunt redundante cu 2, ambele
prezinta invarianta la translatii si ambele se bazeaza pe filtre FIR ce
detin proprietatea
de reconstructie. Evident, separat,
se comport mult mai bine n
amandou
procesarea imaginilor fata de transformata
simpla.
discret
Din pacate exista si diferente ce trebuie remarcate ntre cele doua
imple- mentari:
pentru transformata discret wavelet cu arbore dual, cele doua waveleturi reprezinta o transformare aproximativ Hilbert, pe cand pentru transformata DD ele sunt deplasate cu jumatate una fata de alta
pentru transformata cu arbore dual se dispune de mai putine grade de
libertate n proiectare, fiind
de transformarea Hilbert, pe
constrans
cand n transformarea DD se dispune de mai multe grade de libertate
structurile filtrelor pentru cele dou
4.1
Proiectare
4.2
Implementare
Se noteaz filtrele din prima ramura cu hi (n) si cele din a doua cu gi (n),
unde i = 0, 1, 2.
Filtrele de sinteza sunt deduse din cele de
ntr-un mod similar
analiz
cu cel prezentat n sectiunile anterioare, avand n
ele sunt versiuni
vedere c inversate n timp ale celor de analiza.
Cele sase filtre FIR trebuie sa ndeplineasca urmatoarele
ti:
proprieta
reconstructie perfecta
wavelet-urile trebuie
sa
wavelet-urile trebuie s
hilare
filtrele trebuie s
Hi (z) Hi (1/z) = 2
Hi (z) Hi (1/z) = 0 si:
i=0
2
X
Gi (z) Gi (1/z) = 2
i=0
2
X
Gi (z) Gi (1/z) = 0
i=0
h,1 (t) = 2
h1 (n) h (2t n)
n
h,2 (t) =
X
2
h2 (n) h (2t n)
n
4.3
Filtre
Z
k
t h,i (t) dt =
tk g,i (t) dt = 0, i = 1, 2
K0
Q0 (z)
K1
Q1 (z)
K2
Q2 (z)
K0
Q0 (z)
G1 (z) = D (z) 1 z 1
K1
Q1 (z)
G2 (z) = D (z) 1 z 1
K2
Q2 (z)
K0
n
si (n) = (1) n
Ki
n
K0 !
(K0 n)!n!
Cu aceast structura, necunoscutele D (z) si Qi (z) sunt determinate pentru a ndeplini conditiile mentionate mai sus, cu L factorul de aproximare a
reconstructiei perfecte. Metodele prin care se
aceste valori sunt
determin explicate si detaliate n lucrarile de
specialitate.
5.1
5.1.1
functia
sa-l ghiceasca. Daca imaginea este grayscale, functia ntoarce
ncearc
o matrice bidimensionala. Altfel, n functie de tip matricea este tridimensional si
o prelucrare suplimentar pentru a transforma paleta colora
necesit
ntr-una grayscale.
Dup apelarea functiei imread se
asupra iesirii acesteia o alta
aplic
functie Matlab: double. Aceasta transformare este
pentru a asinecesar
gura ca tipul elementelor matricei fie n virgula mobila.
s
xo = d o u b l e ( i m r e a d ( img )
);
In continuare se
imaginea cu zgomot prin adaugarea unor vacreeaz
lori aleatoare imaginii originale. Aceast noua matrice este salvat separat
pentru a fi prelucrata de rutinele de eliminare a zgomotului.
xn = xo + 2 0 randn ( s i z e ( xo ) ) ;
Etapa urmatoare seteaza bancurile de filtre n functie de valoarea
para- metrului de intrare flags.
[Faf, Fsf] = FSfarras;
i f f l a g s == 0
[af , sf] = dualfilt 1 ;
e l s e i f f l a g s == 1
[ a f , s f ] = htpwb N10K4L5 ;
...
filt er = {Faf, Fsf, af, sf};
In final se
afiseaza
de imaginea
originala.
colormap ( gray ) ;
imagesc ( xn ) ;
5.1.2
reprezentand
In functie de flag-uri, se
asupra numarului complex thresholding-ul
aplic
ales (soft sau hard). Implementarea celor dou tipuri de thresholding va fi
explicat n continuare.
i f f l a g s == 0
C = soft (C, T);
els
e
C = hard(C, T);
end
La sfarsitul iteratiilor se construieste transformata wavelet
incomplex
versa. Pentru a o obtinerea acesteia se folosesc: transformata wavelet complex directa, numarul de etape, filtrele de
initiale si cele genesintez
rale. Rutina icplxdual2D se apeleaz prin intermediul acestor parametrii,
ea reusind sa produca astfel matricea
imaginii far zgomot.
asociat
y = icplxdual2D(w,J ,Fsf, sf);
La sfarsitul rutinei mydenoise se
imaginea obtinuta pentru a se
afiseaz
observa diferentele (evidente) ntre imaginea cu zgomot si cea prelucrata:
imagesc ( y )
colormap ( gray
) a x i s image
5.1.3
w{ J+1}{m}{n } = l o ;
Dup aceasta se reia iteratia pentru urmatoarea subbanda.
La sfarsit se efectueaza suma si diferenta imaginilor din fiecare
subbanda pentru a obtine wavelet-urile orientate. Acestea se obtin prin
iterarea fiecarei etape de-a lungul fiecarei perechi de orientare.
for j = 1:J
for m = 1:3
[ w{ j }{1 }{1 }{m} w{ j }{2 }{2 }{m} ] =
pm(w{ j }{1 }{1 }{m} ,w{ j }{2 }{2 }{m} ) ;
[ w{ j }{1 }{2 }{m} w{ j }{2 }{1 }{m} ] =
pm(w{ j }{1 }{2 }{m} ,w{ j }{2 }{1 }{m} ) ;
end
end
5.1.4
Imaginea este recuperat din transformarea wavelet direct folosind transformata inversa. Aceasta este implementat n
icplxdual2D.
rutin
Aceast rutin asigura proprietatea de reconstructie a transformatei. Calcularea erorii acestei reconstructii este
n sectiunea urmatoare.
detaliat
Rutina primeste ca parametrii de intrare transformata wavelet
directa, numarul de etape folosit, filtrele de sinteza pentru prima etapa
si cele pentru etapele urmatoare.
Rutin ntoarce la iesire matricea
imaginii prelucrate
zgoasociat
(far
mot).
function y = icplxdual2D(w, J , Fsf, sf)
In interiorul rutinei iteratiile si etapele de reconstructie a imaginii au loc
n ordine inversa fata de transformarea directa. Astfel ntai se vor
calcula suma si diferenta ntre imaginilor continute de fiecare subbanda
ce determina orientarea wavelet-urilor.
for j = 1:J
for m = 1:3
[ w{ j }{1 }{1 }{m} w{ j }{2 }{2 }{m} ] =
pm(w{ j }{1 }{1 }{m} ,w{ j }{2 }{2 }{m} ) ;
[ w{ j }{1 }{2 }{m} w{ j }{2 }{1 }{m} ] =
pm(w{ j }{1 }{2 }{m} ,w{ j }{2 }{1 }{m} ) ;
end
end
y = ( abs ( x ) > T ) . x ;
pe
N 2 af 2l, unde af2l este lungimea filtrului af2 (de analiz pe linii)
La iesire rutina ntoarce setul de filtre trece jos
mpreuna
tipuri de filtre mixte trece sus astfel:
cu cele trei
Precum s-a demonstrat anterior, pentru aplicarea filtrelor de analiz pe coloane si apoi pe linii, n rutina afb2D a fost
rutina afb2D A.
apelat
Aceast rutina foloseste o
dimensiune pentru a procesa semnalul
singur
de la intrare si a-i aplica filtrul dorit.
Parametrii de intrare sunt matricea asociat imaginii, filtrul de analiz si
dimensiunea ce specifica
e vorba de coloane sau linii. La fel ca rutina
dac
precedenta, matricea de intrare trebuie sa ndeplineasca un set de conditii:
min(N, M ) > 2 af l, unde afl este lungimea filtrului de analiza
N, M s
fie pare
% lowpass filt
% highpass filt
end
N = size(x,1);
Rezultatul obtinut
aplicarea filtrelor de sinteza difera de semnalul
dup
original, n cazul n care filtrele sunt cauzale, printr-o rotatie circulara. Pentru nlaturarea acestui efect semnalul va fi rotit atat n faza de
cat si
analiz
n ce de sinteza.
L = size(af ,1)/ 2;
x = c s h i f t 2 D ( x ,L ) ;
In continuare pentru filtrare si reducerea numarului de esantioane se
va
folosi functia Matlab upfirdn
n toolbox-ul de Signal Processing).
(disponibil
Dimensiunea de N/2 dorita n subbenzi este depasita cu L/2, unde L
reprezint lungimea filtrelor. Pentru a elimina excesul, ultimele L/2 esantioane
se adauga primelor L/2. Aceasta reprezinta
o solutie de convenienta
ns
deoarece operatia efectuata poate ridica anumite probleme la
nceputul si sfarsitul semnalului din subbenzi.
lo = upfirdn(x, lpf , 1, 2);
l o ( 1 : L , : ) = l o ( 1 : L , : ) + l o ( [ 1 : L]+N/ 2 , : ) ;
l o = l o ( 1 : N/ 2 , : ) ;
hi = upfirdn(x, hpf, 1, 2);
h i ( 1 : L , : ) = h i ( 1 : L , : ) + h i ( [ 1 : L]+N/ 2 , : ) ;
h i = h i ( 1 : N/ 2 , : ) ;
Odat ce se obtin subbenzile trece-sus si trece-jos, trebuie stabilit tipul
operatiei (pe coloane sau pe linii) si n functie de asta transpunerea filtrelor.
i f d == 2
lo = lo ;
hi = hi ;
end
5.1.8 Sinteza: aplicarea bancurilor de filtre sfb2D
rutinei este:
function y = sfb2D(lo , hi , sf1 , sf2)
% lowpass filter
% highpass filter
5.2
els
e
end
5.2.2
Aplicarea filtrelor
5.3
5.3.1
1);
Calcularea erorii
Proprietatea de reconstructie a transformatei wavelet
O imagine este prelucrata pentru eliminarea zgomotului cu ajutorul transformatei wavelet directe. Aceasta transformare a fost
cu ajutorul
implementat
Matlab ntr-o
prezentat mai sus (cplxdual2D).
rutin
Dup prelucrare este necesar extragerea imaginii. Pentru aceasta se
foloseste transformata wavelet inversa. Dea semeni
o rutin Matlab
exist
icplxdual2D a carei descriere poate fi
n sectiunea anterioara.
gasit
Pentru a verifica proprietatea de reconstructie a transformatei wavelet se
poate folosi o secventa de instructiuni
>> y = i c p l x d u a l 2 D (
similara
w, J , Fsf, sf);
>> e r r = x y ;
>> x = rand ( 2 5 6 , 1 2 8 ) ;
>> max(max( abs ( e r r )
>> J = 4 ;
))
>> [ F a f , F s f ] = F S f a r r a s ;
>> [ a f , s f ] = d u a l f i l t 1 ;
>> w = c p l x d u a l 2 D ( x , J , F a f ,
af);
cu urmatoarea:
ans =
3 . 8 6 9 3 e 008
Se observa semnalul original a fost reconstruit integral.
c
5.3.2
x = rand ( 2 5 6 , 1 2 8 ) ;
[af , sf] = dualfilt 1 ;
[ l o , h i ] = afb2D ( x , a f { 1 } , a f { 2 } ) ;
y = sfb2D(lo , hi , sf{1}, sf{2});
err = x y;
max(max( abs ( e r r ) ) )
ans =
1 . 8 9 7 4 e 008
Se observa reconstructia
perfect
5.3.3
a semnalului x.
PSNR
m1 n1
1 X X
||I (i, j) K (i, j)||
mn 2i=0 j=0
M AXi2
M SE
Rezultate experimentale
Filtrele folosite pentru eliminarea zgomotului cu ajutorul transformatei arborelui dual simplu sunt preluate din tratate de specialitate prezentand caracteristici relativ diferite, concentrandu-se asupra anumitor aspecte din cadrul
celor prezentate n sectiunea 3.
S-au folosit filtre prezentate n lucrarea Hilbert Transform Pairs of
Wave- let Bases [4] de Ivan Selesnick. Aceasta lucrare prezinta
proiectarea filtrelor ce aproximeaza bine ntarzierea cu jumatate de
esantion a filtrelor de scalare.
In lucrarea curenta filtrele au fost notate cu
htpwb.
A doua serie de filtre urmeaz tiparul folosit n lucrarea The Design of
Approximate Hilbert Transform Pairs of Wavelet Bases [5] scris de Ivan
Selesnick. Filtrele sunt construite cu ajutorul factorizarii si au fost notate cu
dahtpwp.
Un alt set de filtre a fost preluat din lucrarea Optimization of Symmetric Self-Hilbertian Filters for the Dual-Tree Complex Wavelet Transform[1]
scris de Bogdan Dumitrescu et al., n care filtrele sunt simetrice si pot avea
unul sau doua grade de libertate. Aceste filtre au fost prescurtate n
lucrare cu bd.
Pentru transformata wavelet cu arbore dual cu densitate dubla s-au folosit
dou tipuri de filtre. Primul tip este propus tot de Ivan Selesnick, n lucrarea
The Double-Density Dual-Tree DWT[6], si satisface restrangerile descrise
n sectiunea 4 rezultatele prezentand un grad ridicat de netezime n
urma prelucrarii.
O a doua serie de filtre este preluat din lucrarea A Method For Designing The Double-Density Dual-Tree Discrete Wavelet Transform[2], scrisa
de Bogdan Dumitrescu si Ali Bahrami Rad, unde filtrele pentru arborele dual
cu DD prezinta o analiticitate
fata de cele prezentate de Selesnick.
crescut
In continuare vor fi prezentate rezultatele experimentale obtinute
prin aplicarea acestor filtre asupra imaginilor cu zgomot.
6.1
Rezultate numerice
6.1.1
6.1.2
Similar s-au comparat filtrele propuse n [1] n functie de gradele de libertate si lungime. Rezultatele (vezi tabela 4)
o performanta mai buna
indic
a celor cu dou grade de libertate, cu o diferenta de aproximativ 0,3 dB fata
de cele cu un singur grad de libertate.
6
28.2806
28.3021
8
28.2568
28.2891
10
28.2758
28.0110
12
28.2735
28.1998
14
28.2247
28.2339
16
28.0461
28.2413
18
28.2371
28.0024
20
28.1961
28.2624
22
27.9778
28.0313
6.1.3
6.2
Rezultate grafice
Pentru
continuare
prelucrate.
cu zgomot,
Lena, DD, dd bd 2
6.2.2
Flinstones, bd2
12
Concluzii
Bibliografie
[1] B. Dumitrescu, I. Bayram, and I.W. Selesnick. Optimization of symmetric
self-hilbertian filters for the dual-tree complex wavelet transform. IEEE
Signal Processing Lett., 15:146149, 2008.
[2] B. Dumitrescu and A.B. Rad. A method for designing the double-density
dual-tree discrete wavelet transform. LNLA, Lausanne, 2008.
[3] S. Mallat. A Wavelet Tour of Signal Processing. New York: Academic,
1998.
[4] I.W. Selesnick. Hilbert transform pairs of wavelet bases. IEEE Signal
Processing Lett., 8(6):170173, 2001.
[5] I.W. Selesnick. The design of approximate hilbert transform pairs of
wavelet bases. IEEE Trans. Signal Processing, 50(5):11441152, 2002.
[6] I.W. Selesnick. The double-density dual-tree discrete wavelet transform.
IEEE Trans. Signal Processing, 52(5):13041314, 2004.
[7] I.W. Selesnick, R.G. Baraniuk, and N.G. Kingsbury. The dual-tree complex wavelet transform. IEEE Signal Processing Magazine, pages 123
151, 2005.