You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python 2.7环境下OpenCV拍摄图片的元数据编辑方法咨询

解决Python 2.7中编辑图片EXIF元数据的方案

方案一:正确使用piexif库(可能你之前没找对标签)

很多人误以为piexif不支持相机厂商、型号和焦距,但其实它是支持的,只是需要对应正确的EXIF标签键。以下是具体实现代码:

首先确保你已经安装了piexif:

pip install piexif

然后编写代码添加元数据:

import piexif

img_path = "your_image.jpg"

# 读取图片现有EXIF数据(如果没有则自动初始化空字典)
exif_dict = piexif.load(img_path)

# 设置相机厂商、型号和焦距
# 厂商和型号直接填字符串,焦距用有理数值表示(比如50mm就是(50,1),3.5mm就是(7,2))
exif_dict["0th"][piexif.ImageIFD.Make] = "Canon"  # 替换为你的相机厂商
exif_dict["0th"][piexif.ImageIFD.Model] = "EOS 5D Mark IV"  # 替换为你的相机型号
exif_dict["Exif"][piexif.ExifIFD.FocalLength] = (50, 1)  # 自定义焦距数值

# 将修改后的EXIF数据写入原图片
exif_bytes = piexif.dump(exif_dict)
piexif.insert(exif_bytes, img_path)

print("元数据已成功添加!")

如果之前你用piexif没成功,大概率是标签键用错了,上面的代码直接调用了piexif内置的常量,不会出现匹配错误。


方案二:调用ExifTool命令行工具(兼容所有属性,不受Python库限制)

如果pyexiv2安装失败,piexif也不符合需求,那ExifTool是最稳妥的选择——它是一个功能极强的跨平台元数据处理工具,支持几乎所有图片格式的元数据编辑,而且不需要依赖特殊的Python库。

步骤1:安装ExifTool

  • Windows:下载解压ExifTool压缩包,把exiftool.exe放到系统PATH目录,或者记住它的绝对路径
  • macOS:通过Homebrew安装:brew install exiftool
  • Linux:用包管理器安装,比如Ubuntu:sudo apt install libimage-exiftool-perl

步骤2:Python中通过subprocess调用ExifTool

import subprocess

img_path = "your_image.jpg"

# 定义要设置的元数据参数
camera_make = "Canon"
camera_model = "EOS 5D Mark IV"
focal_length = "50.0"

# 构建ExifTool命令
cmd = [
    "exiftool",
    f"-Make={camera_make}",
    f"-Model={camera_model}",
    f"-FocalLength={focal_length}",
    "-overwrite_original",  # 直接覆盖原文件,不加的话会生成带_original后缀的备份
    img_path
]

# 执行命令并处理结果
try:
    subprocess.check_output(cmd, stderr=subprocess.STDOUT)
    print("元数据已成功添加!")
except subprocess.CalledProcessError as e:
    print("执行出错:", e.output)

这个方案的优势是支持所有EXIF属性,不受Python库的限制,而且在Python2.7下完全兼容——subprocess是Python标准库的一部分,不需要额外安装其他包。


补充:关于pyexiv2安装失败的问题

Python2.7的pyexiv2版本比较老旧,依赖的系统库(比如exiv2)版本兼容性差。如果一定要尝试使用它,可以安装专门适配Python2.7的旧版本:

pip install pyexiv2==2.3.0

不过这个版本已经停止维护,存在潜在bug,所以还是更推荐前面的两个方案。

内容的提问来源于stack exchange,提问作者figbar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 11:22:45