如何提取DICOM图像的像素阵列?

2024-04-26 07:21:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用pydicom把我的2ddicom图像转换成一个.*PNG图像。问题是对于某些DICOM图像,pixel_array不可用,我得到错误“NotImplementedError(e.strerror)”。Pixel Data可用。但我不知道如何从这样的DICOM图像中提取numpy array。我怎么能得到这个信息?或者以另一种形式,有没有其他方法可以不使用pixel_array将DICOM文件加载到numpy 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)

Tags: 文件图像importnumpynewnpdsarray