使用Python读取tiff标签

4

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

import tifffile

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

然而,img是一个numpy数组,它只包含像素值。我该如何读取例如图像的x_resolution

3个回答

8
我找到了一个替代方案:
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()

4

我不确定 tifffile 库,但您可以使用 exifread 获取 x 分辨率

import exifread

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

输出:

300

0

使用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]

编辑版本0.17.1中已删除tifffile的副本,现在通过pip在安装scikit-image时安装tifffile


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接