从python中的jpeg2000图像中提取元数据

Posted

技术标签:

【中文标题】从python中的jpeg2000图像中提取元数据【英文标题】:extracting metadata from jpeg2000 images in python 【发布时间】:2015-05-15 12:42:48 【问题描述】:

我想更新一系列 jpeg2000 图像中的元数据。我想用python来做。我查看了 glymur 并能够提取 xml etree:

import glymur
from lxml import etree

jp2 = glymur.Jp2k(file)
metaroot = jp2.box[3].xml  # 4th element in box contains the metadata I want
fitshdr = metaroot[0]  # the metadata originated as a fits header

然后我可以获取标签和标签值:

for kw in fitshdr:
    tag = kw.tag
    val = fitshdr.findtext(tag)
    # do something with tags and values

我的问题是:有没有更简单的方法?这似乎不必要地复杂。

【问题讨论】:

有人向我指出 sunpy 包有很好的功能——参见 sunpy.io.jp2.get_header 或者只是通过 sunpy.io.jp2.read(filepath) 读取文件,它返回 (data,header) 元组的列表。 【参考方案1】:

正如@Jonathan 所说,您可以使用在太阳物理学家和天文学家中很流行的sunpy 模块:

from sunpy.io import jp2
path_to_jp2 = 'example.jp2'
header = jp2.read(path_to_jp2)  # type:<class 'list'>

此函数记录在sunpy.io 下。你也可以看看它的source code。

【讨论】:

以上是关于从python中的jpeg2000图像中提取元数据的主要内容,如果未能解决你的问题,请参考以下文章

从数据转储中提取 JPEG/PNG/GIF 图像

如何从 gdalinfo 输出中提取特定信息?

使用 libjpeg / C++ 从文件中提取 JPEG 编码位图 (BMP) 图像

如何从 HDF5 文件中提取单个 JPEG 图像

使用nodejs从xlsx文档中提取jpeg

使用libjpeg C ++ Library从JPEG图像中提取RGB