使用 Python。如何将 4 维数组 (21,32,1024,1024) 保存为 tif 图像。生物医学

Using Python. How to save a 4 dimension array (21,32,1024,1024) as a tif image. biomedicine

我想将一堆阵列保存在一个 tiff 文件中,这样显微镜软件就可以在通道和 z 平面中将其读取为图像。所以这是一个 4 维数组:(21,32,1024,1024)。但是我没有找到方法。

例如使用:io.imsave(os.path.join(outpath), stack2),这被保存为一堆单独的图像,而不是代表 21 个 z 平面的 32 个通道的组。

你知道有什么方法可以实现吗?

由于 TIFF 规范不处理 multi-channel Z 堆栈,额外的元数据需要与图像数据一起保存。在 bio-imaging 的 TIFF 中保存 ZCYX 图像有两种常见的元数据格式:OME-TIFF and ImageJ hyperstacks. OME-TIFF is supported by more software. Tifffile 可以读取和写入两种格式:

import numpy
from tifffile import imwrite

image = numpy.zeros((21, 32, 1024, 1024), dtype='uint16')

# write OME-TIFF
imwrite('zcyx.ome.tif', image)

# write ImageJ hyperstack
imwrite('zcyx.tif', image, imagej=True)