Как я могу сохранить метаданные только изображения dicom, без PixelArray? - PullRequest
1 голос
/ 27 апреля 2020
  • У меня есть изображение 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'))

1 Ответ

2 голосов
/ 27 апреля 2020

Если вам не нужны данные пикселей, вы можете использовать:

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

В этом случае считываются только теги перед данными пикселей, например, данные заголовка (обратите внимание, что в редких случаях В некоторых случаях некоторые личные данные могут существовать после данных пикселей, но обычно это можно игнорировать).

Если вы хотите удалить данные пикселей после чтения , у вас есть чтобы удалить тег PixelData:

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

Обратите внимание, что pixel_data создается из тега PixelData по требованию - в то время как PixelData находится в необработанном формате (в зависимости от Endianess и возможного сжатия), pixel_data - это массив NumPy в формате, который можно использовать для обработки изображений. Удаление его не удаляет исходные данные пикселей.

...