如何在 Python 中更改 SimpleITK 图像的方向

S.E*_*.EB 2 python python-2.7 simpleitk

我使用此代码将 dicom 图像系列读入 python

series_IDs = sitk.ImageSeriesReader.GetGDCMSeriesIDs(data_directory)
series_file_names = sitk.ImageSeriesReader.GetGDCMSeriesFileNames(data_directory, series_IDs[0])
series_reader = sitk.ImageSeriesReader()
series_reader.SetFileNames(series_file_names)
series_reader.LoadPrivateTagsOn()
image3D=series_reader.Execute()
size = image3D.GetSize()
Run Code Online (Sandbox Code Playgroud)

目前,其定位如下:

在此处输入图片说明

我需要将方向更改为以下方向:

在此处输入图片说明

python中是否有任何命令可以改变SimpleITK图像的方向?

g.s*_*evo 5

扩展你的代码来执行这个我会考虑从你加载的一个图像中构建一个新图像,然后向它添加一个自定义方向。或者,ITK 在可用的 python 包装中有一个 orientimage 过滤器。这不是简单的,但可能会解决您的问题

import SimpleITK as sitk

series_IDs = sitk.ImageSeriesReader.GetGDCMSeriesIDs(data_directory)
series_file_names = sitk.ImageSeriesReader.GetGDCMSeriesFileNames(data_directory, series_IDs[0])
series_reader = sitk.ImageSeriesReader()
series_reader.SetFileNames(series_file_names)
series_reader.LoadPrivateTagsOn()
image3D=series_reader.Execute()
size = image3D.GetSize()

#get image data
image_out = sitk.GetImageFromArray(sitk.GetArrayFromImage(img))

#setup other image characteristics
image_out.SetOrigin(img.GetOrigin())
image_out.SetSpacing(img.GetSpacing())
#set to RAI
image_out.SetDirection(tuple(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0))
sitk.WriteImage(image_out, 'test.mha')
Run Code Online (Sandbox Code Playgroud)