β’ CosβΓ¨ una wavelet?
β’ Applicazioni della trasformata wavelet
β’ Analisi multirisoluzione
Tre tecniche:
β’ Piramidi di immagine
β’ Trasformata di Haar
β’ Codifica per sottobande
Il numero totale di pixel nel caso di una piramide di (π + 1) livelli Γ¨:
π2 1 +1
(4)1+
1
(4)2+ β―+
1
(4)π
Usate in coppia: - Piramide di approssimazione - Piramide residua di predilezione
β’ Lβimmagine viene decomposta in un insieme di componenti, di banda limitata (sottobande).
β’ La scomposizione viene attuata in modo tale che le sottobande possano poi essere riassemblate per ricostruire lβimmagine originale senza errori.
β’ La scomposizione e la ricostruzione vengono realizzate attraverso
lβuso di filtri digitali
β’ Tre componenti principali: ritardi unitari, moltiplicatori e sommatori
β’ Le K costanti moltiplicative sono dette coefficienti del filtro
β’ Ogni coefficiente definisce uno dei tap del filtro.
π π = π π π(π β π)
β
π= ββ
Impulso discreto unitario
π π = π π πΏ(π β π)
β
π= ββ
= π(π)
Risposta allβimpulso finito (FIR)
Un filtro Γ¨ completamente descritto fornendo il suo FIR
β’ Due banchi di filtri
β’ Banda dettaglio (πβπ(π)) e banda di approssimazione (πππ(π))
β’ Filtri di ricostruzione perfetti
Per ottenere la perfetta ricostruzione, i filtri di analisi e sintesi devono essere legati in uno dei seguenti modi:
π0 π = β1 ππ1 π
π1 π = β1 π+1π0 π
oppure
π0 π = β1 π+1π1 π
π1 π = β1 ππ0 π
Quattro filtri di Daubechies correlati
β’ Questi filtri godono della proprietΓ di biortogonalitΓ . β’ Di notevole importanza sono anche i banchi di filtri ortonormali. Filtri 1-D che godono di entrambe queste proprietΓ possono essere usati come filtri separabili 2-D per lβelaborazione delle immagini.
Nella figura successiva viene mostrata quella che piΓΉ avanti chiameremo Trasformata Discreta Wavelet (WDT)
Ma primaβ¦ un poβ di matematica!!
Lβanalisi multirisoluzione (MRA, Multi Resolution Analysis) Γ¨ una branca della matematica che prevede lβuso di una funzione di scala per creare una serie di approssimazioni di una funzione/immagine (differenti per un fattore 2) e funzioni, dette wavelet, per codificare la differenza di informazione tra approssimazioni adiacenti.
In genere: β’ le funzioni di scaling sono indicate con il simbolo π β’ le funzioni wavelet sono indicate con il simbolo π
Sia π π₯ π πΏ2 β
Definiamo *ππ,π π₯ + dove ππ,π π₯ = 2π/2π 2ππ₯ β π
Definiamo ππ = πππππ*ππ,π(π₯)+
Se π π₯ π ππ allora π 2π₯ π ππ+1
Le funzioni di scaling devono obbedire a 4 requisiti principali: 1. La funzione di scaling deve essere ortogonale rispetto alle
sue traslazioni intere. 2. I sottospazi descritti da funzioni di scaling a scale piΓΉ basse
vengono annidati allβinterno di quelli a scale piΓΉ alte.
3. La sola funzione comune a tutti i sottospazi Γ¨ π π₯ = 0: πββ= *0+ 4. Ogni funzione puΓ² essere rappresentata con precisione
arbitraria: πβ = *πΏ2 β +
πββ β β― β πβ1 β π0 β π1 β β― β πβ
Le funzioni di espansione del sottospazio ππ possono
essere espresse come somma pesata delle funzioni di espansione del sottospazio ππ+1:
ππ,π π₯ = πΌπ ππ+1,π(π₯)
π
Da cui:
ππ,π π₯ = ππ(π) 2π+1 2 π(2π+1π₯ β π)
π
Questa equazione Γ¨ fondamentale per lβanalisi multirisoluzione!
Le funzioni di espansione di ogni sottospazio possono essere costruite da copie di se stesse a risoluzione doppia, cioè dalle funzioni di espansione del successivo spazio a risoluzione più alta.
Consideriamo:
ππ π₯ = 1 0 β€ π₯ < 10 πππ‘ππππππ‘π
Ricordiamo:
ππ,π π₯ = 2π/2π 2ππ₯ β π
ππ 0 = ππ 1 = 1
2
Infatti: π π₯ =
= 1
2. π1,0 π₯ +
1
2. π1,1 π₯
Definiamo ππ,π π₯ , dove ππ,π π₯ = 2π/2π 2ππ₯ β π
Definiamo ππ = πππππ*ππ,π(π₯)+
I sottospazi delle funzioni di scaling e wavelet sono legati da ππ+1 = ππ β ππ
Una funzione wavelet π(π₯) insieme alle sue traslazioni e riduzioni di
scala binarie, ricopre la differenza fra due sottospazi di scaling
adiacenti ππ e ππ+1.
Tutti i membri di ππ sono
ortogonali rispetto a quelli di ππ
Risulta immediato: πΏ2 β = π0 β π0 β π1 β β―
oppure πΏ2 β = π1 β π1 β π2 β β―
o anche
πΏ2 β = β― β πβ1 β π0 β π1 β β―
Queste equazioni possono essere generalizzate in πΏ2 β = ππ0 β ππ0 β ππ0+1 β β―
dove π0 prende il nome di scala iniziale.
ππ,π π₯ = ππ(π) 2π+1 2 π(2π+1π₯ β π)
π
Si puΓ² dimostrare che i coefficienti delle funzioni di scaling e wavelet sono legati dalla seguente relazione:
ππ π = (β1)πππ(1 β π)
Gli spazi wavelet risiedano allβinterno di spazi ricoperti dalle funzioni di scaling a piΓΉ alta risoluzione, ciΓ² significa che ogni funzione wavelet, cosΓ¬ come avveniva per la sua controparte funzione di scaling, puΓ² essere espressa come somma di funzioni di scaling traslate a risoluzione doppia.
A partire dai coefficienti delle funzioni di scaling dellβesempio precedente, possiamo calcolare i coefficienti delle funzioni wavelet:
ππ 0 = 1 2
ππ 1 = β1 2
Γ facile ottenere la funzione wavelet corrispondente:
π π₯ = 1 0 β€ π₯ < 0.5
β1 0.5 β€ π₯ < 10 πππ‘ππππππ‘π
Esistono 3 trasformate wavelet 1D:
Espansione in serie wavelet
Trasformata wavelet discreta
Trasformata wavelet continua
Ricordiamo che: πΏ2 β = ππ0 β ππ0 β ππ0+1 β β―
e anche:
π π₯ π ππ0 βΉ π π₯ = πΌπ
π
ππ0,π(π₯)
π π₯ π ππ0 βΉ π π₯ = πΌπ
π
ππ0,π(π₯)
Una funzione π π₯ puΓ² essere rappresentata da unβespansione della funzione di scaling π π₯ nel sottospazio ππ0 e da un certo numero di espansioni della funzione wavelet
π π₯ nei sottospazi ππ0 ,ππ0+1 β¦ dove π0 indica una scala iniziale arbitraria:
π π₯ = ππ0 π
π
ππ0,π π₯ + ππ π ππ,π π₯
π
β
π= π0
ππ0 (coefficienti di approssimazione)
ππ0 π = π π₯ , ππ0,π π₯ = π π₯ ππ0,π π₯ ππ₯
ππ (coefficienti di dettaglio)
ππ π = π π₯ ,ππ,π π₯ = π π₯ ππ,π π₯ ππ₯
Se la funzione da espandere Γ¨ discreta (ovvero una sequenza di numeri, come unβimmagine) i coefficienti che ne risultano sono detti trasformata wavelet discreta.
ππ π0, π = 1
π π(π)ππ0,π π
π
ππ π0, π = 1
π π(π)ππ,π π
π
πππ π β₯ π0
I valori di ππ0,π π e ππ,π π usati in queste equazioni sono versioni campionate delle
funzioni di base estraendo π campioni ugualmente spaziati allβinterno del supporto delle funzioni di base.
π π = 1
π ππ π0, π ππ0,π π
π
+ 1
π ππ π, π ππ,π π
π
β
π=π0
Varianti:
trasformata wavelet veloce (FWT, Fast Wavelet Transform).
trasformata wavelet continua (CWT, Continuous Wavelet Transform)
Con lβespansione in serie wavelet, una funzione continua viene associata ad una sequenza di coefficienti che ne rappresentano la trasformata.
Nel caso bidimensionale Γ¨ necessario usare una funzione di scaling bidimensionale π π₯, π¦ e tre wavelet bidimensionali ππ» π₯, π¦ , ππ π₯, π¦ e ππ· π₯, π¦ ottenute come prodotto di due funzioni unidimensionali:
π π₯, π¦ = π π₯ π π¦
ππ» π₯, π¦ = π(π₯)π(π¦) ππ π₯, π¦ = π π₯ π π¦ ππ· π₯, π¦ = π(π₯)π(π¦)
Definiamo le funzioni di base:
ππ,π,π π₯, π¦ = 2π/2π 2ππ₯ β π, 2ππ¦ β π
πππ,π,π
π₯, π¦ = 2π/2ππ 2ππ₯ β π, 2ππ¦ β π π β *π», π, π·+
Trasformata wavelet discreta dellβimmagine π(π₯, π¦) di dimensioni π Γ π :
ππ π0, π, π = 1
ππ π(π₯, π¦)ππ0,π,π π₯, π¦
πβ1
π¦=0
πβ1
π₯=0
πππ π,π, π =
1
ππ π(π₯, π¦)ππ,π,π
π π₯, π¦
πβ1
π¦=0
πβ1
π₯=0
π β *π», π, π·+
Antitrasformata:
π π₯, π¦ = 1
ππ ππ π0, π, π ππ0 ,π,π π₯, π¦
ππ
+ 1
ππ ππ
π» π,π, π ππ,π,ππ» π₯, π¦
ππ
β
π=π0 π=π»,π,π·
Usando funzioni wavelet e scaling bidimensionali, la FWT in due dimensioni puΓ² essere calcolata semplicemente prendendo la FWT 1-D delle righe di π(π₯, π¦) seguita dalla FWT 1-D delle colonne che ne risultano:
La trasformata wavelet discreta (DWT) trova impiego nella compressione JPEG2000 al posto della trasformata discreta del coseno (DCT) usata nel JPEG.
Lβuso di questa trasformata permette di operare sullβintera immagine piuttosto che su quadrettoni 8x8, evita quindi il tipico difetto della βquadrettaturaβ.
La DWT puΓ² essere sia reversibile (codifica lossless) che irreversibile (codifica lossy).
In JPEG2000 viene usata una trasformazione irreversibile basata sul filtro di Daubechies 9/7 a valori reali.
JPEG2000 rappresenta lo stato dellβarte per la compressione distruttiva e non distruttiva delle immagini, con un risparmio di spazio, a paritΓ di qualitΓ , rispetto allo standard JPEG, che parte da un +20-30%.
La trasformata wavelet puΓ² essere utilizzata come edge detector, al fine di evidenziare gli edge degli oggetti rappresentati in unβimmagine
Procedura:
Passo 1
Si sceglie una wavelet e un numero di livelli per la scomposizione e si calcola la FWT dellβimmagine affetta da rumore.
Passo 2
Si esegue unβoperazione di sogliatura (Hard o Soft) sui coefficienti di dettaglio delle scale inferiori (blocchi piΓΉ grandi).
Passo 3
Si calcola la trasformata wavelet inversa utilizzando i coefficienti di approssimazione inalterati di scala piΓΉ bassa e quelli di dettaglio modificati di tutte le altre scale.