我将 DICOM 与 Python 和 Pydicom 库一起使用,当我使用 .dcm 文件时我没有问题。但我现在使用的是 DICOMDIR 数据集。
我的代码是下一个:
ds = dicom.read_file("dicomdir")
pixel_array
我尝试按如下方式访问元素:
data = ds.pixel_array
我得到下一个错误:TypeError: No pixel data found in this dataset.
的输出print ds
或多或少是下一个:
(0004, 1130) 文件集 ID CS: 'GEMS_11_10_111' (0004, 1200) 第一个目录记录的偏移量 UL: 412 (0004, 1202) 最后一个目录记录的偏移量 UL: 412 (0004, 1212) 文件集Consistency Flag US: 0 (0004, 1220) Directory Record Sequence 7 item(s) ---- (0004, 1400) 下一个 Directory Record UL 的偏移量:0 (0004, 1410) Record In-use Flag US: 65535 ( 0004, 1420) 引用的低级 Di UL: 558 (0004, 1430) 目录记录类型 CS: 'PATIENT' (0008, 0005) 特定字符集 CS: 'ISO_IR 100' (0010, 0010) 患者姓名 PN: '-----------------' (0010, 0020) 患者 ID LO: '246992' (0010, 0030) 患者出生日期 DA:'19630523' (0010, 0040) 患者性别 CS: 'F'
(0004, 1400) 下一个目录记录的偏移量 UL: 0 (0004, 1410) 记录使用中标志 US: 65535 (0004, 1420) 引用的低级 Di UL 的偏移量: 800 (0004, 1430) 目录记录类型CS: 'STUDY' (0008, 0005) 特定字符集 CS: 'ISO_IR 100' (0008, 0020) 研究日期 DA: '20111011' (0008, 0030) 研究时间 TM: '151535.000000' (0008, 0050) 入藏号SH:'1009819901'(0008,1030)研究描述LO:'MG召集'(0020,000D)研究实例UID UI:1.2.840.113564.9.1.20051212222002200222121211101106081081055555555555548.2100981981999999999999999999999999999999999990,00010,00010,00010,00010,00010,00010,00010,00010,00010、0010)
(0004, 1400) 下一个目录记录的偏移量 UL: 0 (0004, 1410) 记录使用中标志 US: 65535 (0004, 1420) 引用的低级 Di UL 的偏移量: 968 (0004, 1430) 目录记录类型CS: 'SERIES' (0008, 0005) 特定字符集 CS: 'ISO_IR 100' (0008, 0060) 模态 CS: 'MG' (0008, 103e) 系列描述 LO: 'Screen Save' (0020, 000e) 系列实例UID UI:1.2.840.113619.2.144.2347322947.2192645372.5(0020,0011)序列号是:'354'
(0004, 1400) 下一个目录记录的偏移量 UL: 1298 (0004, 1410) 记录使用中标志 US: 65535 (0004, 1420) 引用的低级 Di UL 的偏移量: 0 (0004, 1430) 目录记录类型CS: 'IMAGE' (0004, 1500) 参考文件 ID CS: ['DICOM', 'PA1', 'ST1', 'SE1', 'IM1'] (0004, 1510) 参考文件 UI 中的 SOP 类 UID:次要捕获图像存储 (0004, 1511) 文件 UI 中引用的 SOP 实例 UID:1.2.840.113619.2.144.44653394.14990.1318380911.86 (0004, 1512) F UI 中引用的传输语法 UID:显式 VR Little Endian (0008, 0005) 特定字符集CS: 'ISO_IR 100' (0008, 0008) 图像类型 CS: 'DERIVED' (0008,0023) 内容日期 DA: '20111011' (0008, 0033) 内容时间 TM: '151909.000000' (0020, 0013) 实例编号 IS: '8844' (0028, 0010) 美国行数: 2298 (0028, 0011) 美国列数: 1980 (0028, 1052) 重新调整截距 DS: '0' (0028, 1053) 重新调整斜率 DS: '1'1053) 重新调整斜率 DS:'1'1053) 重新调整斜率 DS:'1'
最后一部分重复四次。我的 DICOMDIR 数据集中有 4 张图像。
你知道如何使用 Numpy Array 访问每个图像的字段吗?