在Python中读取tiff标记

在Python中读取tiff标记,python,tiff,scikit-image,Python,Tiff,Scikit Image,我正在尝试用Python读取tiff文件的标记。该文件为RGB,每个通道具有uint16值。我目前正在使用TIFF文件: 但是,img是一个numpy数组,它只有像素值。例如,如何读取图像的x_分辨率?不确定tiffilelib,但您可以使用exifread获得x分辨率: import exifread with open('image.tif', 'rb') as f: tags = exifread.process_file(f) print(tags['Image XResolu

我正在尝试用Python读取tiff文件的标记。该文件为RGB,每个通道具有uint16值。我目前正在使用TIFF文件:


但是,
img
是一个numpy数组,它只有像素值。例如,如何读取图像的x_分辨率?

不确定
tiffile
lib,但您可以使用
exifread
获得
x分辨率:

import exifread

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

300

我找到了另一个选择:

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()
使用是另一种可能的方法:

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]
编辑:在中删除了
TIFF文件
的副本,现在在scikit映像安装期间通过pip安装了
TIFF文件

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]