Python中用SimpleITK进行医学图像读取时,转换成array后读取出来的维度顺序是depth, width, height,spacing获取到的顺序却与之相反,因此可以按照下面的方法按需转换。
import SimpleITK as sitk
mhd_filename = 'F:/1reinforce-learning/Data/hu/CTA.nii'
itkimage = sitk.ReadImage(mhd_filename)
#image转成array
volume = sitk.GetArrayFromImage(itkimage)
#image转成array,且从[depth, width, height]转成[width, height, depth]
volume_reverse = sitk.GetArrayFromImage(itkimage).transpose(2, 1, 0)
spacing = itkimage.GetSpacing()
#spacing 翻转,为了和普通图片读取的depth, width, height对应
spacing_reverse = spacing[::-1]
print('volume shape is:',volume.shape)
print('volume shape_reverse is:',volume_reverse.shape)
print('spacing is:', spacing)
print('spacing_reverse is:', spacing_reverse)
print('spacing_reverse[1] is:', spacing_reverse[1])
以下为运行结果: