Quelqu'un peut-il me dire comment je peux lire un jeu de données contenant les fichiers .mhd/. Raw en python?
Le moyen le plus simple consiste à utiliser SimpleITK (MedPy utilise également ITK pour les fichiers .mhd/.raw). Commander
pip install SimpleITK
fonctionne pour de nombreuses versions de python. Pour lire .mhd/.raw, vous pouvez utiliser ce code de kaggle
import SimpleITK as sitk
import numpy as np
'''
This funciton reads a '.mhd' file using SimpleITK and return the image array, Origin and spacing of the image.
'''
def load_itk(filename):
# Reads the image using SimpleITK
itkimage = sitk.ReadImage(filename)
# Convert the image to a numpy array first and then shuffle the dimensions to get axis in the order z,y,x
ct_scan = sitk.GetArrayFromImage(itkimage)
# Read the Origin of the ct_scan, will be used to convert the coordinates from world to Voxel and vice versa.
Origin = np.array(list(reversed(itkimage.GetOrigin())))
# Read the spacing along each dimension
spacing = np.array(list(reversed(itkimage.GetSpacing())))
return ct_scan, Origin, spacing
Utiliser skimage peut être encore plus facile après avoir installé SimpleITK
import skimage.io as io
img = io.imread('file.mhd', plugin='simpleitk')
Cela vous donnera un tableau numpy avec z, y, x tri.