SimpleITK的GetSpacing()得到的pixel spacing为什么不对?

在分析一个竞赛的数据集时发现,用SimpleITK得到的pixel spacing不对,但是用pydicom得到的就没有问题,代码如下:

import SimpleITK as sitk
import pydicom
import os
import numpy as np

if __name__ == '__main__':
    in_dcm_dir = 'L:\\ImageData\\Spine_Localization_PIL\\lumbar_testA50_mid_sagittal'
    file_name = 'Case417.dcm'

    dcm_file_path = os.path.join(in_dcm_dir, file_name)
    sitk_mr_file = sitk.ReadImage(dcm_file_path)
    mr1 = sitk.GetArrayFromImage(sitk_mr_file)[0, :, :]

    pydicom_file = pydicom.read_file(dcm_file_path)
    mr2 = pydicom_file.pixel_array
    pixel_spacing = [float(pydicom_file.PixelSpacing[0]),   float(pydicom_file.PixelSpacing[1]), float(pydicom_file.SpacingBetweenSlices)]
    print('pydicom pixel spacing:')
    print(pixel_spacing)

    print('sitk pixel spacing:')
    print(sitk_mr_file.GetSpacing())

输出如下:

pydicom pixel spacing:
[0.9379948, 0.9373264, 6.0]
sitk pixel spacing:
(1.0, 1.0, 1.0)

用RadiAnt打开DICOM图像,看到的pixel spacing与pydicom得到的一致,但是SimpleITK对这套数据得到的pixel spacing始终是1*1,有没有人知道为什么会这样?

 

请问您解决了吗?我现在也出现这样的问题,而且更奇葩的是不同设备拍出来的dicom图片,有些可以读出来,有些就是1*1

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答

本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。

​​​​因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。