AttributeError: 'FileDataset' object has no attribute 'ImagePosition'

AttributeError: 'FileDataset' object has no attribute 'ImagePosition'

for person in range(0, len(dirs1)):
    for root, dirs, files in os.walk(os.path.join(path, dirs1[person])):
        dcmfiles = [_ for _ in files if _.endswith('.dcm')]
        for dcmfile in dcmfiles:
            dcm_image = pydicom.read_file(os.path.join(root, dcmfile))
            img = dcm_image.pixel_array
            img2 = dcm_image.ImagePosition   # Error in this line

用于:

(0020, 0032) Image Position (Patient) DS: ['-166.000000', '-171.699997', '-207.500000']

我的问题是我想要 "Image Position (Patient)" 结构作为一个数组或其中的一个元素(如“-207.500000”)。 当我 运行 代码时,出现此错误: img2 = dcm_image.ImagePosition 行给出 AttributeError: 'FileDataset' object has no attribute 'ImagePosition'

正如 Karl 在他的评论中所建议的那样,图像位置(患者)属性可通过

访问
dmc_image.ImagePositionPatient

如果此属性仍然出现错误,则表示错误表明:您的对象没有此属性。 Dicom 声明 (0020,0032) 标签的关键字是 ImagePositionPatient,而 ImagePosition 实际上是一个退役标签 (0020, 0030)。请参阅第 59 页 DICOM Data Dictionary。因此,您的对象没有它可能是一件好事。