La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Laboratorio di Neuroingegneria Segmentazione A.A. 2012-2013.

Presentazioni simili


Presentazione sul tema: "Laboratorio di Neuroingegneria Segmentazione A.A. 2012-2013."— Transcript della presentazione:

1 Laboratorio di Neuroingegneria Segmentazione A.A

2 Cosa faremo oggi Caricamento di volumi MRI cerebrale –T1 –FLAIR Calcolo della soglia di Otsu Stima della mistura di Gaussiane

3 Caricamento Sono a disposizione due file NIFTI: T1.nii e FLAIR.nii Dopo averli caricati, dal momento che le unità di misura dei dati MRI sono arbitrari, conviene: - estrarre una fetta campione su cui lavorare - normalizzare i dati: % Estraggo i dati dellimmagine dalla struttura NIFTI xT1=T1.img; % Estraggo una fetta campione xim=xT1(:,:,70); % Normalizzo di dati I=xim/max(xim(:));

4 Es1: Sogliatura Scegliere un valore casuale T 0 compreso fra il minimo ed il massimo valore dellimmagine Calcolare limmagine binaria I>T Calcolare la media m 0 dei valori contenuti nella regione per cui I T

5 Es 1: Sogliatura Provare lalgoritmo seguente: % Inizializzo T... while (ec) T=Tnew; m1=mean(I(I=T)); Tnew=0.5*(m1+m2) ec=(T~=Tnew)) end;

6 Es 2: Soglia di Otsu Calcolare la soglia di Otsu e confrontarla la segmentazione con quella ottenuta con lesercizio precedente. Suggerimenti: - Creare un insieme di soglie da provare campionando le intensità dellimmagine - Per ogni T i calcolare la varianza interclasse - Trovare la soglia corrispondente alla massima varianza interclasse

7 Es 3: Istogramma Calcolare listogramma dellimmagine con la funzione hist() di Matlab e disegnarci sopra le soglie trovate con i due algoritmi precedenti Suggerimento: La funzione hist di Matlab può: - visualizzare listogramma con un numero definito di campioni - restituire i valori dellistogramma ed i campioni nei quali è stato calcolato % Possibili sintassi di hist hist(I) hist(I,N) [y,x]=hist(I,N) y=hist(I,x)

8 Es 4: mistura di Gaussiane 1 1) Creare una funzione per calcolare la pdf 2) Creare una funzione per calcolare la somma di N pdf 3) Fit non lineare 4) Plottare listogramma e la mistura di gaussiane calcolata 5) Segmentare limmagine

9 Es 4: mistura di Gaussiane % Funzione per calcolare una gaussiana unidimensionale % m,s parametri scalari function y=Gauss(x,m,s)... % Funzione per calcolare la mistura di gaussiane % w,m,s parametri vettoriali (Nx1) function MG=GaussMix(x,w,m,s)... % Funzione per il calcolo dei residui function res=MGres(par,x,y) N=length(par)/3; w=par(1:N); m=par(N+1:2*N); s=par(2*N+1,3*N); MG=GaussMix(x,w,m,s); res=sum((MG-y).^2);

10 Es 4: mistura di Gaussiane 1 % Calcolo listogramma [yh,xh]=hist(I,100); % Opzioni per lottimizzazione options=optimset('Display,Iter'); % Numero di Gaussiane N= … ; % Inizializzazione dei parametri m0=[1:N]/N+1; s0=ones(1,N)*0.1; w0=ones(1,N)/N; beta0=[w0,m0,s0]; % Ottimizzazione

11 Es 4: Segmentazione % Calcolare la pdf di tutti i voxel dellimmagine per ogni gaussiana dati=I(:); … y(mode,:)=w(mode)*Gauss(dati,m(mode),s(mode)); … % Calcolare per ogni voxel qual è la gaussiana col valore più elevato % Sugg: utilizzare opportunamente la funzione max() mgau=… % Riportare il vettore alla dimensione dellimmagine: Iseg=reshape(mgau,size(I));

12 Es 5: EM

13 1.Utilizzare la funzione per calcolare la pdf 2.Creare una funzione per calcolare medie, varianze e pesi campionari 3.Creare uno script che iteri il procedimento

14 Statistiche campionarie % Funzione per calcolare una gaussiana unidimensionale % m,s parametri scalari function y=Gauss(x,m,s)... % Funzione per calcolare la mistura di gaussiane % w,m,s parametri vettoriali (Nx1) function MG=GaussMix(x,w,m,s)... % Funzione per il calcolo dei residui function [wnew,mnew,snew]=MGupdate(dati,w,m,s,mode) y=Gauss(dati,m(mode),s(mode)); MG=GaussMix(dati,w,m,s); p=y/MG; wnew=…; mnew=…; snew=…;

15 EM % Numero di Gaussiane N= … ; % Inizializzazione dei parametri m0=[1:N]/N+1; s0=ones(1,N)*0.1; w0=ones(1,N)/N; % Numero massimo di iterazioni MaxIter= … ; % Ciclo principale EM iter=1; dati=I(:); % fino a che il numero di iterazioni non supera MaxIter % aggiorno i valori dei parametri di ogni gaussiana … [wnew,mnew,snew]=MGupdate(dati,w,m,s,mode); …


Scaricare ppt "Laboratorio di Neuroingegneria Segmentazione A.A. 2012-2013."

Presentazioni simili


Annunci Google