Università degli studi di Napoli Federico II Facoltà di ... · tutti i possibili piani obliqui al...

20
Sviluppo di un ambiente software Sviluppo di un ambiente software per la visualizzazione multiplanare per la visualizzazione multiplanare di immagini biomedicali di immagini biomedicali Università degli studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Candidato: Fabio Foggia Relatore: Ch.mo Prof. Antonio Coronato Correlatore: Ing. Mario Ciampi

Transcript of Università degli studi di Napoli Federico II Facoltà di ... · tutti i possibili piani obliqui al...

Sviluppo di un ambiente software Sviluppo di un ambiente software per la visualizzazione multiplanare per la visualizzazione multiplanare

di immagini biomedicali di immagini biomedicali

Università degli studi di Napoli Federico IIFacoltà di Ingegneria

Corso di Laurea in Ingegneria Informatica

Candidato: Fabio FoggiaRelatore: Ch.mo Prof. Antonio CoronatoCorrelatore: Ing. Mario Ciampi

Sviluppo di un ambiente software per la Sviluppo di un ambiente software per la visualizzazione multiplanare di immagini biomedicalivisualizzazione multiplanare di immagini biomedicali

ProgettazioneProgettazione di un ambiente software atto a visualizzare ed interagire con piani di vista diversi di una stessa immagine biomedicale

ImplementazioneImplementazione di un ambiente open source e portabile in ogni piattaforma

ObiettiviObiettivi

Il medical imaging e la ricostruzione multiplanare (MPR)

Sviluppo di un modulo software per la ricostruzione multiplanare

Confronto con altri ambienti

Sviluppi futuri

SommarioSommario

Sviluppo di un ambiente software per la Sviluppo di un ambiente software per la visualizzazione multiplanare di immagini biomedicalivisualizzazione multiplanare di immagini biomedicali

E’ una tecnica di visualizzazione nell’ambito del Medical Imaging, che si pone come obiettivo quello di fornire all’utente finale (generalmente il medico) uno strumento il più possibile affidabile e sicuro di supporto al processo diagnostico.

Le differenti tecniche di visualizzazione delle immagini di uso corrente permettono la ricostruzione 3D dell'immagine da visualizzare, non consentendo tuttavia la consultazione simultanea di tutti i piani interni all'immagine.

La Ricostruzione Multiplanare (MPR)La Ricostruzione Multiplanare (MPR)

Il medical imaging e la ricostruzione multiplanare Il medical imaging e la ricostruzione multiplanare (MPR)(MPR)

L’immagine 3D viene scomposta e visualizzata nei tre piani principali (assiale, sagittale, coronale) .

A partire dalla visualizzazione dell'immagine nei piani principali è possibile ricostruire uno qualsiasi dei piani di interesse.

La Ricostruzione Multiplanare (MPR)La Ricostruzione Multiplanare (MPR)

Il medical imaging e la ricostruzione multiplanare Il medical imaging e la ricostruzione multiplanare (MPR)(MPR)

Il modulo software sviluppato è basato su un’architettura a componenti, altamente scalabile e performante e in grado di connettere dispositivi eterogenei

Requisito essenziale della struttura modulare dell’architettura è l’utilizzo di librerie e strumenti open source e cross platform

Per lo sviluppo del modulo di ricostruzione multiplanare si è scelto l'utilizzo delle librerie VTK e wxWidgets.

Architettura softwareArchitettura software

Sviluppo di un modulo software per l'MPRSviluppo di un modulo software per l'MPR

È una libreria open source di alto livello per la visualizzazione grafica e l’image processing

Il linguaggio base della libreria è il C++, ma è possibile costruire applicazioni anche usando Tcl, Java o Python.

Contrariamente ai principi della programmazione object oriented, VTK separa i dati (data objects) dalle procedure che li elaborano (process objects)

The Visualizzation ToolKitThe Visualizzation ToolKit

Sviluppo di un modulo software per l'MPRSviluppo di un modulo software per l'MPR

Ha una struttura architetturale basata sui concetti di pipeline e multithreading.

Mapperinterfaccia actor con un dataset

RenderWindowInteractorfornisce un semplice supporto

all'interazione

RenderWindowfinestra dell'applicativo,

puo' visualizzare piu' scene

Lightposizione e caratteristiche

di una luce

Cameracontrolla le impostazione

della prospettiva

Rendererrenderizza la scena che puo'

contenere piu' actor e piu' luci

Propertycontrolla l'aspetto dell'actor

Transformcontrolla la posizione

dell'actor

Actorentita' nella scena

dataset

É d’uso comune nella computer grafica descrivere una scena tridimensionale mediante la metafora del set cinematografico, così anche in VTK troviamo gli oggetti Actor, Light e Camera.

The Visualizzation ToolKitThe Visualizzation ToolKit

Sviluppo di un modulo software per l'MPRSviluppo di un modulo software per l'MPR

E’ stata sviluppata utilizzando la libreria wxWidgets, un framework per linguaggio C++ atto a costruire GUI multipiattaforma

Per sviluppare la GUI sono stati utilizzati tradizionali controlli, derivati dalle classi appartenenti a wxWidgets (wxFrame e WxWindow)

L’interfaccia creata permette di selezionare assi e linee per la ricostruzione dei piani

L’interfaccia graficaL’interfaccia grafica

Sviluppo di un modulo software per l'MPRSviluppo di un modulo software per l'MPR

Fase di progettazione Fase di progettazione

mprFilter definisce le azioni inerenti la scelta del piano di vista.

wxVtkInteractor definisce invece tutte le funzioni che creano interazione all'interno della scena.

Nella progettazione del software si è seguito il design pattern Model-View-Controller

vtkImageData Definisce i dati e le operazioni che possono essere eseguite sui dati

wxMprFilterGui Gestisce la costruzione della GUI

Sviluppo di un modulo software per l'MPRSviluppo di un modulo software per l'MPR

AA

BBCC

Toolbar

L’interfaccia grafica sviluppataL’interfaccia grafica sviluppata

Interagendo con l’asse z e col cerchietto di B si ottengono piani di vista diversi in A e C

Nella situazione di partenza, nei tre visualizzatori sono rappresentati tre piani ortogonali tra loro.

Interagendo con gli assi x ed y ed il cerchietto del visualizzatore A si ottengono piani di vista diversi in B e C.

Sviluppo di un modulo software per l'MPRSviluppo di un modulo software per l'MPR

I cerchietti indicano sempre lo stesso punto ma in due piani di vista differenti

Muovendo in A il cerchietto si ha una traslazione dei piani in B (piano xz) e C (piano yz).

Muovendo in B il cerchietto, si può avere una traslazione del piano in A (piano xy) e C (piano yz)

Operazioni: MovimentoOperazioni: Movimento

L’operazione di movimento consente di visualizzare tutti i piani paralleli a quelli di partenza

Sviluppo di un modulo software per l'MPRSviluppo di un modulo software per l'MPR

Operazioni: Rotazione degli assi in AOperazioni: Rotazione degli assi in A

rotate Con questa operazione si otterranno tutti i possibili piani ortogonali al piano contenuto in A

Sviluppo di un modulo software per l'MPRSviluppo di un modulo software per l'MPR

Dopo una rotazione di 90° rispetto a z i piani B e C risulteranno invertiti

Ruotando rispetto a z i piani B e C ruotano con gli assi.

rotate

Operando operazioni composite di move e rotate sugli assi, si possono ottenere tutti i piani di interesse. Ruotando l'asse in B rispetto a y, C ruota con gli assi.

Con questa operazione si otterranno tutti i possibili piani obliqui al piano contenuto in A

Operazioni: Rotazione dell’asse in BOperazioni: Rotazione dell’asse in B

Sviluppo di un modulo software per l'MPRSviluppo di un modulo software per l'MPR

Ruotando l'asse in B rispetto a y, C ruota con gli assi.

Definisce il contrasto dell'immagine nei tre piani di vista

Avvicina la camera verso il piano di vista desiderato

Permette di muovere l'intero contenuto di un visualizzatore

Permette di ruotare l'intero contenuto di un visualizzatore

Effettua lo zoom di tutti e tre i piani di vista

La slidebar permette di scorrere le slices dell'immagine acquisita

ToolbarToolbar

Sviluppo di un modulo software per l'MPRSviluppo di un modulo software per l'MPR

Sono i pulsanti di interazione con gli assi. Il primo permette di effettuare l'operazione di movimento ed il secondo di rotazione

Amide :Amide : Software open–source che permette l'interazione tra i piani di vista pricipali (assiale,coronale,sagittale) di un'immagine, ma non permette la visualizzazione di piani obliqui

Confronto con altri ambientiConfronto con altri ambienti

Software relativi all'MPRSoftware relativi all'MPR

MRIMRI MRIcro:MRIcro: Software open–source e cross platform. Permette

l'interazione tra piani ortogonali nonché la visualizzazione dei piani obliqui, ma ha un interfaccia grafica poco intuitiva

Confronto con altri ambientiConfronto con altri ambienti

Software relativi all'MPRSoftware relativi all'MPR

Osirix:Osirix: Software open-source che permette l'interazione tra tutti i piani di vista siano essi anche piani obliqui. Il software però è sviluppato solo su piattaforme MAC

Software relativi all'MPRSoftware relativi all'MPR

Confronto con altri ambientiConfronto con altri ambienti

Software sviluppato:Software sviluppato: Software open-source e cross platform. Permette l'interazione tra tutti i piani di vista, siano essi anche piani obliqui.

Software relativi all'MPRSoftware relativi all'MPR

Confronto con altri ambientiConfronto con altri ambienti

Possibilità di caricare in una stessa sessione più immagini (es. una TAC e una PET)

Possibilità di salvare una sessione di lavoro

Fornire ultieriori facilities all'interfaccia grafica

Estensioni possibili al modulo MPR Estensioni possibili al modulo MPR

Sviluppi futuriSviluppi futuri