simpleitk

Par mkurman · zorai

Interface simplifiée vers l'Insight Toolkit (ITK) pour le traitement d'images médicales. Segmentation, recalage, filtrage, rééchantillonnage, opérations morphologiques. Prend en charge DICOM, NIfTI, NRRD et des dizaines d'autres formats.

npx skills add https://github.com/mkurman/zorai --skill simpleitk

Présentation

SimpleITK simplifie l'Insight Toolkit (ITK) pour le traitement d'images médicales : segmentation, recalage, filtrage, rééchantillonnage et opérations morphologiques. Supporte DICOM, NIfTI, NRRD et 50+ formats de fichiers.

Installation

uv pip install SimpleITK

Opérations d'image de base

import SimpleITK as sitk
import numpy as np

image = sitk.ReadImage("ct_scan.nii.gz")
print(image.GetSize(), image.GetSpacing(), image.GetOrigin())

array = sitk.GetArrayFromImage(image)
print(array.shape)  # (z, y, x)

Segmentation

binary = sitk.BinaryThreshold(image, lower=200, upper=500, insideValue=1, outsideValue=0)
cc = sitk.ConnectedComponent(binary)
stats = sitk.LabelIntensityStatisticsImageFilter()
stats.Execute(cc, image)

for label in stats.GetLabels():
    print(f"Label {label}: mean={stats.GetMean(label):.1f}")

Recalage

fixed = sitk.ReadImage("template.nii.gz")
moving = sitk.ReadImage("moving.nii.gz")

R = sitk.ImageRegistrationMethod()
R.SetMetricAsMattesMutualInformation(numberOfHistogramBins=50)
R.SetOptimizerAsGradientDescent(learningRate=1.0, numberOfIterations=100)
R.SetInitialTransform(sitk.CenteredTransformInitializer(fixed, moving, sitk.Euler3DTransform()))
final_transform = R.Execute(fixed, moving)
resampled = sitk.Resample(moving, fixed, final_transform, sitk.sitkLinear)

Flux de travail

  1. Lire les images avec sitk.ReadImage() (détecte automatiquement le format)
  2. Prétraitement : BinaryThreshold, MedianFilter, ResampleImageFilter
  3. Segmenter avec seuillage, watershed ou composantes connexes
  4. Recaler avec ImageRegistrationMethod + transformation
  5. Mesurer les volumes avec LabelStatisticsImageFilter
  6. Écrire les résultats avec sitk.WriteImage()

Skills similaires