我想使用pydicom将2D DICOM图像转换为。* PNG图像。问题在于,对于某些DICOM图像,pixel_array
不可用,并且出现错误“ NotImplementedError(e.strerror)”。 Pixel Data
可用。但是我不知道如何从这样的DICOM图像中提取numpy array
。我如何获得此信息?或者以另一种形式,是否有其他方法可以在不使用numpy array
的情况下将DICOM文件加载到pixel_array
中?
(很遗憾,我无法在此处放置DICOM文件)。
import pydicom
import numpy as np
import cv2
inputdir = '\data'
outdir = '\C:...'
high = 255
low = 0
ds = pydicom.dcmread(inputdir)
cmin = ds.pixel_array.min()
cmax = ds.pixel_array.max()
cscale = cmax - cmin
scale = float(high - low) / cscale
new_array = (ds.pixel_array - cmin) * scale + low
new_array = (new_array.clip(low, high) + 0.5).astype(np.uint8)
cv2.imwrite(outdir + '/' + f.replace('.dcm', '.png'), new_array)