问题描述
谁能告诉我如何在 python 中读取包含 .mhd/.raw 文件的数据集?
Can anyone please tell me the way I can read a dataset containing .mhd/.raw files in python?
推荐答案
最简单的方法是使用 SimpleITK (MedPy 也将 ITK 用于 .mhd/.raw 文件).命令
The easiest way is to use SimpleITK (MedPy uses ITK for .mhd/.raw files too). Command
pip install SimpleITK
适用于许多 python 版本.要阅读 .mhd/.raw,您可以使用此代码 来自 kaggle
works for many python versions. For reading .mhd/.raw you can use this code from 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