在 python 中为 ImageJ 创建多堆栈(例如,12 色)tiff 图像
Create a multi-stack (e.g., 12 color) tiff image in python for ImageJ
我有一个维度为 (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'}
)
我有一个维度为 (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'}
)