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

如何用Python获取TIFF图像的图层数量?已试PIL/cv2方法无效

获取多图层TIFF的图层数量
  • 问题根源:你用的PIL n_frames 和 cv2 imreadmulti 都是针对多页TIFF(序列式分页存储的图像)设计的,而你的TIFF是将多个图层存在不同的Image File Directory (IFD) 结构中,这两个工具默认只会读取第一个IFD,所以返回图层数为1。

  • 解决方案1:使用libtiff库读取所有IFD中的图层

    1. 先安装库:
      pip install libtiff
      
    2. 读取代码:
      from libtiff import TIFF
      
      # 打开TIFF文件
      tif_file = TIFF.open('5_layers.tif', mode='r')
      # 遍历所有图层并统计数量
      layer_num = len(list(tif_file.iter_images()))
      print(f"实际图层数量: {layer_num}")
      
  • 解决方案2:使用imageio库(更简洁)

    1. 安装库:
      pip install imageio[tiff]
      
    2. 读取代码:
      import imageio.v3 as iio
      
      # 读取所有图层,index=None表示读取全部
      all_layers = iio.imread('5_layers.tif', index=None)
      print(f"实际图层数量: {len(all_layers)}")
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 15:05:17