如何维护 SimpleITK 图像中的方向到 numpy 数组转换?

问题描述

我有一个物体的三个不同的各向同性 MRI DICOM 体积,每个体积都有不同的方向(同一物体的正交矢状、冠状和横向采集)。

我想将它们转换为 numpy 数组并以它们的索引匹配的方式绘制它们。假设我有从 sik 图像发出的三个 numpy 数组:

sag_array = sitk.GetArrayFromImage( sag_sitk )
dors_array = sitk.GetArrayFromImage( dors_sitk )
trans_array = sitk.GetArrayFromImage( trans_sitk )

我希望能够使用相同的索引来绘制它们,以便切片

sag_array[:,:,index]
dors_array[:,index]
trans_array[:,index]

对应相同的视图,没有轴的翻转或反转。

我猜这个信息包含在 SimpleITK 图像的方向中,有没有办法在转换后将其传输到 numpy 数组?

Direction 属性一般对 numpy 转换有什么影响,还是丢失了?

解决方法

我通过使用 sitk.Resample() 函数将所有图像预处理为共同的原点和方向来解决它。这样,当转换为 numpy 数组时,由于它们占用相同的物理空间,因此它们之间被连贯地切片。