You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用SimpleITK加载Dicom格式PET/CT数据并解决序列识别报错

SimpleITK加载PET/CT DICOM序列报错解决方案
  • 开启目录递归扫描
    GetGDCMSeriesFileNames 默认仅扫描传入路径的当前层级,不会自动遍历子目录。如果你的DICOM文件存放在目标路径的子文件夹内,需要开启递归扫描参数,修改代码如下:
dirOfExample = "C:\\Users\\1\\Downloads\\bad45Y\\bad45Y\\DICOM\\21071306"
reader = sitk.ImageSeriesReader()
# 新增recursive=True参数开启子目录递归扫描
dicom_names = reader.GetGDCMSeriesFileNames(dirOfExample, recursive=True)
reader.SetFileNames(dicom_names)
  • 手动指定序列UID
    如果目标目录下同时存在PET、CT两个独立序列,GDCM无法自动匹配需要加载的序列,可以先枚举所有序列UID后手动选择加载:
dirOfExample = "C:\\Users\\1\\Downloads\\bad45Y\\bad45Y\\DICOM\\21071306"
# 先获取目录下所有DICOM序列的UID
series_ids = sitk.ImageSeriesReader.GetGDCMSeriesIDs(dirOfExample, recursive=True)
if not series_ids:
    raise ValueError("目录下未检测到有效DICOM序列")
# 打印所有序列UID,按需选择对应序列加载,此处默认选第一个
print(f"检测到的序列UID列表:{series_ids}")
dicom_names = sitk.ImageSeriesReader.GetGDCMSeriesFileNames(dirOfExample, series_ids[0], recursive=True)
reader = sitk.ImageSeriesReader()
reader.SetFileNames(dicom_names)
  • 其他排查方案
    • 验证路径读取权限:确认当前Python运行进程对目标目录有读取权限,路径中不存在乱码、特殊符号导致的解析异常,可执行print(os.listdir(dirOfExample))验证路径下文件可被正常读取
    • 升级SimpleITK版本:部分旧版本SimpleITK的GDCM组件存在PET DICOM元数据识别问题,可执行pip install --upgrade simpleitk升级到最新版本后重试

内容的提问来源于stack exchange,提问作者Jakub Mitura

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 06:09:05