Création d’un logiciel de visualisation d’images scanner en 3D
Plan de la soutenance Problématique du projet Objectifs techniques de ImScan3DView Démonstration : visualisation de la reconstruction 3D d’une jambe et réalisation de coupes multidirectionnelles Conception de l’interface Réalisation de la reconstruction 3D Pré-traitements des images Conclusion
Problématique du projet Créer un logiciel pour à partir d’images scanner : Reconstruire un volume 3D de l’organe scannée Réaliser des coupes sur le volume dans des directions choisies Aide à l’interprétation d’images scanner
Objectifs techniques de ImScan3DView Logiciel et outils multi-plateformes Interface graphique simple, intuitive et d’aspect moderne Ressources matérielles raisonnables
Conception de l’interface Implémentation en C++ avec la bibliothèque QT de l’entreprise Trolltech Intérêts de l’utilisation de QT : Nombreux objets graphiques pré-implémentés Organisation des objets graphiques simple et intelligente Communication entre objets simples Assistance à la création de boîte de dialogue (QT Designer) Outil entièrement portable
Fenêtres d’aide à la création Barre d’outils de QT Designer Boîte de dialogue obtenue
Réalisation de la reconstruction 3D Utilisation de la bibliothèque Vtk de la société KiteWare Intérêt de Vtk : Spécialisée dans la visualisation de données 3D scientifiques Bibliothèque très complète (900 classes) et très performante Gère le multi-threading pour les systèmes multi-processeurs Entièrement portable
Utilisation de Vtk Notion de pipeline Données sources Données vtk vtkSource vtkFilter Données modifiées vtkMapper Primitives graphiques vtkActor Objet 3D graphique Les données sources peuvent être très différentes : des fichiers brutes de toutes sortes, des fichiers .3DS ou VRML, des images de tous formats. Il faut utiliser la bonne classe vtk pour le type de données. Les données sources peuvent être modifiées par différents traitements. Il faut utiliser la bonne classe vtk pour le type de traitement. (Exemple : vtkContourFilter pour extraire un contour) Les données modifiées doivent être traduites en primitives graphiques. Les primitives graphiques sont unifiées en un objet 3D prêt à être affiché. Notion de pipeline
Intégration de Vtk dans notre application QT Utilisation de l’outil Vtk_qt développé par Carsten Keubler du laboratoire Imag Objet graphique QT (QWidget) Fenêtre Vtk
Principe du traitement d’images Le but du traitements d’images est de passer de l’image brute à l’image traitée suivante :
Principe du traitement d’images Seuillage Image Chaire Binaire Étiquetage Eti 32bits Bouchage des Trous Traitée Image OS Image Os + Texte Eti 32bits Suppression du texte Image Os Traitée Image Multi seuillée + Image Brute
Traitement de la chaire Image brute Image seuillée Trous bouchés
Traitement des Os et du Texte Image brute Image seuillée Suppression des petits objets et trous bouchés
Seuillage : Nb pixels Fond noir Os + Texte Chaire Ndg 0 25 200 255 0 25 200 255 Noir Blanc
Image Multi-seuillée résultat Ndg : 255 Ndg : 127 Ndg : 255
Logiciel final
Conclusion Pour le projet : Réalisations de toutes les spécifications Plus du triple du temps normalement imparti Très forte motivation et implication Apports du projet : Découvertes d’outils informatiques pertinents (QT, Vtk, Corona) Consolidation des connaissances en programmation C++