Читайте TIFF теги в Python - PullRequest
1 голос
/ 07 марта 2019

Я пытаюсь прочитать теги файла TIFF в Python. Файл RGB со значениями uint16 на канал. Я в настоящее время использую tifffile :

import tifffile

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

Тем не менее, img - это пустой массив, который имеет только пиксельные значения. Как я могу прочитать, например, x_resolution изображения?

Ответы [ 3 ]

2 голосов
/ 07 марта 2019

Я нашел альтернативу:

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 голосов
/ 07 марта 2019

Не уверен насчет tifffile lib, но вы можете получить x resolution с exifread:

import exifread

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

Выход:

300
0 голосов
/ 07 марта 2019

Использование 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]
...