我有一个DICOM RT剂量文件,我想用一个新的像素阵列来改变它。问题是,当我给某个像素一个新的值时,在这个过程中的某个地方它会随机变化。交换的代码块如下所示。我每次交换一个像素只是为了检查问题所在,所以我知道可以更快地完成:print pixel_arrayFLK[86][85][78]
print dosem.pixel_array[86][85][78]
for a in range(zBinsTPS):
for b in range(yBinsTPS):
for c in range(xBinsTPS):
dosem.pixel_array[a][b][c] = pixel_arrayFLK[a][b][c]
if a == 86 and b == 85 and c == 78:
print dosem.pixel_array[a][b][c]
print pixel_arrayFLK[a][b][c]
原始pixel_数组是dosem.pixel_数组新的一个是pixel_arrayFLK。举例来说:
pixel_arrayFLK[86][85][78]的值为65813。原来的dosem.pixel_数组[86][85][78]的值为62947。交换后,pixel_arrayFLK[86][85][78]仍然具有值65813,而dosem.pixel_数组[86][85][78]现在突然有了277的值。在
打印函数生成:
^{pr2}$
但是,如果将pixel_arrayFLK的所有值除以2,则交换工作正常。我真的不明白发生了什么事。这可能与DICOM文件中的数据类型有关吗?DICOM中包含的更多信息:(0028, 0002