如何在没有 PixelArray 的情况下仅保存 dicom 图像的元数据?

How can I save the metadata only of a dicom image, without the PixelArray?

import os
import pydicom
path='dataset'
dico = pydicom.dcmread('1.dcm')
dico.pixel_array = None
dico.save_as(os.path.join(path,'Metadata.dcm'))

如果你根本不需要像素数据,你可以使用:

dico = pydicom.dcmread('1.dcm', stop_before_pixels=True)

在这种情况下,只有像素数据之前的标签,例如读取 header 数据(请注意,在极少数情况下,一些私有数据可能存在于 之后 像素数据,但这通常可以被忽略)。

如果读取后要移除像素数据,必须移除PixelData标签:

 dico = pydicom.dcmread('1.dcm')
 del dico.PixelData
 dico.save_as(os.path.join(path,'Metadata.dcm'))

请注意,pixel_data 是根据需要从 PixelData 标签创建的 - 而 PixelData 是原始格式(取决于字节顺序和可能的压缩),pixel_data 是可用于图像处理的格式的 NumPy 数组。删除它不会删除原始像素数据。

最简单的方法:

from pydicom import dcmread
meta = dcmread('mri.dcm', specific_tags=(0,0))
meta