【问题标题】:How to fetch a dicom element from a .dcm file using pydicom if an element is in square brackets如果元素在方括号中,如何使用 pydicom 从 .dcm 文件中获取 dicom 元素
【发布时间】:2019-06-27 04:57:46
【问题描述】:

我正在尝试使用 pydicom 库提取 dicom 文件。

    filename="C:\\Users\\1016086\\PycharmProjects\\untitled\\dicomeSample.dcm'
    dataset = pydicom.dcmread(filename)

所以,我必须得到下面元素的值 (0011, 1004) [Acquisition Type] CS: 'SE'

但我无法获得“采集类型”的值,因为它在方括号中。

我试过dataset.get(Acquisition Type)dataset.get_item(Acquisition Type) 但它在 python IDE 中没有显示错误,因为它在键 'Acquisition Type' 之间有空格

【问题讨论】:

  • get_item 方法无法获取字符串,只能获取数字对。尝试使用get
  • @Zefick 我使用了 dataset.get(Acquisition Type) 但两个单词之间的空格显示错误。还尝试了 dataset.get("Acquisition Type")。它也显示错误

标签: python python-3.x python-2.7 dicom pydicom


【解决方案1】:

带有方括号的项目是私有标签,而不是 dicom 关键字,pydicom 不接受这些,因为它们不一定是唯一的。显示它们只是为了方便。

您必须通过标签号访问它们,例如 ds[(0x0011, 0x1004)].值

已编辑:在标签中的十六进制数字前添加“0x”

【讨论】:

    【解决方案2】:

    它可以在没有空间的情况下工作。
    只需使用 dataset.AcquisitionType 没有空格。

    import os
    import pydicom
    from pydicom.data import get_testdata_files
    
    filename="C:\\Users\\1016086\\PycharmProjects\\untitled\\dicomeSample.dcm"
    dataset = pydicom.dcmread(filename)
    print(dataset.AcquisitionType)
    

    【讨论】:

    • 我得到的错误是:AttributeError("'FileDataset' object has no attribute 'AcquisitionType'",))
    • 使用 dataset.[AcquisitionType] 并告诉我输出结果
    • dataset.[AcquisitionType] 无法编译,语法错误
    猜你喜欢
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    • 2019-02-19
    相关资源
    最近更新 更多