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

使用piexif设置JPEG元数据:焦距、相机厂商及模型写入位置咨询

嘿,我来帮你搞清楚piexif里这些字典该怎么填——毕竟Regard3D要靠这些元数据做重建,咱们把每个字段的位置说清楚:

用piexif设置Regard3D所需的相机元数据

先给你拆解下你拿到的初始EXIF字典里各部分的作用,再逐个对应你要加的信息:

1. 相机厂商与模型:存在0th字典里

相机的品牌和型号信息属于**图像文件目录(Image IFD)**的内容,所以要放在0th这个字典中,对应piexif的两个标准标签:

  • 相机厂商:piexif.ImageIFD.Make
  • 相机模型:piexif.ImageIFD.Model

举个实际的代码例子:

import piexif

# 加载目标图片的EXIF数据
exif_dict = piexif.load("your_photo.jpg")

# 写入厂商和模型信息(替换成你实际的相机参数)
exif_dict["0th"][piexif.ImageIFD.Make] = "Nikon"
exif_dict["0th"][piexif.ImageIFD.Model] = "Z 7II"

# 把修改后的EXIF数据写回图片
exif_bytes = piexif.dump(exif_dict)
piexif.insert(exif_bytes, "your_photo.jpg")

2. 焦距信息:存在Exif字典里

焦距属于扩展EXIF目录(Exif IFD)的内容,要放在Exif字典中,对应的标签是piexif.ExifIFD.FocalLength。这里要注意:EXIF标准里焦距是用分数元组存储的(避免浮点精度问题),比如50mm就写成(5000, 100)(计算下来就是50)。

代码示例(承接上面的代码):

# 写入焦距,比如50mm就用(5000, 100)
exif_dict["Exif"][piexif.ExifIFD.FocalLength] = (5000, 100)

# 再次保存修改
exif_bytes = piexif.dump(exif_dict)
piexif.insert(exif_bytes, "your_photo.jpg")

小提示:验证写入是否正确

写完之后可以用ExifTool这类工具检查一下EXIF字段,确保厂商、模型和焦距都正确写入了——Regard3D会自动读取这些标准EXIF字段,只要格式对,重建时就能识别到相机参数啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:22:22