如何在没有 PixelArray 的情况下仅保存 dicom 图像的元数据?
How can I save the metadata only of a dicom image, without the PixelArray?
- 我有一张 Dicom 图像,我确实用
pydicom.dcmread('1.dcm')
阅读了它。
- 我怎么能只写元数据而不写
pixel_array
?作为字典或 dicom 格式。
- 我尝试用下面的代码来实现,但是没有成功!
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
- 我有一张 Dicom 图像,我确实用
pydicom.dcmread('1.dcm')
阅读了它。 - 我怎么能只写元数据而不写
pixel_array
?作为字典或 dicom 格式。 - 我尝试用下面的代码来实现,但是没有成功!
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