Ce projet permet de charger une série d'images médicales au format DICOM, de lui associer un masque de segmentation 3D au format NIfTI (.nii.gz), de réaliser un contrôle qualité (QC), d'effectuer des mesures quantitatives (volume et densité en HU), et de visualiser le tout de manière interactive.
- Chargement et Contrôle Qualité (QC) :
- Vérification de l'alignement spatial et de l'écartement constant des coupes DICOM.
- Validation de la correspondance des dimensions (Z, Y, X) entre la matrice DICOM et le masque NIfTI.
- Mesures Quantitatives Tissulaires :
- Calcul du volume exact de la structure segmentée en cm³ (ou mL).
- Extraction de la densité moyenne et de l'écart-type en Unités Hounsfield (HU) sous le masque.
- Visualisation Interactive :
- Navigation coupe par coupe via un slider et la molette de la souris.
- Activation/Désactivation dynamique de la superposition du masque (Bouton Toggle).
- Inspection interactive des pixels au clic (coordonnées Y, X, valeur HU et appartenance au masque).
- Exportation d'animations GIF (scanner brut et scanner avec superposition).
HU = PixelValue * RescaleSlope + RescaleIntercept
Volume_voxel (mm³) = PixelSpacing_X * PixelSpacing_Y * Espace_Z
Volume_total (cm³) = (Nombre_voxels * Volume_voxel_mm³) / 1000
Valeur_min = Centre - (Largeur / 2)
Valeur_max = Centre + (Largeur / 2)
Image_8bit = Clip((HU - Valeur_min) / (Valeur_max - Valeur_min) * 255, 0, 255)
| Scanner Brut (Tissus Mous) | Superposition Masque NIfTI (Overlay) |
|---|---|
![]() |
![]() |
donnees de test: Pancreatic CT — Pancreas-CT Reference Study
Prérequis :
# créer un environnement virtuel pour les dépendances
python -m venv .venv
source .venv/bin/activate
# installation des dépendances
pip install -r requirements.txt
# génération du masque NIfTI
python3 nifti_generator.pyStructure des dossiers :
- Placer les coupes DICOM dans le dossier
./data/. - Placer le fichier masque
masque_pancreas.nii.gzà la racine du projet.
Exécution :
python main.pyExport GIF :
Après la fermeture de l'interface graphique Matplotlib, un prompt s'affiche dans le terminal :
1: Exporter uniquement le volume brut (volume_brut.gif).2: Exporter uniquement le volume avec le masque (volume_masque.gif).3: Exporter les deux fichiers GIF.- Autre touche : Annuler l'exportation.

