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