pangsmao 2021-06-12 10:33 采纳率: 0%
浏览 383

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,有没有人知道为什么会这样?

 

  • 写回答

3条回答 默认 最新

  • 张慧琴 2021-11-18 16:02
    关注

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

    评论

报告相同问题?