我有一个插件,我在其中使用ImageJ图像堆栈(3d)并将其转换为1d浮点数组,以便通过使用JNA(Java本机接口)调用的本机代码进行进一步处理。现在,一旦我完成处理并返回修改后的1D图像阵列,我不知道如何将其转换回Image堆栈。仅针对二维图像回答了这个问题,但我想以最有效的方式将其转换回图像堆栈,然后显示图像。此外,像素以下列方式存储在1D阵列中。要访问图像中位置(x,y,z)的像素,您将转到元素:
一维数组中的 [(z * width * height) + (height * y) + y]
。
答案 0 :(得分:1)
所以我找到了一种方法:
outputstack = ImageStack(x, y, z )
for i in xrange(0, z):
# Get the slice at index i and assign array elements corresponding to it.
outputstack.setPixels(Array1D[int(i*x*y):int((i+1)*x*y)], i+1)
outputImp = ImagePlus("Output Image", outputstack)
希望这有助于其他人。