我正在使用包含图像数据的DICOM文件。我正在使用pydicom从 .DCM 文件中读取元数据。现在,从 .DCM 文件中提取的像素数据以二维 numpy ndarray 的形式返回。
我正在使用的特定 DICOM 文件为每个像素保存一个强度值。在我对它们执行一些操作之后,我最终在二维 ndarray 中的每个像素上得到一个浮点值(介于 0.0 和 1.0 之间):
[
[ 0.98788927, 0.98788927 0.98788927, ..., 0.88062284 0.89532872 0.87629758],
[ 0.98788927, 0.98788927, 0.98788927, ..., 0.8884083, 0.89446367, 0.87889273],
[ 0.98788927, 0.98788927, 0.98788927, ..., 0.89100346, 0.89532872, 0.87629758] ,
,...,
[ 0.97491349, 0.97491349, 0.97491349, ..., 0.74480969, 0.72318339, 0.73269896],
[ 0.97491349, 0.97491349, 0.97491349, ..., 0.74913495, 0.74480969, 0.74740484],
[ 0.97491349, 0.97491349, 0.97491349, . .., 0.74913495 0.75865052, 0.75086505],]
我想通过将每个元素替换为一系列元素 [R, G, B] 将其转换为带有 numpy 的 3-D ndarray,其中 R=G=B=intensity 值。
ndarray.put() 函数使排除该方法的矩阵变平。
我也试过:
for x in range( len(a[0]) ):
for y in range( len(a) ):
a[x][y] = [ a[x][y], a[x][y], a[x][y] ]
但得到一个
ValueError: setting an array element with a sequence.
建议?我试图让数据操作尽可能轻松,因为其中一些图像很大,所以我想避免黑客/手动将所有数据复制到单独的变量中。
提前感谢您的帮助。