web-dev-qa-db-fra.com

Lecture du format * .mhd/*. Raw en python

Quelqu'un peut-il me dire comment je peux lire un jeu de données contenant les fichiers .mhd/. Raw en python?

12
Avijit Dasgupta

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
11
savfod

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.

7
pietz

Vous pouvez essayer d'utiliser MedPy ou ce script mhd_utils

0
johngull