Création d’un logiciel de visualisation d’images scanner en 3D
Création d’un logiciel de visualisation d’images scanner en 3D
Plan de la soutenance
1. Problématique du projet
2. Objectifs techniques de ImScan3DView
3. Démonstration : visualisation de la reconstruction 3D d’une jambe et réalisation de coupes multidirectionnelles
4. Conception de l’interface
5. Réalisation de la reconstruction 3D
6. Pré-traitements des images
7. 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
Logiciel et outils multi-plateformes
Interface graphique simple, intuitive et d’aspect moderne
Ressources matérielles raisonnables
Objectifs techniques de ImScan3DView
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
Boîte de dialogue obtenue
Fenêtres d’aide à la création
Barre d’outils de QT
Designer
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é.
Intégration de Vtk dans notre application QT
Utilisation de l’outil Vtk_qt développé par Carsten Keubler du laboratoire Imag
Fenêtre Vtk Objet graphique QT (QWidget)
Principe du traitement d’images
Le but du traitements d’images est de passer de l’image brute à l’image traitée suivante :
Seuillage
Image Chaire Binaire
Étiquetage
Image Chaire Eti 32bits
Bouchage des Trous
Image Chaire Traitée
Seuillage
Image OS Binaire
Étiquetage
Image Os + Texte Eti 32bits
Suppression du texte
Image Os Traitée
Image Multi seuillée
+
Image Brute
Principe du traitement d’images
Traitement de la chaire
Image brute Image seuillée Trous bouchés
Traitement des Os et du Texte
Image brute Image seuilléeSuppression des petits objets et trous bouchés
Fond noir
Os + Texte Chaire
Nb pixels
Ndg
0 25 200 255Noir Blanc
Seuillage :
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++