【问题标题】:Read tiff tags in Python在 Python 中读取 tiff 标签
【发布时间】:2019-07-29 02:48:15
【问题描述】:

我正在尝试在 Python 中读取 tiff 文件的标签。该文件是 RGB,每个通道具有 uint16 值。我目前正在使用 tifffile

import tifffile

img = tifffile.imread('file.tif')

但是,img 是一个 numpy 数组,它只有像素值。例如,如何读取图像的 x_resolution

【问题讨论】:

    标签: python tiff scikit-image


    【解决方案1】:

    我发现了另一种:

    import tifffile
    with tifffile.TiffFile('file.tif') as tif:
        tif_tags = {}
        for tag in tif.pages[0].tags.values():
            name, value = tag.name, tag.value
            tif_tags[name] = value
        image = tif.pages[0].asarray()
    

    【讨论】:

      【解决方案2】:

      不确定tifffile lib,但您可以通过exifread 获得x resolution

      import exifread
      
      with open('image.tif', 'rb') as f:
          tags = exifread.process_file(f)
      print(tags['Image XResolution'])
      

      输出:

      300
      

      【讨论】:

        【解决方案3】:

        使用skimage.external.tifffile 是另一种可能的方法:

        from skimage.external import tifffile
        
        with tifffile.TiffFile('your_file.tif') as tif:
            imgs = [page.asarray() for page in tif.pages]
            x_res = [page.tags['x_resolution'].value for page in tif.pages]
        

        编辑tifffile的副本在version 0.17.1中被删除,现在在scikit-image安装过程中通过pip安装tifffile

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-04-06
          • 2015-07-19
          • 2021-09-03
          相关资源
          最近更新 更多