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

使用pydicom打开DCM文件报错No tag to read,求解决方案

问题:使用pydicom读取DCM文件时报错"No tag to read at file position 3AC03D2"

报错信息

No tag to read at file position 3AC03D2

调用代码

base = r"D:\fff"
pass_dicom = "dd.dcm" 
  
# enter DICOM image name for pattern 
# result is a list of 1 element 
filename = pydicom.data.data_manager.get_files(base, pass_dicom)
  
ds = pydicom.dcmread(filename) 

报错触发代码段

报错发生在read_sequence_item函数中,当bytes_read = b''时抛出异常:

def read_sequence_item(
    fp: BinaryIO,
    is_implicit_VR: bool,
    is_little_endian: bool,
    encoding: Union[str, MutableSequence[str]],
    offset: int = 0
) -> Optional[Dataset]:
    """Read and return a single :class:`~pydicom.sequence.Sequence` item, i.e.
    a :class:`~pydicom.dataset.Dataset`.
    """
    seq_item_tell = fp.tell() + offset
    if is_little_endian:
        tag_length_format = "<HHL"
    else:
        tag_length_format = ">HHL"
    try:
        bytes_read = fp.read(8)
        group, element, length = unpack(tag_length_format, bytes_read)
    except BaseException:
        raise IOError(
            f"No tag to read at file position {fp.tell() + offset:X}"
        )

解决方案

  • 修正文件路径传递问题:pydicom.data.data_manager.get_files返回的是文件路径列表,直接传给dcmread会导致参数错误,应该取列表中的第一个元素:
    filename = pydicom.data.data_manager.get_files(base, pass_dicom)[0]
    
  • 检查DCM文件完整性:文件可能因传输中断、存储损坏导致数据缺失,用专业DICOM查看器(如RadiAnt)打开文件,确认是否能正常显示。
  • 强制读取跳过错误:调用dcmread时添加force=True参数,强制读取非标准或损坏的DICOM文件:
    ds = pydicom.dcmread(filename, force=True)
    
    也可以尝试stop_before_pixels=True先读取元数据,排查是否是像素数据部分的问题:
    ds = pydicom.dcmread(filename, stop_before_pixels=True)
    
  • 验证DICOM合规性:使用pydicom的验证工具检查文件元数据是否符合标准:
    from pydicom import validate_file_meta
    validate_file_meta(ds.file_meta)
    
    或者用DCMTK工具集的dcmdump命令分析文件结构,定位异常标签。
  • 手动定位错误位置:用十六进制编辑器打开文件,跳转到偏移量0x3AC03D2的位置,检查该位置是否存在有效的DICOM标签(标准标签为4字节组号+4字节元素号,后续为长度字段),如果是无效数据,可尝试手动修复或忽略该序列部分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 06:42:52