在 Python 中提取图像元数据的指南

本文详细讲解如何使用Python的Pillow库来提取图片的EXIF元数据,包括安装Pillow库,使用Prettytable库以表格形式展示元数据,以及具体提取和解析元数据的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文详细介绍了如何在 Python 中分离图片元数据。 当我们使用电脑相机或手机拍照时,相机会使用可交换图像文件格式 (EXIF) 指南来存储图片。 EXIF 原则使用元标签来确定有关图片的数据。

假设您需要在 Python 中获取 EXIF 标准图片的元数据,那么此时您希望利用 Python 库来处理图片。 为了在 Python 中处理图片,我们大体上使用了最著名的 Python 图片管理库 Pillow。
安装依赖

To know about the blog in English: Extracting metadata from images in Python

1)Python枕头库

Pillow是真正的Python图片处理库,众多的Python图片处理和AI库都是基于它的。 要为您的 Python 环境引入 Pillow,请在您的订单简介 (Windows) 或终端(Linux 和 macOS)上运行随附的 pip 介绍订单:

pip install Pillow

2) Python 漂亮的库


Prettytable 是一个开源 Python 库,用于以表格格式打印数据。 我们将在本教程中使用这个库以表格格式打印所有元数据信息。 要为您的 Python 环境安装漂亮的库,请使用以下 pip install 命令:

 

pip install prettytable

在Python中提取图像元数据的方法?

首先启动您最好的 Python IDE 或文本编辑器,然后从 Pillow 和漂亮的表格库中导入所需的模块。

#load modules
from PIL import Image
from PIL.ExifTags import TAGS
from prettytable import PrettyTable

接下来,设置一个 Python 标识符 image_filename ,它将保存图像的文件名,并初始化漂亮表库的 PrettyTable() 模块对象并设置其字段。

image_filename = "image.jpg"

#initialiting prettytable object
table = PrettyTable()

#setting table feilds name
table.field_names = ["MetaTags", "Values"]

使用 Image 模块的 Python 脚本。

#load image
my_image = Image.open(image_filename)

getexif() 策略只返回标签 ID 及其质量,而不是标签名称。 这就是我们同样导入 PIL.ExifTags 标签的原因,这些标签可以根据其 ID 恢复 EXIF 标签名称。 目前,我们将遍历 img_exif_data 中存在的 ID,并使用 TAGS.get() 策略和使用 img_exif_data.get() 技术的质量获取它们的标签名称。

for id  in img_exif_data:
    tag_name = TAGS.get(id, id)
    data = img_exif_data.get(id)
    
    #if data in bytes
    if isinstance(data, bytes):
        data = data.decode()
    #add tag name and data into table
    table.add_row([tag_name, data])

#display data
print(table)

Program

#load modules
from PIL import Image
from PIL.ExifTags import TAGS
from prettytable import PrettyTable

image_filename = "image.jpg"

#initialiting prettytable object
table = PrettyTable()

#sett
采用python,opencv开源库实现图片提取曲线数据 使用说明: openpic 可以选择采用自动采集测点数据或手动采集测点数据 操作过程:第一步裁剪,crop, 鼠标响应step_crop, 鼠标左键选裁剪的矩形区域,选中后键盘n表示确认进入下一步骤; 无需裁剪时键盘o直接进入下一步骤;esc表示取消,退回到开始 第二步矫正,correction,鼠标响应step_correction, 鼠标左键点选梯形矫正的四个顶点, 键盘u左上,i右上,j左下,k右下,切换当前有效操作做的顶点, 键盘w up, s down, a left, d right 或上下左右键,微调鼠标选点位置,detail display放大显示当前选点的细节; 键盘t键操作矫正,n键表示确认矫正结果进入下一步骤,b键表示取消矫正重新选梯形顶点 第三步坐标系,coordinate,鼠标响应step_coordinate, 鼠标左键点选xy坐标系的原点、x轴最大刻度点、y轴最大刻度点。 xy轴的坐标刻度值由选择图片窗口的x、y最大最小值决定,xy轴必须原点处交汇但可以从非零开始分别计算刻度 键盘u y轴,j 坐标原点,k x轴,切换当前鼠标点选的有效点 键盘w up, s down, a left, d right 或上下左右键,微调鼠标选点位置,detail display放大显示当前选点的细节; 默认图片已经矫正,坐标系仅支持直角坐标系,在设置坐标系时原点可以任意移动,x轴y轴只能依据原点位置在直角轴上移动 键盘n表示确认坐标系设置结果进入下一步,b表示取消退回到上一步,esc退回到开始 第四步采集数据:手动采集manual_sample中使用sample_points,鼠标响应step_sample_points,鼠标左键点选要采集的测点,键盘n表示确认选择开始选下一个点 键盘o表示选择完输出测点数据到csv文件。 键盘w up, s down, a left, d right 或上下左右键,微调鼠标选点位置,detail display放大显示当前选点的细节; 自动采集auto_sample中使用tracecolor,鼠标响应step_color_picker。自动采集原理为先选择曲线,然后自动等间隔采集曲线上点 开始界面中没有自动采集点数,在使用auto的函数调用时添加。 自动采集以tracecolor颜色提取构建曲线,曲线点数据平滑,间隔重采样为主要工作过程。在图片中存在同色非相关区域时,可采用颜色提取刷,手动确定曲线的有效范围 键盘l切换提取刷开关,提取刷功能开启时,鼠标右键按住滑动刷出有效的采集范围。 鼠标左键点选的位置作为提取颜色,同时具备单一颜色固定阈值提取曲线和多个颜色自动确定阈值范围的提取曲线两种模式。 键盘p选择鼠标位置的点颜色作为多个颜色参考提取,移动鼠标位置(或键盘移动)采用p键选择多个颜色点,确定提取阈值范围 键盘n表示完成颜色选择开始曲线提取,显示提取后黑白曲线图,键盘b取消提取退回上一步重新操作 esc取消退回到开始 键盘o表示接受曲线提取结果,开始自动间隔采集计算曲线上点,并输出csv文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值