我尝试使用piexif模块为jpegs设置特定的元数据。我从piexif.load()获得了相应的dicts。
data = piexif.load()
。
他们返回{'GPS':{},'Exif':{},'Interop':{},'thumbnail':无,'1st':{},'0th':{}}。 (也许答案非常明显,但我对这些话语有点困惑)
但是,我想知道在哪里以及写些什么来设置我的焦距,相机制造商和型号。
原因是,我想使用http://www.regard3d.org/index.php/documentation/details/picture-set的Regard3D重建GUI。
因此,我需要将jpeg的元数据和相机的数据添加到相机数据库中。这是三角测量步骤所必需的。
非常感谢您提前
答案 0 :(得分:0)
标签在标准上与教程中的不同。它们应该是EXIF格式的Make,Model,Focal Length。
答案 1 :(得分:0)
我相信使用piexif可以完成的工作是有限的。虽然,我找不到相机的品牌/型号。 但是,您应该能够像这样访问焦距。 (当然,有多种方法可以实现这一点。这正是我想出的)
import piexif
from PIL import Image
img = Image.open('input filename or path')
# Defining dictionary
exif_dict = piexif.FocalLength(img.info["exif"])
if piexif.ExifIFD.FocalLength in exif_dict["Exif"]:
print("Current Focal Length is ", exif_dict["Exif"][piexif.ExifIFD.FocalLength])
else:
print("No Focal Length is set")
# Getting User Input
fl = input("Enter a Focal Length: ")
# Applying user variable
exif_dict["Exif"][piexif.ExifIFD.LensMake] = fl
# Converting to bytes
exif_bytes = piexif.dump(exif_dict)
#Saving Image
img.save("output filename or path", exif=exif_bytes)
虽然看起来确实有镜头品牌和镜头型号。
piexif.ExifIFD.LensMake
piexif.ExifIFD.LensModel
此外,可能值得注意的是,该值在某些图像上可能无法更改,有时更新图像的值似乎不适用于Windows 10 ui中显示的同一字段。我不确定这是我正在测试的图像的错误还是兼容性问题。
您可能还需要检查piexif docs,因为可能还会有更多信息。