Aperçu
NiBabel est la bibliothèque Python de référence pour l'I/O de fichiers de neuroimagerie. Utilisez-la pour lire et écrire des fichiers NIfTI, GIFTI, CIFTI, MGH, MINC et Analyze, inspecter les métadonnées affines et déplacer les données entre les outils d'imagerie et NumPy.
Installation
uv pip install nibabel
Charger un volume NIfTI
import nibabel as nib
img = nib.load('brain_t1.nii.gz')
data = img.get_fdata()
affine = img.affine
header = img.header
print(data.shape)
print(header.get_zooms())
print(affine)
Enregistrer une image modifiée
import numpy as np
masked = (data > data.mean()).astype(np.float32)
out = nib.Nifti1Image(masked, affine, header)
nib.save(out, 'brain_mask.nii.gz')
Exemple fMRI 4D
fmri = nib.load('rest_bold.nii.gz')
arr = fmri.get_fdata() # shape like (x, y, z, t)
tr = fmri.header.get_zooms()[-1]
print(arr.shape, tr)
Gestion des coordonnées
NiBabel stocke la transformation affine des coordonnées voxel vers les coordonnées du monde. Ne l'ignorez pas si vous combinez des outils, rééchantillonnez des données ou comparez des scans entre différentes sessions.
Flux de travail
- Charger avec
nib.load(). - Inspecter la forme, l'affine, l'espacement des voxels et les hypothèses d'orientation.
- Utiliser
.get_fdata()quand vous voulez des tableaux en virgule flottante. - Lors de l'enregistrement des sorties dérivées, préserver l'affine/header sauf si vous les modifiez intentionnellement.
- Pour le rééchantillonnage/réorientation, combiner avec Nilearn, DIPY ou des workflows ANTs/SimpleITK plutôt que de modifier le tableau à l'aveuglette.