TECNICHE DI FILTRAGGIO DEL RUMORE DALLE IMMAGINI RM

Transcript

TECNICHE DI FILTRAGGIO DEL RUMORE DALLE IMMAGINI RM
UNIVERSITÀ DEGLI STUDI DI PALERMO
FACOLTÀ DI INGEGNERIA
CORSO DI LAUREA IN INGEGNERIA INFORMATICA
TECNICHE DI FILTRAGGIO DEL
RUMORE DALLE IMMAGINI RM
Tesi di laurea di:
All. Ing. Roberto Gallea
Relatore:
Prof. Ing. Edoardo Ardizzone
Correlatore:
Ing. Orazio Gambino
Anno accademico 2003 – 2004
2
Sommario
Introduzione............................................................................................................. 5
1. Caratteristiche delle immagini di Risonanza Magnetica ................................ 6
1.1 – Introduzione......................................................................................................................6
1.2 – L’immagine RM ...............................................................................................................6
1.3 – Caratteristiche dei tessuti e tipi di immagini .................................................................7
1.3.1 – Immagini di densità protonica (PD) ............................................................................7
1.3.2 – Tempi di rilassamento magnetico – Immagini T1 e T2 ..............................................7
1.4 - Movimento dei fluidi e tipi di immagini.........................................................................7
1.4.1 – Flusso vascolare ..........................................................................................................7
1.4.2 – Aspersione e diffusione...............................................................................................7
1.5 – Variazione spettroscopica e chimica...............................................................................8
1.6 – Cosa si vede in un’immagine RM? .................................................................................8
1.6.1 – Intensità del segnale a radiofrequenza ........................................................................8
1.6.2 – Magnetizzazione del tessuto........................................................................................9
1.6.3 – Protoni (nuclei magnetici)...........................................................................................9
1.7 – Caratteristiche dei tessuti ..............................................................................................10
1.7.1 – Immagini PD (densità protonica) ..............................................................................10
1.7.2 – Immagini T1..............................................................................................................10
1.7.3 – Immagini T2..............................................................................................................11
1.7.4 – Caratteristiche spaziali ..............................................................................................11
1.8 – Controllo delle caratteristiche dell’immagine .............................................................11
1.8.1 – Sensibilità al contrasto ..............................................................................................12
1.8.2 – Dettaglio ....................................................................................................................12
1.8.3 – Rumore ......................................................................................................................12
1.8.4 – Artefatti .....................................................................................................................12
1.9 – Tempo di acquisizione dell’immagine ..........................................................................13
2. Il rumore nelle immagini RM .......................................................................... 14
2.1 – Rumore termico..............................................................................................................14
2.2 – Perdita di campioni ........................................................................................................15
2.3 – Rumore generato dai parametri del sistema................................................................16
3
2.4 – Rumore strutturato ........................................................................................................17
3. Stima del rumore ............................................................................................... 18
3.1 – PDF delle immagini RM di magnitudine .....................................................................18
3.2 – La distribuzione di Rice.................................................................................................19
3.3 – Stima del rumore............................................................................................................20
3.4 – Stima dei parametri del rumore ...................................................................................21
3.4.1 – Limite Minimo della Varianza ..................................................................................21
3.4.2 – Stima della Massima Probabilità...............................................................................21
4. Filtro di Perona-Malik ...................................................................................... 24
4.1 – Diffusione anisotropa .....................................................................................................25
4.2 – Proprietà della diffusione anisotropa ...........................................................................26
4.3 – Il Principio del Massimo ................................................................................................27
4.4 – Esaltazione dei bordi......................................................................................................27
4.5 – Risultati sperimentali.....................................................................................................29
5. Filtro Proposto................................................................................................... 33
5.1 – Svantaggi del filtro di Perona e Malik..........................................................................33
5.2 – Possibili modifiche per la miglioria del filtro...............................................................34
5.3 – Ricerca della direzione principale del gradiente .........................................................35
5.4 – Prova empirica del metodo............................................................................................37
5.5 – Modifica dell’equazione di diffusione anisotropa .......................................................39
5.6 – Scelta dei parametri per il tuning del filtro .................................................................40
6. Test e dataset utilizzati...................................................................................... 42
6.1 – Primo test ........................................................................................................................42
6.2 – Secondo test.....................................................................................................................46
6.3 – Terzo test.........................................................................................................................49
Appendice A........................................................................................................... 51
Estensione del filtro proposto nelle tre dimensioni ............................................ 51
A.1 – Utilizzi del filtro in tre dimensioni ...............................................................................51
A.2 – Modifiche allo schema computazionale.......................................................................51
A.3 – Risultati sperimentali ....................................................................................................53
Appendice B – Codice Sorgente ........................................................................... 57
B.1 – rgfilter.m.........................................................................................................................57
B.2 – getDirectionValues.m ....................................................................................................59
B.3 – rgfilter3d.m ....................................................................................................................62
B.4 – getDirectionValues3d.m ................................................................................................65
Bibliografia............................................................................................................. 68
4
Introduzione
Il problema che è stato affrontato è quello della messa a punto di un filtro in grado di ridurre
il rumore dalle immagini di Risonanza Magnetica (RM), migliorandone così la qualità.
I primi capitoli offrono una panoramica sui caratteri generali delle immagini RM, la loro
valenza in ambito medicale e le loro caratteristiche basilari.
Successivamente viene presentata un’analisi più tecnica e dettagliata del rumore che si può
presentare in questa tipologia di immagine con una successiva modellizzazione di esso in
termine di distribuzione e stima di parametri statistici.
La seconda parte del documento analizza e mette a confronto due tecniche di filtraggio:
quella di Perona-Malik basata sullo schema della diffusione anisotropa del calore, ed una nuova,
che prende le basi dalla precedente, ma che, come mostrato in modo sia quantitativo che
qualitativo nell’ultimo capitolo, opera in modo più preciso e performante rispetto al primo.
In ultima analisi viene fornita una descrizione tridimensionale del filtro proposto con le sue
diverse applicazioni.
5
1. Caratteristiche delle immagini di Risonanza Magnetica
1.1 – Introduzione
La risonanza magnetica è un processo per la realizzazione di immagini mediche prodotte
mediante l’utilizzo di campi magnetici e di segnali a radio frequenza (RF).
Le immagini ottenibili con questa tecnica generalmente servono a rappresentare strutture
anatomiche, presenza di malattie, e varie funzioni biologiche del corpo umano.
La differenza primaria da altre tecniche di produzione di immagini sta nel fatto che le
immagini RM possono rappresentare in modo selettivo caratteristiche di tessuti differenti.
Per questo il processo di produzione di immagini RM è più complesso di molti altri metodi di
produzione immagini.
1.2 – L’immagine RM
L’immagine RM è una rappresentazione di segnali RF che vengono emessi dai tessuti
durante il processo di acquisizione dell’immagine. La sorgente del segnale è lo stato di
magnetizzazione che viene prodotto all’interno del tessuto quando il paziente viene introdotto in
un forte campo magnetico.
Le caratteristiche specifiche del tessuto o del fluido che sono visibili nell’immagine,
dipendono da come è variato il campo magnetico durante il processo di acquisizione. La
creazione di un’immagine consiste in un ciclo di acquisizione che viene ripetuto diverse volte a
intervalli regolari. Durante ogni ciclo la magnetizzazione del tessuto viene sottoposta ad una
serie di cambiamenti.
Le caratteristiche che possono essere usate come sorgente del contrasto dell’immagine
sono di tre differenti categorie.
La prima, che è anche la più utilizzata, sfrutta le caratteristiche magnetiche dei tessuti. La
seconda invece sfrutta le caratteristiche del movimento dei fluidi (generalmente il sangue). La
terza indaga gli effetti spettroscopici dovuti alle strutture molecolari.
6
1.3 – Caratteristiche dei tessuti e tipi di immagini
1.3.1 – Immagini di densità protonica (PD)
La caratteristica più diretta che può essere rappresentata su un’immagine è la
concentrazione o la densità dei protoni. In un’immagine di densità protonica, la magnetizzazione
del tessuto, la conseguente intensità del segnale RF e la derivante luminosità dell’immagine,
sono determinate dal contenuto di protoni del tessuto. Tessuti contenenti un gran numero di
protoni produrranno segnali forti e risulteranno nell’immagine come zone luminose.
1.3.2 – Tempi di rilassamento magnetico – Immagini T1 e T2
Durante la procedura di produzione dell’immagine RM la magnetizzazione del tessuto
viene ripetuta ciclicamente venendo portata ad uno stato instabile e successivamente
permettendole di recuperare. Questo processo di recupero viene denominato rilassamento e varia
da un tipo di tessuto ad un altro. Il tempo di rilassamento può essere utilizzato per distinguere fra
tessuti normali e tessuti patologici.
Ogni tessuto è caratterizzato da due tempi di rilassamento: T1 e T2. Si possono produrre
delle immagini solo quando una di queste due caratteristiche è la fonte predominante di
contrasto.
1.4 - Movimento dei fluidi e tipi di immagini
1.4.1 – Flusso vascolare
Il processo di produzione immagini RM è capace di produrre immagini del flusso del
sangue senza l’uso di un mezzo contrastante. Nonostante gli effetti del flusso siano spesso
visibili in tutti i tipi di immagine, esso diventa la sorgente predominante di contrasto in immagini
prodotte specificatamente per esami vascolari o angiografici.
1.4.2 – Aspersione e diffusione
È possibile produrre immagini che mostrino sia aspersione che diffusione all’interno del
tessuto. Queste richiedono metodi specifici di rappresentazione dell’immagine.
7
1.5 – Variazione spettroscopica e chimica
La frequenza dei segnali RF emessa dal tessuto è affetta in una piccola parte dalla
dimensione e dalle caratteristiche delle molecole contenute nei nuclei magnetici. Queste
differenze nelle frequenze, cioè le variazioni chimiche, possono essere utilizzate per produrre
immagini. È anche la base della spettroscopia MR.
Figura 1.1 – Tipi di immagini RM
1.6 – Cosa si vede in un’immagine RM?
1.6.1 – Intensità del segnale a radiofrequenza
La prima cosa che si vede in un’immagine RM è l’intensità del segnale RF emesso dal
tessuto. Zone luminose nell’immagine corrispondono a tessuti che emettono un segnale molto
intenso. Le zone scure sono invece parti del tessuto da cui non vengono emessi segnali. Fra
8
questi due estremi vi è una serie di intensità intermedie del segnale corrispondenti a tonalità di
grigio che mostrano il contrasto o le differenze fra i vari tessuti.
1.6.2 – Magnetizzazione del tessuto
La condizione interna del tessuto che produce il segnale RF è la magnetizzazione. I tessuti
non sono magnetizzati tutti in ugual misura. Durante il processo di creazione dell’immagine, la
magnetizzazione del tessuto viene ciclata attraverso una serie di cambiamenti, ma i tessuti non
cambiano la loro magnetizzazione tutti alla stessa velocità. È questa differenza nella rapidità con
cui quest’ultima cambia, che rende possibile distinguere i tessuti e produce la maggior parte del
contrasto. L’intensità del segnale RF risultante e la luminosità dell’immagine ad uno specifico
“fermo immagine” sono determinati proprio dal livello di magnetizzazione. I tessuti che non
sono stati magnetizzati adeguatamente durante il processo non saranno visibili nell’immagine.
1.6.3 – Protoni (nuclei magnetici)
La magnetizzazione del tessuto, responsabile dell’emissione dei segnali RF, è
determinata dai protoni, i quali sono a tutti gli effetti piccoli magneti presenti nel tessuto. Questi
magneti risiedono nel nucleo di certi atomi che hanno un particolare proprietà, denominata
momento magnetico. Non tutte le sostanze chimiche hanno questa caratteristica.
L’unica sostanza presente nei tessuti umani che possiede un’adeguata concentrazione di
nuclei per produrre buone immagini RM è l’idrogeno. Quando il tessuto contenente idrogeno,
viene posto in un campo magnetico intenso, alcuni protoni si allineano nella stessa direzione del
campo magnetico. Questo allineamento produce la magnetizzazione del tessuto, la quale genera
il segnale RF.
9
Figura 1.2 – Cosa si vede in un’immagine RM
1.7 – Caratteristiche dei tessuti
1.7.1 – Immagini PD (densità protonica)
La PD ha un effetto molto diretto sulla magnetizzazione del tessuto, nel segnale RF
risultante e nella conseguente luminosità dell’immagine. Questo perché, come visto
precedentmente, la magnetizzazione è generata direttamente dai protoni.
1.7.2 – Immagini T1
Quando il protocollo per la creazione dell’immagine è impostato per produrre
un’immagine pesata sui valori T1, la magnetizzazione, (e quindi la luminosità dell’immagine) è
prodotta dai tessuti aventi bassi valori T1.
10
1.7.3 – Immagini T2
Quando il protocollo per la creazione dell’immagine è impostato per produrre
un’immagine pesata sui valori T2, la magnetizzazione, (e quindi la luminosità dell’immagine) è
prodotta dai tessuti aventi alti valori T2.
1.7.4 – Caratteristiche spaziali
La produzione di immagini RM è principalmente un processo di creazione immagini di
tipo tomografico, sebbene esistano alcune procedure, come l’angiografia, in cui su una singola
immagine vengono raffigurati completi volumi anatomici. Il protocollo per il processo di
acquisizione deve essere impostato per produrre le appropriate caratteristiche spaziali per una
specifica procedura clinica. Queste includono il numero di fette, l’orientamento delle fette, e la
struttura all’interno di ogni singola fetta.
Un esame tipico consiste nella scansione di almeno un insieme di fette contigue. Nella
maggior parte dei casi l’intero insieme viene acquisito simultaneamente.
Le fette possono essere orientate teoricamente lungo ogni piano attraverso il corpo del
paziente. La limitazione principale è che non possono essere compiute contemporaneamente
acquisizioni su piani diversi. Tuttavia è possibile ottenere dati 3-D da un volume esteso di
tessuto e ricostruire per mezzo di tecniche di post-processing fette di piani differenti.
1.8 – Controllo delle caratteristiche dell’immagine
Le quattro caratteristiche base della qualità di un’immagine sono:
1) La sensibilità di contrasto
2) Il dettaglio
3) Il rumore
4) Gli artefatti
Ognuna di esse è determinata da una combinazione dei parametri facenti parte del particolare
protocollo di acquisizione utilizzato. Non tutti i tipi di procedure cliniche richiedono immagini
con le stesse caratteristiche, quindi è necessario ottimizzare il processo per i requisiti clinici
specifici.
11
1.8.1 – Sensibilità al contrasto
La sensibilità al contrasto è l’abilità del processo di produzione dell’immagine di creare
un’immagine a partire da oggetti o tessuti che hanno differenze fisiche relativamente piccole.
Sebbene i sistemi di produzione immagini RM abbiano un’alta sensibilità al contrasto
rispetto alle altre tecniche di acquisizione immagini, deve essere comunque ottimizzata per ogni
procedura clinica.
1.8.2 – Dettaglio
Una caratteristica discriminante di ogni modalità di acquisizione immagini è la sua abilità
di rappresentare piccoli oggetti e strutture all’interno del corpo. La visibilità dei dettagli è
limitata dalla sfocatura che si presenta durante il processo di produzione dell’immagine.
L’effetto di sfocatura, che è presente seppur in gradi diversi in tutti i metodi di acquisizione, è
maggiore nel processo di creazione immagini RM che nelle radiografie.
1.8.3 – Rumore
Il rumore visuale è uno degli aspetti più importanti della RM. La presenza di rumore in
un’immagine ne riduce qualità, specialmente limitando la visibilità di oggetti poco contrastati e
le differenze fra i vari tessuti.
La maggior parte del rumore delle immagini RM è generato da una forma di energia RF
casuale catturata dal corpo del paziente. Durante l’acquisizione dell’immagine è possibile
abbassare il livello di rumore a discapito di altre caratteristiche.
1.8.4 – Artefatti
Gli artefatti sono oggetti indesiderati, come striature o punti, che appaiono nell’immagine
seppur non rappresentino la struttura anatomica. Generalmente sono prodotti da interazioni fra il
corpo del paziente o funzioni di esso (come il movimento) con il processo di produzione
dell’immagine.
Esistono una serie di tecniche utilizzabili per ridurre la presenza di artefatti.
12
1.9 – Tempo di acquisizione dell’immagine
Quando si fanno considerazioni riguardanti la qualità dell’immagine RM, deve essere
prestata molta attenzione anche al tempo richiesto dal processo di acquisizione. Generalmente,
allungando questo tempo, alcuni aspetti della qualità dell’immagine, come il dettaglio e il
rumore, possono essere migliorati.
13
2. Il rumore nelle immagini RM
Verranno ora discussi brevemente i principali tipi e le cause di rumore che si può
riscontrare in un’immagine RM.
•
•
•
•
Rumore termico
Perdita di campioni
Rumore generato dai parametri del sistema di produzione dell’immagine
Rumore strutturato
2.1 – Rumore termico
Una volta che il segnale RM viene generato, esso viene processato dalla catena del
ricevitore. Ogni componente delle catena è una fonte di rumore. Il rumore generato dalla bobina
del ricevitore è il primo che deve essere considerato. In ogni conduttore/resistore, il rumore
termico è prodotto dal movimento stocastico degli elettroni liberi. Questi elettroni liberi
collidono con gli atomi, dando come risultato uno scambio d’energia. Il movimento degli
elettroni, e quindi il numero di collisioni, dipende dalla temperatura della bobina. La potenza del
rumore termico risultante V 2 , derivante dalla resistenza della bobina, è dato da:
V 2 = 4kbT cΔνRc
(1.1)
con Tc che rappresenta la temperatura della bobina, Δν la larghezza di banda delle frequenze del
ricevitore, ed Rc la resistenza della bobina. Predizioni dell’SNR non sono facili in quanto il
calcolo della resistenza della bobina non può essere effettuata con accuratezza. Ma ad esempio,
per una resistenza molto lunga, dritta e cilindrica Rc, esso è dato da:
Rc =
l μ r μ0ωρ (Tc )
2
p
(1.2)
con l, p, μr, e ρ rispettivamente la lunghezza, circonferenza, permeabilità e resistività del
conduttore.
14
La densità spettrale del rumore termico è data da:
⎛→⎞
S n ⎜ k ⎟ = 2kbTc Rc
⎝ ⎠
(1.3)
Poiché la densità spettrale è uniforme, il rumore termico è definito spesso rumore bianco
ed è caratterizzato da una densità di probabilità di tipo Gaussiano.
2.2 – Perdita di campioni
Una perdita di precisione nell’acquisizione dell’immagine può essere dovuta anche alla
resistività degli oggetti da raffigurare nell’immagine. Queste perdite sono associate, quando il
segnale viene ricevuto, all’induzione del rumore dal campione alla bobina ricevente, quindi
riducendo la precisione della scansione. Sono stati fatti vari esperimenti da Hoult e Lauterbur [3]
sul rumore derivante dal corpo umano. Ogni bobina ha una capacitanza distribuita e il corpo
umano, quando viene posto dentro la bobina, agisce come un mezzo dielettrico. L’effettiva
resistenza Rc determina la perdita dielettrica risultante. Inoltre, la resistività dei tessuti umani
causa una riduzione della penetrazione del campo RF influente ai fini dell’acquisizione
dell’immagine. Il campo RF viene effettivamente riparato dalle correnti causate dall’induzione
magnetica all’interno del livello superficiale del campione. Questo viene definito effetto
profondità della pelle. Il rumore termico risultante ha una resistenza associata Rm.
In definitiva, porre l’oggetto dentro la bobina risulta in un aumento dell’impedenza in
serie data da:
Rtot = Rc + Re + Rm
(1.4)
La cui potenza è
V 2 = 4kbT cΔν ( Rc + Re + Rm )
(1.5)
e la cui distribuzione continua ad essere di tipo Gaussiano.
15
2.3 – Rumore generato dai parametri del sistema
Oltre che dalle caratteristiche del sistema RM, la varianza del rumore viene influenzata
anche dai parametri utilizzati per produrre l’immagine. Questi parametri includono il numero di
campioni nelle direzioni x ed y (Nx e Ny), il numero di medie effettuate (Nav), il campo di vista
nelle direzioni x ed y (FOVx e FOVy), e l’intervallo di campionamento (Δt). Le relazioni di questi
parametri alla varianza del rumore presente nell’immagine sono state discusse nel loro lavoro da
Parker e Gullberg [4], di cui vengono presentati solo i risultati principali.
La varianza del rumore viene derivata dall’acquisizione di un’immagine contenente solo
rumore. La ricostruzione di Fourier dei dati grezzi porta a:
in ( x, y ) =
N x −1 N y −1
⎡
⎛ xk x
⎢⎣
⎝
∑ ∑ n(k Δt + k Δt )exp⎢− 2πi⎜⎜ N
k x =0 k y =0
x
y
+
x
yk y ⎞⎤
⎟⎥ Δf x Δf y
N y ⎟⎠⎥⎦
(1.6)
con Δt rappresentante il tempo che intercorre fra due passi di codifica di fase e (kx,ky) a denotare
le coordinate del K-spazio. Δfx e Δfy sono gli intervalli di campionamento del K-spazio:
Δf x = γGx Δt e Δf y = γG yTy , dove , dove γ è il rapporto giro-magnetico e Gx e Gy l’intensità del
gradiente magnetico nelle rispettive direzioni. Ty indica l’intervallo di tempo in cui è stato
attivato il gradiente di codifica di fase. La varianza dell’immagine ricostruita sarà:
σ [in ( x, y )] =
2
Δf x2 Δf y2
N x −1 N y −1 N x −1 N y −1
N av
k x =0 k y =0 k 'x =0k ' y =0
∑ ∑ ∑ ∑ E[n(k Δt + k ΔT )]
x
y
⎡
⎛ x(k x − k ' x ) ⎞ ⎛ y (k y − k ' y ) ⎞⎤
⎟⎥
⎟⎟ + ⎜
n(k ' x Δt + k ' y ΔT )exp ⎢− 2πi⎜⎜
⎟
⎜
Nx
Ny
⎢⎣
⎝
⎠ ⎝
⎠⎥⎦
(1.7)
Con gli intervalli di campionamento utilizzati per produrre immagini RM, i quali sono
dell’ordine dei microsecondi, la tensione del rumore risulta essere del tutto incorrelata. Questo è
vero perché la maggior parte dell’energia del rumore termico si trova nelle frequenze
dell’infrarosso (> 1010 Hz). Da questa osservazione, si può passare dalla precedente equazione a:
σ [in ]( x, y ) = K
2
NxN y V 2
N av FOVx2 FOVy2 Δt
(1.8)
dove la potenza del rumore 〈V2〉 è data dall’equazione (1.5), e K è un fattore dipendente dalle
caratteristiche del filtro utilizzato.
16
2.4 – Rumore strutturato
Il rumore strutturato è definito come contributi di segnale che hanno una natura non
casuale e che disturbano solo particolari zone dell’immagine. Esempio di rumore strutturato sono
il ghosting, il ringing, gli artefatti causati da DC e distribuzioni non uniformi del segnale. Le
cause del rumore strutturato sono numerose, e hanno origine nel malfunzionamento dei
macchinari, come le variazioni graduali dell’induzione magnetica o le interferenze esterne, come
ad esempio la ricezione di radiofrequenze (RF). Generalmente, prestando attenzione alla
progettazione e alla messa a punto delle macchine, la maggior parte delle fonti di questo tipo di
rumore possono essere eliminate o minimizzate. Tuttavia, per quelle che rimangono è complicato
fare una stima dell’SNR.
Interferenze di RF esterne possono dare origine sia a rumore casuale che strutturato
nell’immagine RM.
Per diminuire l’effetto del rumore generato da RF si cerca di dividere la circuiteria
trasmettente da quella ricevente per prevenire le interferenze. Altre fonti di interferenza RF
possono essere stazioni radio, o la vicinanza di apparecchiature elettriche, come, ad esempio,
computers.
17
3. Stima del rumore
La stima della varianza del rumore (NV) è importante per diverse ragioni. In primo
luogo, essa fornisce una misura della qualità dell’immagine in termini di dettaglio
dell’immagine, in quanto piccole variazioni del segnale tendono a perdersi fra una grande
quantità di variazioni casuali dovute all’aumento della varianza. Inoltre, la conoscenza della NV
può essere utile ad esempio a testare i risultati del sistema di acquisizione immagini RM. Infine il
valore di NV è utilizzato spesso come input per le tecniche di elaborazione delle immagini.
Spesso, i metodi proposti per la stima del rumore di un’immagine prendono come assunto
che la sua distribuzione sia di tipo Gaussiano o di Poisson. Ma nelle immagini di magnitudine
RM la distribuzione del rumore sui dati non è più di tipo Gaussiano, bensì Riciano.
3.1 – PDF delle immagini RM di magnitudine
È pratica comune lavorare con immagini di magnitudine invece che con dati reali ed
immaginari poiché i dati di magnitudine sono immuni agli effetti delle variazioni di fase
incidentali dovuti alla non omogeneità dell’angolo RF, al ritardo del sistema, alla finestra di
campionamento non centrata, etc.
La costruzione di un’immagine di magnitudine è effettuata mediante la seguente
trasformazione pixel a pixel:
M i = Ri2 + I i2 ,
(3.1)
con Mi che rappresenta l’i-esimo punto dell’immagine di magnitudine. Poiché l’estrazione della
radice è una trasformazione non lineare, la PDF dei dati di magnitudine non sarà più di tipo
Gaussiano.
18
3.2 – La distribuzione di Rice
La PDF dei dati di magnitudine si può calcolare trasformando la PDF composta dei dati reali
e immaginari in coordinate polari:
p ( M , ϕ | A, φ , σ ) =
−
1
2πσ
( A cos φ −M cos ϑ )2
2σ 2
e
2
−
( A sin φ − M sin ϑ )2 M
e
2σ 2
(3.2)
dove M è il Jacobiano della trasformazione. L’integrazione rispetto a ϕ porta a:
pM ( M | A, φ , σ ) =
2π
1
2πσ 2
∫e
−
A2 + M 2 −2 AM cos(ϕ −φ )
2σ 2
Mdϕ
(3.3)
0
Poiché l’integrazione avviene su in cerchio completo del coseno, si può scrivere:
pM ( M | A, φ , σ ) =
−
M
2πσ 2
e
A2 + M 2 2π
AM
− 2 cos ϕ
σ
2σ 2
∫e
Mdϕ
(3.4)
0
L’integrale su ϕ è collegato alla rappresentazione integrale della funzione modificata di Bessel
del primo tipo di ordine 0:
1
I0 ( z) =
2π
2π
∫e
z cos ϕ
dϕ
(3.5)
0
Questo ci porta alla PDF che caratterizza i dati di magnitudine:
pM ( M | A, σ ) =
M
σ
2
−
e
M 2 + A2
2σ 2
⎛ AM ⎞
I 0 ⎜ 2 ⎟ε ( M )
⎝ σ ⎠
(3.6)
La funzione gradino unitario di Heaviside ε(.) viene usata per indicare che l’espressione per la
PDF di M è valida solo per valori non negativi di M. La distribuzione viene chiamata
distribuzione di Rice [5,6].
La forma della distribuzione di Rice dipende dall’SNR, che è definito dalla quantità A/σ.
Per bassi valori dell’SNR, la distribuzione di Rice tende a comportarsi come una distribuzione di
Rayleigh, che dipende solo dalla varianza del rumore σ2:
19
pM ( M | σ ) =
M
σ2
−
e
M2
2σ 2
ε (M )
(3.7)
La distribuzione di Rayleigh caratterizza la distribuzione delle intensità casuali dello sfondo
privo di segnale come l’aria.
Per alti SNR, la distribuzione di Rice si comporta come una distribuzione Gaussiana
Figura 3.1 – Funzione di densità di probabilità Riciana per diversi valori dell’SNR
3.3 – Stima del rumore
Nelle immagini RM, la NV dell’immagine viene generalmente stimata da una singola
immagine di magnitudine. Questo può essere fatto direttamente da un’estesa regione di segnale
uniforme o da regioni prive di segnale [5, 7]. Sebbene queste tecniche forniscano delle stime
utili, grandi regioni omogenee sono spesso difficili da individuare, e quindi, solo una piccola
porzione di dati sono disponibili per effettuare la stima. Oltretutto, i punti dello sfondo spesso
soffrono di variazione sistematica dell’intensità.
Per questo motivo sono stati studiati anche altri metodi basati sulla doppia acquisizione
della stessa immagine. Con questa tecnica, la quantità di rumore viene calcolata, ad esempio,
sottraendo due acquisizioni dello stesso oggetto e calcolando la deviazione standard dei pixel
dell’immagine risultante [8, 9]. Il primo metodo ha lo svantaggio di essere sensibile a rumore di
tipo strutturato come ghosting, ringing e artefatti causati da DC. Ciononostante il secondo
20
metodo richiede la perfetta registrazione geometrica dell’immagine. Inoltre vi è un altro
problema: a causa di piccoli errori di temporizzazione, i dati grezzi di un’acquisizione possono
risultare traslati rispetto a quelli dell’altra. Dopo la trasformazione nel dominio di Fourier, questo
da origine a variazioni di fase aggiuntive dei dati complessi compromettendo la validità della
stima del NV.
3.4 – Stima dei parametri del rumore
3.4.1 – Limite Minimo della Varianza
Supponiamo che la PDF di una variabile x è determinata da un parametro θ.
Consideriamo uno stimatore senza bias t, di una funzione di θ, che chiamiamo τ(θ). Allora il
limite minimo della varianza di t è dato da:
Var = −
{τ ' (θ )}2
⎛ ∂ 2 log L ⎞
⎟⎟
E ⎜⎜
2
⎝ ∂θ ⎠
(3.8)
Questa è la disuguaglianza fondamentale per la varianza di uno stimatore, detta anche Limite
Minimo della Varianza (MVB) o Limite Inferiore di Cramèr-Rao (CRLB).
3.4.2 – Stima della Massima Probabilità
Supponiamo di avere un numero N di osservazioni indipendenti dalla stessa distribuzione.
La PDF composta delle osservazioni, trattata come una funzione di un singolo parametro non
conosciuto θ, viene chiamata Funzione di Probabilità (LF) del campione, e si scrive:
L( x | θ ) = p( x1 | θ ) p( x2 | θ )... p( x N | θ )
(3.9)
Il Principio di Massima Probabilità afferma che lo stimatore di θ, indicato come θˆ , dovrebbe
rendere la LF il più grande possibile in rispetto dell’intervallo ammissibile di θ. Cioè, θˆ
dovrebbe essere scelto in modo che, per ogni valore ammissibile di θ
L( x | θˆ) ≥ L( x | θ )
(3.10)
21
Se ciò avviene, θˆ viene chiamato stimatore di Massima Probabilità (ML).
Per ciò che riguarda l’accuratezza e la precisione dello stimatore ML, si sa che, sotto
condizioni molto generali, lo stimatore ML è consistente ed è anche il più preciso
asintoticamente.
•
Consistenza: Sotto condizioni generali, gli stimatori ML sono consistenti:
{(
)}
∀ε ∈ ℜ + | Pr θˆ − θ < ε = 1
if
N →∞
(3.11)
con ℜ+ a denotare l’insieme dei numero positivi reali.
•
Efficienza asintotica: Sotto condizioni non troppo restrittive, la matrice di varianzacovarianza dello stimatore θˆ è asintoticamente uguale al CRLB. Quindi, se il numero di
punti aumenta, la distribuzione dello stimatore ML si avvicina alla distribuzione normale
con media θ e varianza uguale al Limite Minimo della Varianza (MVB), che è il limite
inferiore sulla varianza di qualsiasi stimatore senza bias. Inoltre, si sa che se esiste uno
stimatore senza bias che ha l’MVB come varianza, esso è lo stimatore ML.
Si assume che i dati disponibili sono governati dalla distribuzione di Rice.
Il valore di σ2 può essere stimato in vari modi differenti. Generalmente, σ2 viene stimato dai
punti dello sfondo, dove si assume che il segnale deterministico sia zero, sfruttando il momento
secondo della PDF, si ha:
σ̂ 2 =
1
2N
N
∑M
i =1
2
i
(3.12)
dove la magnitudine al quadrato di N punti {Mi2} sono mediati nella regione nella quale ci si
aspetta che non ci sia segnale, ad esempio, dove A=0. In queste zone, sappiamo che i dati di
magnitudine sono regolati dalla distribuzione di Rayleigh.
Si può mostrare facilmente che il precedente è uno stimatore senza bias di σ2 con
varianza uguale a σ4/N.
22
Si potrebbe essere interessati nel valore della deviazione standard σ, ad esempio per
stimare il vero SNR: A/σ. Semplicemente estraendo la radice quadrata dell’estimatore ML di σ2
si ottiene lo stimatore di σ:
σˆ ML =
1
2N
N
∑M
i =1
2
i
(3.13)
Lo stimatore è identico allo stimatore ML di σ, dal momento che l’operazione di radice quadrata
ha un inverso con valore unico. La sua varianza è approssimativamente:
Var (σˆ ML ) ≅
σ2
4N
(3.14)
che eguaglia il CRLB. Però lo stimatore σML non è esente da bias, a causa della radice quadrata.
Il suo valore atteso sarà approssimativamente uguale a:
1 ⎞
⎛
E [σˆ ML ] ≅ σ ⎜1 −
⎟
⎝ 8K ⎠
(3.15)
Questo significa che è possibile applicare una correzione del bias. Questo tuttavia comporterà un
aumento della varianza dello stimatore.
23
4. Filtro di Perona-Malik
L’algoritmo di filtraggio del rumore dalle immagini che verrà esposto fu proposto da
Pietro Perona e Jithendra Malik inizialmente per risolvere un problema diverso da quello del
filtraggio del rumore, ovvero quello della descrizione multiscala delle immagini, problema
divenuto molto importante per lo studio della visione artificiale [11].
L’idea di partenza è piuttosto semplice: si tratta includere l’immagine originale in una
serie di immagini derivate I(x, y, t) ottenute convolvendo l’immagine iniziale I0(x, y) con un
kernel gaussiano G(x, y; t) di varianza t:
I ( x , y , t ) = I 0 ( x , y ) ∗ G (c , y; t )
(4.1)
Valori più grandi di t, il parametro di scalatura, corrispondono a immagini di risoluzione
maggiore ma meno dettagliata. Come indicato da Koenderink [12] e Kummel [13], questa
famiglia di immagini monoparametro può essere vista come soluzione dell’equazione
conduzione/diffusione del calore:
I t = ΔI = ( I xx + I yy )
(4.2)
con condizione iniziale I(x, y, 0) = I0(x, y), l’immagine originale.
Koenderink motiva la formulazione dell’equazione di diffusione stabilendo due criteri:
1. Causalità: Ogni caratteristica a un livello di risoluzione meno dettagliato deve avere una
“causa” (non necessariamente unica) a un livello più fine di risoluzione, sebbene non
debba essere necessariamente vero l’opposto. In altre parole, non devono essere generati
dettagli spuri quando vengono generate immagini con un livello di dettaglio inferiore.
2. Omogeneità e Isotropia: il blurring deve essere spazio-invariante.
Questi criteri portano automaticamente alla formulazione dell’equazione di diffusione. Si può
notare come il secondo criterio viene stabilito solo per semplicità. Infatti per rispettare il primo
criterio non è necessario utilizzare una maschera di blurring gaussiana, sebbene sia la scelta più
semplice. Hummel ha fatto l’importante osservazione che una versione del principio del
24
massimo ricavata dalla teoria delle equazioni differenziali paraboliche è equivalente al principio
di causalità.
In seguito a queste osservazioni è stata proposta la tecnica che verrà esposta nei seguenti
paragrafi.
4.1 – Diffusione anisotropa
Poiché l’utilizzo di blurring di tipo gaussiano causa la distorsione spaziale dell’immagine, in
quanto non rispetta i contorni naturali degli oggetti, Perona e Malik hanno enunciato tre criteri da
sostituire a quelli descritti in precedenza che le descrizioni multiscala “significative” delle
immagini devono rispettare:
1. Causalità: Come indicato da Witkin e Koenderink, una rappresentazione scalata deve
avere la proprietà che nessun dettaglio spurio deve essere generato passando da un livello
più fine ad uno meno dettagliato.
2. Localizzazione: Ad ogni risoluzione, i confini delle regioni devono essere netti e
coincidere con i confini significativi a quella risoluzione.
3. Smoothing discriminante: A tutti i livelli di scala, lo smoothing interno alle regioni deve
avvenire preferenzialmente allo smoothing attraverso regioni distinte dell’immagine.
Per raggiungere questi obbiettivi possono essere apportate delle semplici modifiche al
paradigma di scalatura mediante diffusione lineare. Nello schema dell’equazione di diffusione, il
coefficiente di diffusione c viene assunto essere costante indipendentemente dalla locazione
spaziale. Non c’è un motivo particolare per cui deve essere in questo modo. La scelta opportuna
di un c(x, y, t) permetterà di soddisfare il secondo e il terzo criterio esposti precedentemente.
Inoltre questo può essere fatto senza ledere il criterio di causalità.
Consideriamo l’equazione di diffusione anisotropa
I t = div(c( x, y, t )∇I ) = c( x, y, t )ΔI + ∇c ⋅ ∇I
(4.3)
dove con div viene indicato l’operatore di divergenza, e con ∇ e Δ rispettivamente gli operatori
gradiente e Laplaciano, rispetto alle variabili dello spazio. Questa si riduce all’equazione di
diffusione isotropa del calore It = cΔI se c(x, y, t) è una costante. Supponiamo che all’istante (o
fattore di scala) t, conosciamo le locazioni dei confini delle regioni appropriati a quel livello di
scala. Si vorrebbe favorire lo smoothing all’interno di una regione piuttosto che attraverso i
confini. Questo può essere ottenuto settando i coefficienti di conduzione a 1 all’interno di ogni
regione e a 0 lungo i confini. L’azione di blurring avverrà separatamente in ogni regione senza
interazioni fra le regioni separate. I confini delle regioni rimarrebbero netti.
25
Ovviamente, non si conoscono in anticipo i confini delle regioni ad ogni livello di scala.
Ciò che può essere calcolato è una stima della locazione dei confini (bordi) appropriati a quel
livello di scala.
Sia E(x, y, t) questa stima: una funzione vettoriale definita sull’immagine che idealmente
dovrebbe avere queste proprietà:
1. E(x, y, t) = 0 all’interno di ogni regione.
2. E(x, y, t) = Ke(x, y, t) lungo i punti facenti parte del bordo, dove e è un vettore unitario
normale al bordo in quel punto, e K è il contrasto locale (differenza nell’intensità
dell’immagine sulla sinistra e sulla destra) del bordo.
Se è disponibile una stima di E(x, y, t), allora il coefficiente di conduzione c(x, y, t) può
essere scelto come funzione di c = g(||E||) del modulo di E. Secondo il metodo precedentemente
indicato, g(⋅) deve essere una funzione non-negativa monotonicamente decrescente in cui
g(0)=1. In questo modo il processo di diffusione avverrà principalmente all’interno delle regioni
e non avrà effetto sui confini delle regioni stesse, dove il modulo di E è grande.
È intuitivo che il successo del processo di diffusione nel rispettare i tre obbiettivi enunciati
dipende in gran misura su quanto è accurata la stima di E. Il modo più semplice di fare questa
previsione si basa sul gradiente della funzione di luminosità, E(x, y,t) = ∇I(x, y, t), la quale però,
a seconda dell’applicazione, dà dei risultati non accettabili (come nel caso di immagini RM in
cui i dettagli sono estremamente importanti).
4.2 – Proprietà della diffusione anisotropa
Richiamando un risultato della teoria delle equazioni alle differenze parziali, il principio
del massimo, si dimostra che la diffusione anisotropa soddisfa il criterio di causalità. Prima si è
mostrato che una diffusione per la quale viene scelto il coefficiente di conduzione localmente
tale che sia una funzione del modulo del gradiente della funzione di luminosità,
c ( x , y , t ) = g ( ∇I ( x , y , t )
)
(4.4)
non solo preserva, ma anche mette in risalto, la luminosità dei bordi, nel caso in cui la funzione
g(⋅) venga scelta in modo appropriato.
26
4.3 – Il Principio del Massimo
Il criterio di causalità richiede che nessuna nuova caratteristica spaziale venga introdotta
nell’immagine passando da un livello di scala più fine a uno più grossolano. Etichettando le
“caratteristiche” nell’immagine con una variazione della funzione di luminosità I(x, y, t) per
valori differenti del parametro di scala t, allora la nascita di nuove variazioni implicherà la
creazione o di un massimo o di un minimo che dovrà appartenere o all’interno o al piano più alto
I(x, y, tf) dello spazio di scala (tf è la scala meno dettagliata dello spazio di scala). Quindi il
criterio di causalità può essere stabilito mostrando che tutti i massimi e i minimi nello spazio di
scala appartengono all’immagini originale.
L’equazione di diffusione è un caso speciale di una classe più generale di equazioni
ellittiche che soddisfano un principio del massimo. Il principio afferma che tutti i massimi della
soluzione dell’equazione nello spazio e nel tempo appartengono alla condizione iniziale
(l’immagine originale), e ai confini del dominio di interesse a condizione che il coefficiente di
conduzione sia positivo [14]. In questo caso, poiché si utilizzano condizioni di confine
adiabatiche, il principio del massimo è anche più forte: i massimi appartengono soltanto
all’immagine originale.
4.4 – Esaltazione dei bordi
Con il filtraggio passa-basso convenzionale e la diffusione lineare il prezzo pagato sia per
l’eliminazione del rumore che per ottenere la scalatura, è l’offuscamento dei bordi. Questo rende
difficile la loro individuazione e localizzazione.
L’esaltazione dei bordi e la ricostruzione di immagini offuscate può essere ottenuta
tramite filtraggio passa-alto o effettuando l’equazione di diffusione a ritroso nel tempo. Tuttavia
in questo modo si da origine a schemi computazionali numericamente instabili a meno che il
problema non venga appropriatamente vincolato o riformulato.
Si mostrerà che se il coefficiente di conduzione è scelto in modo da essere un’appropriata
funzione del gradiente dell’immagine, si può fare in modo che la diffusione anisotropa metta in
risalto i bordi andando avanti nel tempo, potendo godere della stabilità della diffusione che è
garantita dal principio del massimo.
Verrà modellizzato un bordo come una funzione gradino convoluta con un Gaussiano.
Senza perdere generalità, assumiamo che il bordo sia allineato con l’asse delle y.
L’espressione per l’operatore divergenza si semplifica in
div(c( x, y, t )∇I ) =
∂
( c ( x, y , t ) I x )
∂x
(4.5)
27
Scegliamo c in modo che sia una funzione del gradiente di I: c(x, y, t) = g(Ix(x, y, t)).
Sia φ(Ix) = g(Ix) ⋅ Ix una misura del flusso c ⋅ Ix.
Allora la versione 1-D dell’equazione di diffusione diventa:
It =
∂
φ ( I x ) = φ ' ( I x ) ⋅ I xx
∂x
(4.6)
Siamo interessati nell’osservare le variazioni nel tempo della pendenza del bordo: ∂ / ∂t ( I x ) . Se
c(⋅) > 0 allora la funzione I(⋅) è continua, e l’ordine di differenziazione può essere invertito:
∂
∂
∂ ⎛∂
⎞
( I x ) = ( I t ) = ⎜ φ ( I x ) ⎟ = φ ' '⋅I xx2 + φ '⋅I xx
∂t
∂x
∂x ⎝ ∂x
⎠
(4.7)
Supponiamo che il bordo è orientato in modo tale che Ix > 0. Nel punto di inflessione I xx = 0 , e
Ixxx << 0 dal momento che il punto di inflessione corrisponde al punto con pendenza massima.
Quindi nel vicinato del punto di inflessione, ∂ / ∂t ( I x ) ha segno opposto a φ’(Ix). Se φ’(Ix) > 0 la
pendenza del bordo diminuirà nel tempo, contrariamente, se φ’(Ix) < 0 la pendenza aumenterà
nel tempo.
Da notare che questo aumento nella pendenza non può essere causato da una scalatura del
bordo, perché ciò violerebbe il principio del massimo. Quindi il bordo viene esaltato. Esistono
(
diverse possibili scelte per assegnare φ(⋅), ad esempio g ( I x ) = C / 1 + (I x / K )
1+α
) con α > 0.
Quindi esiste un certo valore di soglia collegato a K ed ad α, al di sotto del quale φ(⋅) è
monotonicamente crescente e al di sopra del quale è monotonicamente decrescente, dando i
risultati desiderabili di mediare le piccole discontinuità e evidenziare i bordi. Nelle vicinanze
delle regione più ripide di un bordo la diffusione può considerarsi essere effettuata all’indietro
poiché φ’(⋅) è negativo.
Questo può generare preoccupazione poiché sappiamo che la diffusione a ritroso con
coefficienti costanti è instabile e amplifica ondulazioni che causano rumore. Nel nostro caso
questa preoccupazione è superflua in quanto il principio del massimo ci garantisce che queste
ondulazioni non si manifestano. Questo si verifica empiricamente osservando che le aree in cui
φ’(⋅) < 0 si stringono rapidamente, mantenendo stabile il processo.
28
4.5 – Risultati sperimentali
Le idee discusse finora riguardo la diffusione anisotropa sono state testate usando un
semplice schema numerico che verrà ora descritto.
La precedente equazione può essere discretizzata su una maschera quadrata, associando i
valori di intensità luminosa ai vertici della maschera e i coefficienti di conduzione agli archi.
Figura 4.1 – Schema computazionale per il filtro di Perona Malik
Una discretizzazione sul 4-vicinato dell’operatore Laplaciano può essere utilizzata:
I it,+j1 = I it, j + λ [cN ⋅ ∇ N I + cS ⋅ ∇ S I + cE ⋅ ∇ E I + cO ⋅ ∇ O I ]
(4.8)
in cui λ è un valore che, ai fini della stabilità del modello, deve essere compreso fra 0 e ¼, N, S,
E e O sono i pedici per indicare Nord, Sud, Est ed Ovest.
29
Inoltre:
∇ N I i , j = I i−1, j − I i , j
(4.9)
∇ S I i , j = I i+1, j − I i , j
(4.9)
∇ E I i , j = I i , j +1 − I i , j
(4.9)
∇ O I i , j = I i , j −1 − I i , j
(4.9)
I coefficienti di conduzione sono aggiornati ad ogni iterazione come funzione del gradiente
dell’intensità luminosa:
(
= g ( (∇I )
= g ( (∇I )
= g ( (∇I )
cNt i , j = g (∇I )i+(1 / 2 ), j
t
cSt i , j
cEt i , j
cOt i , j
t
i − (1 / 2 ), j
t
i , j + (1 / 2 )
t
i , j − (1 / 2 )
)
)
)
)
(4.10)
(4.10)
(4.10)
(4.10)
Il valore del gradiente può essere calcolato su differenti strutture del vicinato ottenendo diversi
compromessi fra accuratezza e località. La scelta più semplice consiste nell’approssimare la
norma del gradiente su ogni arco con il valore assoluto della sua proiezione lungo la direzione
dell’arco.
(
= g ((∇I )
= g ((∇I )
= g ((∇I )
cNt i , j = g (∇I )i + (1 / 2 ), j
cSt i , j
cEt i , j
cOt i , j
t
t
i −(1 / 2 ), j
t
i , j + (1 / 2 )
t
i , j − (1 / 2 )
)
)
)
)
(4.10)
(4.11)
(4.10)
(4.10)
Questo schema non è una discretizzazione esatta dell’equazione di diffusione descritta, ma di
una simile nella quale il tensore di conduzione è diagonale ai valori di g(|Ix|) e g(|∇I|) invece che
a g(|∇I|). Questo schema di discretizzazione preserva la proprietà dell’equazione continua in cui
la quantità totale di luminosità nell’immagine viene preservata.
30
È possibile verificare che, qualunque sia la scelta per l’approssimazione del gradiente, lo
schema discretizzato soddisferà sempre il principio del massimo (e del minimo) a patto che la
funzione g sia compresa fra 0 ed 1.
Questo può essere difatti dimostrato a partire dal fatto che λ ∈ [0,1 / 4] e c ∈ [0,1] , e definendo
{
}
{
( I M )ti , j = max (I , I N , I S , I E , I O )i , j , e ( I m )ti , j = min (I , I N , I S , I E , I O )i , j
t
t
} come massimo e minimo
dei vicini di Ii, j all’iterazione t. Si può dimostrare che
( I m )ti , j ≤ I it,+j1 ≤ (I M )i , j
t
(4.12)
cioè, nessun minimo o massimo (locale) è ammissibile all’interno dello spazio di scala
discretizzato. Infatti:
I it,+j1 = I it, j + λ [c N ⋅ ∇ N I + c S ⋅ ∇ S I + c E ⋅ ∇ E I + cO ⋅ ∇ O I ]i , j
t
(
)
= I it, j 1 − λ (c N + cS + c E + cO )i , j + λ (c N ⋅ I N + c S ⋅ I S + c E ⋅ I E + cO ⋅ I O )i , j
t
(
t
)
≤ I M t 1 − λ (c N + c S + c E + cO )i , j + λI M t (c N + cS + c E + cO )i , j
i, j
t
t
(4.13)
i, j
= IMt
i, j
e in modo simile:
(
)
I it,+j1 ≥ I mt 1 − λ (cN + cS + cE + cO )i , j + λI mt (cN + cS + cE + cO )i , j
i, j
t
t
i, j
= I mt
(4.14)
i, j
Si possono utilizzare diverse funzioni per g(⋅) che danno risultati percettivamente simili. Due
scelte possibili sono:
g (∇I ) = e
(− ( ∇I / K ) )
2
(4.15)
e:
g (∇I ) =
1
⎛ ∇I ⎞
⎟
1 + ⎜⎜
⎟
⎝ k ⎠
2
(4.16)
31
Le funzioni precedenti seguono qualitativamente quest’andamento:
Figura 4.2 - Andamento delle equazione (4.15)
Figura 4.3 - Andamento delle equazione (4.16)
I risultati generati da queste due funzioni sono differenti: la prima privilegia bordi con
contrasti alti rispetto a quelli con contrasti bassi, il secondo privilegia regioni estese rispetto a
quelle più piccole.
La costante K può essere fissata a mano ad un valore predefinito, o usando un appropriato
stimatore di rumore (vedi prossimo capitolo).
32
5. Filtro Proposto
5.1 – Svantaggi del filtro di Perona e Malik
Un filtro che elimini in modo efficace il rumore deve necessariamente tenere in conto le
seguenti caratteristiche dell’immagine:
•
Zone omogenee dell’immagine: le zone in cui l’azione di filtraggio deve essere forte in
quanto in queste parti dell’immagine non sono presenti dettagli
•
Zone contenenti edges: In queste zone l’azione del filtro deve essere nulla o quantomeno
blanda, in quanto queste sono le parti dell’immagine contenenti i dettagli che devono
essere preservati.
Figura 5.1 - Zone in cui il filtro deve agire differentemente
33
Il filtro di Perona e Malik precedentemente analizzato tiene in conto in modo
soddisfacente il primo tipo di caratteristica, in quanto, ad ogni passo di iterazione, per via della
particolare strutturazione delle funzioni di conduzione, l’azione di mediazione dei livello di
grigio è forte dove il gradiente è piccolo (zone omogenee).
Il secondo punto invece, viene affrontato in modo troppo approssimativo principalmente per
due motivi:
1. Non viene fatta nessuna considerazione sulla direzione dell’edge, infatti, per come è
strutturato il filtro, viene supposto che tutti i contorni siano esclusivamente verticali o
esclusivamente orizzontali, quando invece sarebbe opportuno che il filtro fosse più forte
nella direzione parallela all’edge e meno intenso nella direzione ad esso perpendicolare.
2. Poiché il filtro si basa esclusivamente sul gradiente dei pixel 4-vicini, un punto facente
parte di un edge sfumato viene filtrato in modo pressoché uguale ad una zona omogenea.
In termini di effetti visivi, i problemi indicati corrispondono a perdite di particolari
importanti (soprattutto nel caso delle immagini RM), e addirittura, in condizioni particolari di
rumore, all’eliminazione dei bordi con pendenza bassa, compromettendo quindi la qualità
dell’immagine.
5.2 – Possibili modifiche per la miglioria del filtro
Tenuto conto dei problemi inerenti alla struttura del filtro di Perona-Malik, per migliorare
la sua performance, si dovrebbe agire dunque migliorando la stima dei bordi.
Entrambi i problemi posti in precedenza possono essere arginati prestando maggiore
attenzione alla struttura dell’immagine (presenza o meno di un bordo, in quanto una semplice
variazione dell’intensità luminosa non corrisponde necessariamente alla presenza di un bordo; e
la sua eventuale inclinazione con cui modulare l’azione del filtro lungo la direzione orizzontale e
verticale) nell’intorno di ogni punto che si va a considerare durante l’applicazione del filtro.
L’equazione di diffusione diventerebbe così:
I it,+j1 = I it, j + λ (d (ϕ )vert ⋅ c N ⋅ ∇ N I + d (ϕ )vert ⋅ cS ⋅ ∇ S I + d (ϕ )oriz ⋅ c E ⋅ ∇ E I + d (ϕ )oriz ⋅ cO ⋅ ∇ O I ) ti , j (5.1)
in cui d(ϕ)vert e d(ϕ)oriz sono dei parametri funzione della direzione dell’edge.
La ricerca di un orientamento del pattern nell’intorno di un’immagine, può essere
ricondotta al problema di trovare la perpendicolare alla direzione principale in cui varia il
modulo del gradiente, in quanto, intuitivamente, laddove si incontra una variazione dei livelli di
34
grigio, è più probabile (ma non certo, ipotesi errata su cui si affida il filtro di Perona e Malik )
che si stia attraversando un edge.
Figura 5.1 – Relazione fra direzione dell’edge e direzione principale del gradiente.
Nella prossima sezione verrà presentato il metodo utilizzato per trovare la direzione in
questione.
5.3 – Ricerca della direzione principale del gradiente
A sua volta, il problema di trovare la direzione principale del gradiente, può essere
paragonato al voler trovare un particolare angolo θ = ϕ + π/2 nella cui direzione, in ogni punto
dell’intorno considerato, mediamente, si abbia la variazione massima del gradiente direzionale.
I ( xi + t cosθ , y j + t sin θ ) − I ( xi , y j ) ⎞
⎛ n n
⎞
⎛ n n
⎟
⎜ ∑∑ lim
⎜ ∑∑ Dv ( xi , y j ) ⎟
t
⎟
⎜ i=1 j =1 t →0
i =1 j =1
⎟
⎜
max⎜
⎟
⎟ = max⎜
n2
n2
⎟⎟
⎜⎜
⎟⎟
⎜⎜
⎠
⎝
⎠
⎝
(5.2)
35
Passando alle derivate lungo gli assi X ed Y (più semplici da calcolare per la natura discreta
matriciale delle immagini digitali), la (eq. 5.2) può essere scritta come:
⎧ n n ⎡⎛
⎤⎫
I ( xi + h, y j ) − I ( xi , y j ) ⎞
I ( xi , y j + k ) − I ( xi , y j ) ⎞
⎛
⎟⎟ ⋅ cosθ + ⎜⎜ lim
⎟⎟ ⋅ sin θ ⎥ ⎪
⎪ ∑∑ ⎢⎜⎜ lim
h
k
⎪ i=1 j =1 ⎣⎝ h→0
⎠
⎝ k →0
⎠
⎦⎪
max ⎨
⎬ (5.3)
2
n
⎪
⎪
⎪
⎪
⎩
⎭
cioè scritta in forma notazionale:
⎧ n n ⎡⎛ ∂f ⎞
⎤⎫
⎛ ∂f ⎞
⎟ ⋅ sin θ ⎥ ⎪
⎟⎟ ⋅ cosθ + ⎜
⎪ ∑∑ ⎢⎜⎜
⎜ ∂y ⎟
⎪ i =1 j =1 ⎢⎣⎝ ∂xi ⎠
⎥⎦ ⎪
⎝ j⎠
= max ⎨
⎬
2
n
⎪
⎪
⎪
⎪
⎭
⎩
(5.4)
Da cui separando le sommatorie e uscendone i valori costanti si ottiene:
⎧ n ⎡⎛ ∂f ⎞
⎤⎫
⎤ n ⎡⎛ ∂f ⎞
⎟ ⋅ sin θ ⎥ ⎪
⎟⎟ ⋅ cosθ ⎥ + ∑ ⎢⎜
⎪ ∑ ⎢⎜⎜
⎜
⎟
⎪ i=1 ⎣⎝ ∂xi ⎠
⎥⎦ ⎪
⎦ j =1 ⎢⎣⎝ ∂y j ⎠
max ⎨
⎬=
2
n
⎪
⎪
⎪
⎪
⎭
⎩
(5.5)
n
n ⎛
⎧
⎛ ∂f ⎞
∂f ⎞⎟ ⎫
⎟⎟ + sin θ ⋅ ∑ ⎜
⎪ cosθ ⋅ ∑ ⎜⎜
⎜
⎟⎪
i =1 ⎝ ∂xi ⎠
j =1 ⎝ ∂y j ⎠ ⎪
⎪
= max ⎨
⎬
n2
⎪
⎪
⎪
⎪
⎩
⎭
Per trovare il massimo si effettua la derivata prima dell’argomento e si pone uguale a 0 la
funzione così ottenuta, giungendo a:
n
n ⎛
⎛ ∂f ⎞
∂f ⎞⎟
⎟⎟ + cosθ ⋅ ∑ ⎜
− sin θ ⋅ ∑ ⎜⎜
⎜
⎟
i =1 ⎝ ∂xi ⎠
j =1 ⎝ ∂y j ⎠
=0
n2
da cui semplicemente si ricava l’angolo θ cercato:
(5.6)
36
⎡ n ⎛ ∂f ⎞ ⎤
⎟⎥
⎢ ∑ ⎜⎜
⎟
∂
y
⎢ j =1 ⎝ j ⎠ ⎥
θ = arctan ⎢ n
⎛ ∂f ⎞ ⎥
⎢ ∑⎜
⎟⎥
⎢ i =1 ⎜⎝ ∂xi ⎟⎠ ⎥
⎣
⎦
(5.7)
Questa espressione a cui si è giunti, indica che la direzione principale del gradiente è data
semplicemente dal rapporto delle medie aritmetiche dei gradienti dell’immagine nelle due
direzioni.
5.4 – Prova empirica del metodo
Da quanto detto prima è evidente come, per la ricerca della direzione cercata, non sia
importante la distribuzione dei gradienti, quanto la loro statistica (in particolare la media
aritmetica). A riprova empirica di quanto dimostrato, considerare la seguente immagine:
Figura 5.2 – Dettaglio di un edge
37
Se ne calcolano i gradienti rispettivamente nelle direzione X ed Y:
Figura 5.4 – Gradienti nelle due direzioni
Successivamente si sostituisce ad ogni valore della mappa del gradiente così ottenuta, la
media dei valori in ciascuna delle due direzioni, ottenendo una nuova mappa del gradiente
avente, per costruzione tutte le componenti uguali.
Integrando la mappa così costruita si risale ad una nuova immagine:
Figura 5.5 – Integrazione della mappa del gradiente
Chiaramente questa immagine è differente dall’originale, però, come è facile vedere, il
gradiente si muove verso la medesima direzione dell’immagine originaria.
38
5.5 – Modifica dell’equazione di diffusione anisotropa
Adesso che possediamo una stima migliore dei bordi nell’intorno del punto considerato
per l’applicazione del filtro, è necessario trovare le funzioni d(θ)vert e d(θ)oriz individuate
precedentemente.
Trattandosi di angoli, la scelta immediata per il tipo di funzione da utilizzare ricade sulle
funzioni sin(⋅) e cos(⋅), ma bisogna fare delle osservazioni.
Per mantenere stabile lo schema numerico permettendo che sia ancora valido il principio
del massimo (e di conseguenza il criterio di causalità dell’equazione di diffusione) è necessario
che
d (ϕ )vert ⋅ c N + d (ϕ )vert ⋅ c S + d (ϕ )oriz ⋅ c E + d (ϕ )oriz ⋅ cO ≤
1
(5.8)
λ
A partire da questa considerazione, per mezzo della relazione fondamentale della goniometria:
sin 2 α + cos 2 α = 1
(5.9)
si possono scegliere diverse funzioni goniometriche da utilizzare, in seguito a test effettuati i
migliori risultati sono stati ottenuti ponendo:
d (ϕ )vert = 2 cos 2 ϕ
d (ϕ )vert = 2 sin 2 ϕ
(5.10)
Quindi, lo schema numerico discreto per il filtro proposto sarà in definitiva:
[
]
I it,+j1 = I it, j + λ 2 cos 2 ϕ (c N ⋅ ∇ N I + c S ⋅ ∇ S I ) + 2 sin 2 ϕ (c E ⋅ ∇ E I + cO ⋅ ∇ O I )
t
i, j
(5.11)
Il quale, mantenendo λ sempre compreso fra 0 e ¼ rispetta la (Eq. 5.8).
Notare che, in caso di mancanza di un’orientazione specifica del pattern (angolo ϕ = 45°),
d(θ)vert = d(θ)oriz = 1, quindi l’equazione di diffusione (Eq. 5.11) si riconduce all’equazione di
diffusione anisotropa standard di Perona e Malik (Eq. 4.8).
39
5.6 – Scelta dei parametri per il tuning del filtro
Utilizzando le funzioni di conduzione esaminate in precedenza:
cX = e
⎛∇ I ⎞
−⎜ X ⎟
⎝ k ⎠
2
cX =
e
1
⎛∇ I ⎞
1+ ⎜ X ⎟
⎝ k ⎠
(5.12)
2
Si presenta la necessità di scegliere un valore k adatto a seconda dei differenti casi.
Poiché il valore k cambia il punto di massimo della funzione g(Ix)⋅Ix, cambia di
conseguenza anche l’intervallo dei valori entro il quale una variazione dei livelli di grigio viene
considerata discontinuità (rumore) o bordo.
La scelta teorica ottimale di k risulta essere quella per cui vale
g (σ 2 ) ⋅ σ 2 = max( g (∇ x I ))
Nel caso g (∇ x I ) ⋅ ∇ x I = e
⎛∇ I ⎞
−⎜ X ⎟
⎝ k ⎠
(5.13)
2
∇ x I derivando rispetto alla x si ottiene:
e − ( x / k ) ⋅(k
k2
2
2
−2x2
)
(5.14)
che risolta da:
k 2
2
(5.15)
k = 2x
(5.16)
x=
da cui
quindi utilizzando la prima funzione di conduzione la scelta ottimale di k è:
k = 2σ 2
(5.17)
40
Figura 5.6 – Valore ottimale di k
Invece nel caso g (∇ x I ) ⋅ ∇ x I =
∇xI
⎛∇ I ⎞
1+ ⎜ X ⎟
⎝ k ⎠
derivando rispetto alla x si ottiene:
2
(
k 2 k 2 − x2
(x
2
+k
)
2 2
)
(5.18)
che risolta da:
k=x
(5.19)
per cui utilizzando la seconda funzione di conduzione la scelta ottimale di k è:
k =σ2
(5.20)
Figura 5.7 – Valore ottimale di k
41
6. Test e dataset utilizzati
Per verificare sperimentalmente i risultati del filtro proposto sono stati effettuati dei test
su immagini RM sintetiche [15, 16, 17, 18, 19] con diversi rapporti di rumore, infine è stata
anche effettuato un test su un’immagine convenzionale.
6.1 – Primo test
Tipo di immagine:
Sintetica
Tecnica di scansione:
SFLASH (Spoiled FLASH)
Repetition time:
18ms
Flip Angle:
30°
Echo Time
10ms
Noise Level
3%
INU Field
Field A
INU ("RF") level
20%
Numero iterazioni:
3
λ:
0.25
Equazione conduzione utilizzata:
cX = e
⎛∇ I ⎞
−⎜ X ⎟
⎝ k ⎠
2
42
Immagine Originale (rumorosa)
Immagine Originale (senza rumore)
Filtro proposto
Filtro Perona-Malik
Figura 6.1 – Confronto immagini primo esperimento
Qualitativamente si può vedere come l’azione di blurring lungo gli edges è meno marcata
rispetto al filtraggio Perona-Malik, inoltre piccoli dettagli che vengono praticamente perduti
(Fig. 6.2) con il filtraggio di Perona-Malik rimangono ben definiti e maggiormente contrastati.
43
Immagine Originale (rumorosa)
Immagine Originale (senza rumore)
Filtro proposto
Filtro Perona-Malik
Figura 6.2 – Confronto dettagli primo esperimento
44
Infine utilizzando la stima del rapporto segnale-rumore proposta da Sijbers,
SNR =
1
N
N
∑f
i =1
2
i
σ
si riscontrano, mediamente, migliorie che si attestano su circa il 10%
45
6.2 – Secondo test
Tipo di immagine:
Sintetica
Tecnica di scansione:
SFLASH (Spoiled FLASH)
Repetition time:
18ms
Flip Angle:
30°
Echo Time
10ms
Noise Level
10%
INU Field
Field A
INU ("RF") level
20%
Numero iterazioni:
5
λ:
0.25
Equazione conduzione utilizzata:
cX =
1
⎛∇ I ⎞
1+ ⎜ X ⎟
⎝ k ⎠
2
46
Immagine Originale (rumorosa)
Immagine Originale (senza rumore)
Filtro proposto
Filtro Perona-Malik
Figura 6.3 – Confronto immagini secondo esperimento
In questo caso, nonostante l’immagine originale con presenza di rumore sia praticamente
inutilizzabile, il filtro mitiga notevolmente l’azione del rumore stesso, riuscendo a mantenere un
livello di dettaglio nettamente superiore al filtro di Perona Malik:
47
Immagine Originale (rumorosa)
Immagine Originale (senza rumore)
Filtro proposto
Filtro Perona-Malik
Figura 6.4 – Confronto dettagli esperimento
48
6.3 – Terzo test
Questo test è stato effettuato su un’immagine rumorosa convenzionale.
Numero iterazioni:
3
λ:
0.25
Equazione conduzione utilizzata:
cX = e
⎛∇ I ⎞
−⎜ X ⎟
⎝ k ⎠
2
Immagine originale (rumorosa)
Filtro proposto
Filtro Perona-Malik
Figura 6.5 – Confronto immagini terzo esperimento
49
Un’analisi qualitativa dell’immagine mostra come il filtro proposto fornisca risultati
migliori rispetto al Perona-Malik, basti vedere come quest’ultimo perda di definizione, ad
esempio lungo l’armadio (in alto a sinistra) scompaiono tutte le venature, che invece vengono
preservate col filtro proposto. Negativi dei dettagli delle immagini:
Immagine originale (rumorosa)
Filtro proposto
Filtro Perona-Malik
Figura 6.6 – Confronto dettagli terzo esperimento
50
Appendice A
Estensione del filtro proposto nelle tre dimensioni
A.1 – Utilizzi del filtro in tre dimensioni
L’ estensione del filtro proposto in tre dimensioni può avere una duplice applicazione:
- Filtraggio di modelli RM volumetrici.
- Filtraggio di sequenze video
Nel primo caso la terza dimensione viene intesa spazialmente (asse Z), nel secondo è invece
il tempo.
Quale che sia il significato assegnato alla terza dimensione, le modifiche che devono essere
apportate allo schema sono le stesse.
A.2 – Modifiche allo schema computazionale
La maschera da utilizzare in questo caso dovrà tenere conto dei pixel vicini nello spazio e
non più nel piano, quindi diverrà la seguente:
51
Figura A.1 – Maschera della diffusione 3D
per cui i nuovi coefficienti di conduzione saranno i seguenti:
(
= g ((∇I )
= g ((∇I )
= g ((∇I )
= g ((∇I )
= g ((∇I )
cNt i , j , z = g (∇I )i+(1 / 2 ), j , z
t
cSt i , j , z
cEt i , j , z
cOt i , j , z
c tAi , j , z
cDt i , j , z
t
i −(1 / 2 ), j , z
t
i , j + (1 / 2 ), z
t
i , j − (1 / 2 ), z
t
i , j , z +(1 / 2 )
t
i , j , z −(1 / 2 )
)
)
)
)
)
)
(A.1)
(A.1)
(A.1)
(A.1)
(A.1)
(A.1)
Per quanto riguarda invece la stima della direzione degli edge, trovandoci nello spazio,
gli angoli da trovare sono due e non più uno soltanto, ϕ e δ.
Tuttavia il criterio trovato per il caso 2D è ancora valido, per cui:
⎡ n ⎛ ∂f ⎞ ⎤
⎟⎥
⎢ ∑ ⎜⎜
⎟
⎢ j =1 ⎝ ∂y j ⎠ ⎥ π
ϕ = arctan ⎢ n
+
⎛ ∂f ⎞ ⎥ 2
⎢ ∑⎜
⎟⎥
⎢ i=1 ⎜⎝ ∂xi ⎟⎠ ⎥
⎣
⎦
(A.2)
52
e
⎡ n ⎛ ∂f ⎞ ⎤
⎟⎥
⎢ ∑ ⎜⎜
⎟
⎢ j =1 ⎝ ∂y j ⎠ ⎥ π
δ = arctan ⎢ n
+
⎛ ∂f ⎞ ⎥ 2
⎢ ∑⎜
⎟⎥
⎢ i=1 ⎜⎝ ∂zi ⎟⎠ ⎥
⎣
⎦
(A.3)
La nuova equazione di diffusione diventerà:
I it,+j1 = I it, j + λ[4 cos 2 ϕ sin 2 δ (c N ⋅ ∇ N I + c S ⋅ ∇ S I ) +
+ 4 sin 2 ϕ sin 2 δ (c E ⋅ ∇ E I + cO ⋅ ∇ O I ) +
(A.4)
+ 4 sin 2 ϕ cos 2 δ (c A ⋅ ∇ A I + c D ⋅ ∇ D I )]
In cui il valore di λ, per continuare ad essere valido il principio del massimo, deve essere
compreso fra 0 e 1/6.
A.3 – Risultati sperimentali
Lo schema così definito è stato testato su un set di immagini sintetiche di magnitudine di
dimensione 217x181 la cui distanza fra una fetta e l’altra è di 1mm. Il rumore simulato sul set è
del 5%, sono state effettuate tre iterazioni del filtro.
53
Figura A.2 (Parte I) – Applicazione del filtro 3D su un modello RM volumetrico.
54
Figura A.2 (Parte II) – Applicazione del filtro 3D su un modello RM volumetrico.
55
Figura A.2 (Parte III) – Applicazione del filtro 3D su un modello RM volumetrico.
56
Appendice B – Codice Sorgente
B.1 – rgfilter.m
% rgfilter - Anisotropic diffusion weighted by gradient direction.
%
% Usage:
% diff = rgfilter(im, niter, masksize, kappa, lambda, option)
%
% Arguments:
%
im
- input image
%
niter - number of iterations.
%
masksize - size of mask for computing the main direction of the local gradient
%
kappa - conduction coefficient 20-100 ?
%
lambda - max value of .25 for stability
%
option - 1 Diffusion equation No 1
%
2 Diffusion equation No 2
%
% Returns:
%
diff - diffused image.
%
% kappa controls conduction as a function of gradient. If kappa is low
% small intensity gradients are able to block conduction and hence diffusion
% across step edges. A large value reduces the influence of intensity
% gradients on conduction.
%
% lambda controls speed of diffusion (you usually want it at a maximum of
% 0.25)
%
% Diffusion equation 1 favours high contrast edges over low contrast ones.
% Diffusion equation 2 favours wide regions over smaller ones.
% Reference:
57
% P. Perona and J. Malik.
% Scale-space and edge detection using ansotropic diffusion.
% IEEE Transactions on Pattern Analysis and Machine Intelligence,
% 12(7):629-639, July 1990.
%
% by Roberto Gallea 2004
function diff = rgfilter(im, niter, masksize, kappa, lambda, option)
% Check correct size of the input
if ndims(im)==3
error('This versione of rgfilter only operates on 2D grey-scale images');
end
im = double(im);
[rows,cols] = size(im);
diff = im;
% execute iterations
for i = 1:niter
fprintf('\rIteration %d',i);
% Construct diffl which is the same as diff but
% has an extra padding of zeros around it.
diffl = zeros(rows+2, cols+2);
diffl(2:rows+1, 2:cols+1) = diff;
% North, South, East and West differences
deltaN = diffl(1:rows,2:cols+1) - diff;
deltaS = diffl(3:rows+2,2:cols+1) - diff;
deltaE = diffl(2:rows+1,3:cols+2) - diff;
deltaW = diffl(2:rows+1,1:cols) - diff;
% gets local gradient direction parameters
58
[horiz,vert] = getDirectionValues(diff,masksize);
% Conduction parameters
if option == 1
cN = exp(-(deltaN/kappa).^2);
cS = exp(-(deltaS/kappa).^2);
cE = exp(-(deltaE/kappa).^2);
cW = exp(-(deltaW/kappa).^2);
elseif option == 2
cN = 1./(1 + (deltaN/kappa).^2);
cS = 1./(1 + (deltaS/kappa).^2);
cE = 1./(1 + (deltaE/kappa).^2);
cW = 1./(1 + (deltaW/kappa).^2);
end
% the diffusion equation
diff = diff + lambda*(vert.*cN.*deltaN + vert.*cS.*deltaS + horiz.*cE.*deltaE +
horiz.*cW.*deltaW);
% Uncomment the following to see a progression of images
% subplot(ceil(sqrt(niter)),ceil(sqrt(niter)), i)
% imagesc(diff), colormap(gray), axis image
end
fprintf('\n');
B.2 – getDirectionValues.m
% getDirectionValues - Estimates local gradient directions to be used in
% direction-weighted anistropic diffusion equation
%
% usage
% [xcomponents, ycomponents] = getDirectionValues(x, masksize)
%
% Arguments:
%
x
- input image
59
%
masksize - size of mask for computing the main direction of the local gradient
%
% Returns:
%
xcomponents - values used for weighting x axis components
%
ycomponents - values used for weighting y axis components
%
% by Roberto Gallea 2004
function [horiz,vert]=getDirectionValues(x,masksize);
% Check correct size of the input
if mod(masksize,2) == 0
error('Mask size must be odd');
end;
warning off MATLAB:divideByZero;
x = double(x);
[rows,cols]=size(x);
horiz = zeros(rows,cols);
vert =zeros(rows,cols);
padsize = (masksize-1)/2;
diff = x;
% Construct diffl which is the same as diff but
% has an extra padding of zeros around it.
diffl = zeros(rows+2, cols+2);
diffl(2:rows+1, 2:cols+1) = diff;
diffl(rows+2,:)=diffl(rows+1,:);
diffl(:,cols+2)=diffl(:,cols+1);
% South (vertical) and West (horizontal) differences
deltaS = abs(diffl(3:rows+2,2:cols+1) - diff);
deltaW = abs(diffl(2:rows+1,1:cols) - diff);
60
% loop over the gradient map
for i=padsize+1:rows-padsize
for j=padsize+1:cols-padsize
% setup the container of the samples to
% compute local statistics
pop = zeros((masksize^2),2);
counter = 1;
% loop over the local gradient map
for k=i-padsize:i+padsize
for z=j-padsize:j+padsize
pop(counter,1) = abs(deltaS(k,z));
pop(counter,2) = abs(deltaW(k,z));
counter = counter + 1;
end;
end;
% compute statistrics
% along x direction
midx = sum(pop(:,1))/(masksize^2);
% along y direction
midy = sum(pop(:,2))/(masksize^2);
% compute tan of the main gradient direction
% general case
tan = midy/midx;
% tan = infinite
if midx == 0
currVect = pi/2;
else
currVect = tan;
end;
% fill the i,j component of outputs:
% horizontal
61
horiz(i,j)=2*((cos(atan(currVect))))^2;
% vertical
vert(i,j)=2*((sin(atan(currVect))))^2;
end;
end;
B.3 – rgfilter3d.m
% rgfilter - Anisotropic diffusion weighted by gradient direction for 3D models.
%
% Usage:
% diff = rgfilter(im, niter, masksize, kappa, lambda, option)
%
% Arguments:
%
im
- input image
%
niter - number of iterations.
%
masksize - size of mask for computing the main direction of the local gradient
%
kappa - conduction coefficient 20-100 ?
%
lambda - max value of .16 for stability
%
option - 1 Diffusion equation No 1
%
2 Diffusion equation No 2
%
% Returns:
%
diff - diffused image.
%
% kappa controls conduction as a function of gradient. If kappa is low
% small intensity gradients are able to block conduction and hence diffusion
% across step edges. A large value reduces the influence of intensity
% gradients on conduction.
%
% lambda controls speed of diffusion (you usually want it at a maximum of
% 0.25)
%
62
% Diffusion equation 1 favours high contrast edges over low contrast ones.
% Diffusion equation 2 favours wide regions over smaller ones.
% Reference:
% P. Perona and J. Malik.
% Scale-space and edge detection using ansotropic diffusion.
% IEEE Transactions on Pattern Analysis and Machine Intelligence,
% 12(7):629-639, July 1990.
%
% by Roberto Gallea 2004
function diff = rgfilter3d(im, niter, masksize, kappa, lambda, option)
% Check correct size of the input
if ndims(im)==4
error('This versione of rgfilter only operates on 3D grey-scale images');
end
im = double(im);
[rows,cols, prof] = size(im);
diff = im;
for i = 1:niter
fprintf('\rIteration %d',i);
% Construct diffl which is the same as diff but
% has an extra padding of zeros around it.
diffl = zeros(rows+2, cols+2, prof+2);
diffl(2:rows+1, 2:cols+1,2:prof+1) = diff;
% North, South, East, West, Forward and Backward differences
deltaN = diffl(1:rows,2:cols+1,1:prof) - diff;
deltaS = diffl(3:rows+2,2:cols+1,1:prof) - diff;
63
deltaE = diffl(2:rows+1,3:cols+2,1:prof) - diff;
deltaW = diffl(2:rows+1,1:cols,1:prof) - diff;
deltaF = (diffl(2:rows+1,2:cols+1,1:prof) - diff);
deltaB = (diffl(2:rows+1,2:cols+1,3:prof+2) - diff);
% gets local gradient direction parameters
[horiz,vert,deep] = getDirectionValues3d(diff,masksize);
% Conduction
if option == 1
cN = exp(-(deltaN/kappa).^2);
cS = exp(-(deltaS/kappa).^2);
cE = exp(-(deltaE/kappa).^2);
cW = exp(-(deltaW/kappa).^2);
cD = exp(-(deltaF/kappa).^2);
cB = exp(-(deltaB/kappa).^2);
elseif option == 2
cN = 1./(1 + (deltaN/kappa).^2);
cS = 1./(1 + (deltaS/kappa).^2);
cE = 1./(1 + (deltaE/kappa).^2);
cW = 1./(1 + (deltaW/kappa).^2);
cD = 1./(1 + (deltaF/kappa).^2);
cB = 1./(1 + (deltaB/kappa).^2);
end
% the diffusion equation
diff = diff + lambda*(vert.*cN.*deltaN + vert.*cS.*deltaS + horiz.*cE.*deltaE +
horiz.*cW.*deltaW + deep.*cD.*deltaF + deep.*cB.*deltaB);
% Uncomment the following to see a progression of images
% subplot(ceil(sqrt(niter)),ceil(sqrt(niter)), i)
% imagesc(diff), colormap(gray), axis image
end
fprintf('\n');
64
B.4 – getDirectionValues3d.m
% getDirectionValues3D - Estimates local gradient directions to be used in
% 3D direction-weighted anistropic diffusion equation
%
% usage
% [xcomponents, ycomponents, zcomponents] = getDirectionValues(x, masksize)
%
% Arguments:
%
x
- input image
%
masksize - size of mask for computing the main direction of the local gradient
%
% Returns:
%
xcomponents - values used for weighting x axis components
%
ycomponents - values used for weighting y axis components
%
zcompnentes - values used for weighting z axis components
%
% by Roberto Gallea 2004
function [horiz,vert,deep]=getDirectionValues2d(x,masksize);
% Check correct size of the input
if mod(masksize,2) == 0
error('Mask size must be odd');
end;
warning off MATLAB:divideByZero;
x = double(x);
[rows,cols,prof]=size(x);
horiz=zeros(rows,cols,prof);
vert = horiz;
deep = horiz;
padsize = (masksize-1)/2;
diff = x;
% Construct diffl which is the same as diff but
% has an extra padding of zeros around it.
diffl = zeros(rows+2, cols+2, prof+2);
diffl(2:rows+1, 2:cols+1,2:prof+1) = diff;
diffl(rows+2,:,:)=diffl(rows+1,:,:);
65
diffl(:,cols+2,:)=diffl(:,cols+1,:);
diffl(:,:,prof+2)=diffl(:,:,prof+1);
% South (vertical), West (horizontal), Forward (depth) differences
deltaS = (diffl(3:rows+2,2:cols+1,1:prof) - diff);
deltaW = (diffl(2:rows+1,1:cols,1:prof) - diff);
deltaD = (diffl(2:rows+1,2:cols+1,1:prof) - diff);
% loop over the gradient map
for i=padsize+1:rows-padsize
for j=padsize+1:cols-padsize
for m=padsize+1:prof-padsize
% setup the container of the samples to
% compute local statistics
pop = zeros((masksize^2),3);
counter = 1;
% loop over the local gradient map
for k=i-padsize:i+padsize
for z=j-padsize:j+padsize
for y=m-padsize:m+padsize
pop(counter,1) = abs(deltaS(k,z,y));
pop(counter,2) = abs(deltaW(k,z,y));
pop(counter,3) = abs(deltaD(k,z,y));
counter = counter + 1;
end;
end;
end;
% compute statistrics
% along x direction
midx = sum(pop(:,1))/(masksize^2);
% along y direction
midy = sum(pop(:,2))/(masksize^2);
% along z direction
midz = sum(pop(:,3))/(masksize^2);
% compute tan of the main gradient direction
% general case
tan1 = midy/midx;
tan2 = midy/midz;
% tan = infinite
66
if midx == 0
currVect = pi/2;
else
currVect = tan1;
end;
% tan = infinite
if midz == 0
currVect2 = pi/2;
else
currVect2 = tan2;
end;
% fill the i,j,m component of outputs:
% horizontal
horiz(i,j,m)=4*(cos(atan(currVect))^2)*(sin(atan(currVect2))^2);
% vertical
vert(i,j,m)=4*(sin(atan(currVect))^2)*(sin(atan(currVect2))^2);
% depth
deep(i,j,m)=4*(sin(atan(currVect))^2)*(cos(atan(currVect2))^2);
end;
end;
end;
67
Bibliografia
[1] Perry Sprawls – Magnetic Resonance Imaging: Principles, Methods, and Techniques
[2] Jan Sijbers – Signal and noise estimation from magnetic resonance images
[3] D. I. Hoult e P. C. Lauterbur – The sensitivity of the zeugmatographic experiment involving
human samples. Journal of Magnetic Resonance, 34.
[4] D. L. Parker e G. T. Gullberg – Signal-to-noise eficiency in magnetic resonance imaging.
Medical Physics, 17
[5] S. O. Rice – Mathematical analysis of random noise. Bell System Technological Journal, 23.
[6] R. M. Henkelman – Measurement of signal intensities in the presence of noise in MR images.
Medical Physics, 12.
[7] L. Kaufman, D. M. Kramer, L. E. Crooks e D. A. Ortendahl – Measuring signal-to-noise ratios
in MR imaging. Radiology, 173.
[8] R.L. Dixon, editor – MRI: Acceptance Testing and Quality Control - The Role of the Clinical
Medical Physicist.
[9] B. W. Murphy, P. L. Carson, J. H. Ellis, Y. T. Zhang, R. J. Hyde, e T. L. Chenevert –
Signalto-noise measures for magnetic resonance imagers. Magnetic Resonance Imaging, 11.
[10] P. Perona e J. Malik – Scale-Space and Edge Detection Using Anisotropic Diffusion.
[11] A. Rosenfeld e M. Thurston – Edge and Curve Detection for visual scene analisys.
[12] J. Koenderink – The Structure of Images.
[13] A. Hummel – Representation based on zero-crossings in scale-space.
68
[14] L. Nirenbarg – A strong maximum principle for parabolic equations.
[15] http://www.bic.mni.mcgill.ca/brainweb/
[16] C.A. Cocosco, V. Kollokian, R.K.-S. Kwan, A.C. Evans : "BrainWeb: Online Interface to a
3D MRI Simulated Brain Database" NeuroImage, vol.5.
[17] R.K.-S. Kwan, A.C. Evans, G.B. Pike : "MRI simulation-based evaluation of imageprocessing and classification methods"
[18] R.K.-S. Kwan, A.C. Evans, G.B. Pike : "An Extensible MRI Simulator for Post-Processing
Evaluation"
[19] D.L. Collins, A.P. Zijdenbos, V. Kollokian, J.G. Sled, N.J. Kabani, C.J. Holmes, A.C.
Evans : "Design and Construction of a Realistic Digital Brain Phantom" .
69