【问题标题】:How to maintain Direction in SimpleITK image to numpy array conversion?如何保持 SimpleITK 图像中的方向到 numpy 数组转换?
【发布时间】:2026-02-01 19:25:02
【问题描述】:

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

我想将它们转换为 numpy 数组并绘制它们,以使其索引匹配。假设我有三个从 sitk 图像发出的 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 转换有影响吗,还是丢失了?

【问题讨论】:

  • Numpy 数组没有任何元信息,因此失去了方向。为了让你的卷在 numpy 中匹配,你将不得不翻转它们。

标签: python numpy imaging simpleitk medical-imaging


【解决方案1】:

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

【讨论】: