如何从Python中的TIFF图像中读取坐标(如坐标)?我从PIL尝试了foo._getexif()
,但收到了消息:
AttributeError:'TiffImageFile'对象没有属性'_getexif'
是否可以通过PIL获取它?
答案 0 :(得分:3)
from PIL import Image
from PIL.TiffTags import TAGS
with Image.open('image.tif') as img:
meta_dict = {TAGS[key] : img.tag[key] for key in img.tag.iterkeys()}
_getexif()仅适用于JPEG。 JPEG需要解压缩元数据,而TIFF则不需要。也就是说,PIL并不天真地读取Exif标签或目录(不那么简单)的TIFF元数据。
答案 1 :(得分:1)
ExifRead会为你想要的东西做点什么。尝试:
import exifread
# Open image file for reading (binary mode)
f = open('image.tif', 'rb')
# Return Exif tags
tags = exifread.process_file(f)
# Print the tag/ value pairs
for tag in tags.keys():
if tag not in ('JPEGThumbnail', 'TIFFThumbnail', 'Filename', 'EXIF MakerNote'):
print "Key: %s, value %s" % (tag, tags[tag])
答案 2 :(得分:0)
由于第一个答案对我不起作用,我做了以下调整:
from PIL import Image
from PIL.TiffTags import TAGS
img = Image.open('test.tif')
meta_dict = {TAGS[key] : img.tag[key] for key in img.tag_v2}
这里有一些我觉得有用的链接:
https://pillow.readthedocs.io/en/stable/_modules/PIL/TiffTags.html https://hhsprings.bitbucket.io/docs/programming/examples/python/PIL/ExifTags.html https://github.com/python-pillow/Pillow/issues/4940