【发布时间】:2020-04-25 12:29:20
【问题描述】:
- 我读取了包含所有元数据的 dicom 图像,并对某些字段进行了匿名化,之后我想再次编写它,但出现错误:
if None in (dataset.is_little_endian, dataset.is_implicit_VR): AttributeError: 'dict' object has no attribute 'is_little_endian' - 我看了documentation of pydicom,但不明白怎么做!
- 如何在一个工作指令中重新编写它?
- 编辑:出生日期更改为
None而不是'None',并且dcmwrite被替换为save_as。
import pydicom
from pydicom.misc import is_dicom
fp ='1.dcm'
dico = pydicom.filereader.dcmread(fp)
if(is_dicom(dico)):
dico['PatientID']= 'None'
dico['PatientBirthDate'] = None
dico['is_little_endian'] = True
dico['is_implicit_VR'] = True
path = '/dataset'
# dico.save_as(os.path.join(path,'Anonymous.dcm'))
pydicom.dcmwrite(os.path.join(path,'Anonymous.dcm'), dico)
【问题讨论】:
-
使用
pydicom.dcmwrite(filename, dico)。此外,"None"不是有效日期 - 您的意思是None? -
@MrBeanBremen 我把生日改成
None,用pydicom.dcmwrite(filename, dico),得到如下错误:AttributeError: 'dict' object has no attribute 'is_little_endian' -
啊,是的,您必须在数据集中设置
is_little_endian和is_implicite。应该在某个地方的文档中,我可以在今天晚些时候查找(现在没有时间)。 -
@MrBeanBremen 提前致谢。
标签: pydicom