You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python将uint16格式LZW压缩的多页3D TIFF栈转换为NRRD格式

适配工具清单
  • Python生态:首选tifffile(负责读取LZW压缩的uint16多页TIFF栈) + pynrrd(负责写入NRRD格式),二者对需求场景的适配度最高,无额外 heavy 依赖,兼容性好。
  • 离线GUI/命令行工具:不需要写代码的场景可以用ImageJ/Fiji、ITK-SNAP、3D Slicer,均原生支持两种格式的导入导出。
Python实现步骤

1. 安装依赖

执行命令:
pip install tifffile pynrrd numpy

2. 转换代码示例

import tifffile
import nrrd
import numpy as np

# 读取LZW压缩的3D TIFF栈,直接读取得到shape为(Z, H, W)的uint16数组
tiff_stack = tifffile.imread("input_stack.tif")

# 可选:配置NRRD元数据,比如空间间隔、原点等,根据你实际的图像参数修改
nrrd_header = {
    "type": "uint16",
    "dimension": 3,
    "space": "left-posterior-superior", # 可根据实际坐标系修改
    "sizes": tiff_stack.shape,
    "space directions": [[1.0, 0.0, 0.0], [0.0, 1.0, 0.0], [0.0, 0.0, 1.0]], # 对应x/y/z轴的spacing
    "space origin": [0.0, 0.0, 0.0]
}

# 写入NRRD文件
nrrd.write("output.nrrd", tiff_stack, header=nrrd_header)

3. 注意事项

  • 若需要保留TIFF原有的元数据(如空间分辨率、采集参数等),可通过tifffile.TiffFile接口读取对应TIFF标签信息,补充到nrrd_header中即可。
  • tifffile原生支持LZW压缩格式的直接读取,无需额外解压步骤,uint16类型也会完整保留不会发生精度损失。
  • 如果需要生成压缩后的NRRD文件,可在nrrd.write方法中增加compression='gzip'参数启用gzip压缩。

内容的提问来源于stack exchange,提问作者Aenaon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 17:36:05