Ошибка при сохранении манипулированного dicom в новый читаемый файл dicom? - PullRequest
0 голосов
/ 03 июля 2019

У меня есть 2D-изображение DICOM с 12 битами, мне нужно внести некоторые изменения в Bits-Store, чтобы преобразовать его в 8 бит. Для этой цели я изменяю pixel_array. Чтобы сохранить этот новый измененный pixel_array как изображение DICOM, мне нужны те же самые meta_data исходного изображения, чтобы полученный DICOM был полностью читаемым.
Я сделал следующее, но окончательный DICOM не читается. Может кто-нибудь мне помочь? '' '

import pydicom


ds = pydicom.dcmread('dicom_12bit.dcm')
high = 255
low = 0 
cmin = ds.pixel_array.min()
cmax = ds.pixel_array.max()
cscale = cmax - cmin
scale = float(high - low) / cscale
dcm_ds.pixel_array = (dcm_ds.pixel_array - cmin) * scale + low
dcm_ds.pixel_array = (dcm_ds.pixel_array.clip(low, high) + 0.5).astype(np.uint8)
dcm_ds.PixelData = dcm_ds.pixel_array.tobytes()
dcm_ds.save_as("new_8bit_dicom.dcm")

сохраненные биты теперь должны быть 8 битами в новом файле DICOM. Но он не сохраняется правильно.

...