在python中为ImageJ创建一个多堆栈(例如,12色)tiff图像



我有一个尺寸为(5000,5000,12)的数组,代表X, Y和颜色。它已经是dtype=uint16

我想从这个数组创建一个tiff堆栈,这样我就可以在ImageJ中加载它。到目前为止,我的方法是:

skimage.io.imsave(
'Top4cores.tif', full_small_image,
bigtiff=True, imagej=True, resolution=(1, 1),
metadata={'spacing': 1, 'unit': 'um', 'axes': 'XYC'},photometric='minisblack')

不幸的是,这会创建一个带有:

的图像
SizeC = 5000
SizeT = 1
SizeX = 18
SizeY = 5000
SizeZ = 1

我如何确保我的图像有正确的坐标?我是否必须导出单个图像并在之后堆叠它们?

skimage.io.imsave在底层使用tifffile。最近的版本提高了builtins.ValueError: ImageJ hyperstack axes must be in TZCYXS order。要修复此错误,请更新tifffile,反转数组的尺寸,并使用axes='CYX':

tifffile.imwrite(
'Top4cores.tif',
full_small_image.transpose(),
imagej=True,
resolution=(1, 1),
photometric='minisblack',
metadata={'spacing': 1, 'unit': 'um', 'axes': 'CYX'}
)

相关内容

最新更新