Reading *.mhd/*.raw format in python

前端 未结 4 1246
太阳男子
太阳男子 2020-12-15 18:26

Can anyone please tell me the way I can read a dataset containing .mhd/.raw files in python?

4条回答
  •  被撕碎了的回忆
    2020-12-15 19:01

    The easiest way is to use SimpleITK (MedPy uses ITK for .mhd/.raw files too). Command

    pip install SimpleITK
    

    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
    

提交回复
热议问题