从 1D 阵列构建 3-D 图像

3-D Image construction from a 1D array

我有一个插件,我在其中获取 ImageJ 图像堆栈 (3d) 并将其转换为一维浮点数组,以发送给使用 JNA 调用的本机代码进行进一步处理(Java 本机接口) .现在,一旦我完成处理并取回修改后的一维图像数组,我就不知道如何将其转换回图像堆栈。这个问题已经回答了一个二维图像,但我想以最有效的方式将它转换回图像堆栈,然后显示图像。此外,像素以以下方式存储在一维阵列中。要访问图像中位置 (x,y,z) 处的像素,您需要转到 element:

[(z * width * height) + (height * y) + y] 在一维数组中。

所以我找到了一种方法:

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) 

希望这对其他人有帮助。