当前位置: 首页 > 知识库问答 >
问题:

在Python中读取tiff图像元数据

马国源
2023-03-14

如何从Python中的TIFF图像中读取元数据(如坐标)?我尝试了来自PIL的foo._getexif(),但收到消息:

AttributeError:“TiffImageFile”对象没有属性“\u getexif”

有可能用PIL得到它吗?

共有3个答案

卞琨
2023-03-14

由于第一个答案对我不起作用,我做了以下调整:

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

顾俊誉
2023-03-14

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])
仲鸿风
2023-03-14
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元数据。

 类似资料:
  • 我目前正在编写一个应用程序来读取TIFF文件,然后执行一些压缩算法。我已经成功地做到了这一点...但是现在,我想读取TIFF图像的元数据,但似乎找不到正确的方法。 我应该使用什么库和函数?

  • 我在写一个程序,它应该接受一堆tiff的,并把它们放在一起。我让它对我读入的大多数图像文件都起作用,但当我尝试读入它们时,它们中的一大部分会抛出一个错误。 是的,我捕捉到了越界异常,所以我们不用担心这个。我的问题是我得到以下错误: iIOException:读取图像元数据时出现I/O错误!在com.sun.media.imageioimpl.plugins.tiff.tiffimagereader

  • 问题内容: PIL本身不支持G4图像,是否还有其他python软件包呢?我需要阅读多页TIFF图像并将其即时转换为gif / png以便在网页中提供。(我不是立即转换它们,而是樱桃挑选它们进行显示)。 我考虑过使用具有该转换功能的ImageMagick,但我希望能够进入TIFF文件并查看其中的内容以进行索引。 问题答案: 请参阅这篇文章,了解针对PIL的补丁,用于包装FreeImage的项目以及用

  • 问题内容: 我尝试了以下代码来完成读取和写入tiff图像的任务: 但是,当我运行代码时,出现以下错误消息: 知道如何解决这个问题吗? 问题答案: 读取TIFF并输出BMP的最简单方法是使用ImageIO类: 要使此功能正常工作,您唯一需要做的另一件事是确保已将JAI ImageIO JAR添加到类路径中,因为如果没有此库中的插件,JRE不会处理BMP和TIFF。 如果由于某种原因不能使用JAI I

  • 问题内容: 我正在使用PIL。如何将图片的EXIF数据转换为字典? 问题答案: 您可以使用PIL映像的受保护方法。 这应该给您一个由EXIF数字标签索引的字典。如果您希望字典由实际的EXIF标记名称字符串索引,请尝试以下操作:

  • 问题内容: 有没有人有一种方法可以在Python中导入每通道16位,3通道TIFF图像? 我还没有找到一种在处理TIFF格式时可以保留每个通道16位深度的方法。我希望一些乐于助人的人能够解决。 这是到目前为止我没有成功尝试过的结果以及结果的列表: 到目前为止,我发现的唯一解决方案是使用ImageMagick将图像转换为PNG。然后,沼泽标准会毫无问题地读取PNG文件。 我遇到的另一个问题是将任何n