【发布时间】:2018-12-29 18:08:16
【问题描述】:
我想我有一个相当复杂的问题:
我使用 EXIF 提取器从文件夹中的图片中提取一些元数据。它为每张带有元数据的图片生成一个 txt 文件。现在我正在寻找一个程序来仅提取所有 txt 文件的一些信息(GPS 数据)并用它生成一个 csv 表。我认为 Python 可以很好地解决问题,但这并不是我的强项..
包含每张图片元数据的 txt 文件如下所示:
---- ExifTool ----
ExifTool 版本号:11.23
警告:[次要] MakerNotes 无法识别
----系统----
文件名:GOPR0118.jpg
目录:Z:/myDirectory
文件大小:4.3 MB
文件修改日期/时间:2018:12:27 15:20:37+01:00
文件访问日期/时间:2018:12:29 18:33:59+01:00
文件创建日期/时间:2018:12:28 16:41:25+01:00
文件权限:rw-rw-rw-
---- 文件----
文件类型:JPEG
文件类型扩展名:jpg
MIME 类型:图片/jpeg
Exif 字节顺序:大端(摩托罗拉,MM)
图像宽度:4000
图像高度:3000
编码过程:基线DCT,霍夫曼编码
每个样本的位数:8
颜色成分:3
Y Cb Cr 子采样:YCbCr4:2:2 (2 1)
---- IFD0 ----
图片说明:DCIM\100GOPRO\GOPR0118.JPG
品牌:GoPro
相机型号名称:HERO7 Black
方向:水平(正常)
X 分辨率:72
Y 分辨率:72
分辨率单位:英寸
软件:HD7.01.01.61.00
修改日期:2018:12:27 15:20:37
Y Cb Cr 定位:居中
---- ExifIFD ----
曝光时间:1/581
F 数:2.8
曝光程序:程序 AEp>
ISO:100
Exif 版本:0221
日期/时间原文:2018:12:27 15:20:37
创建日期:2018:12:27 15:20:37
组件配置:Y、Cb、Cr、-
每像素压缩位数:0.003367003367
快门速度值:1/512
光圈值:2.8
曝光补偿:0
最大光圈值:2.8
主体距离:0 米
测光模式:平均
光源:未知
闪光灯:没有闪光灯功能
焦距:3.0 毫米
Flashpix 版本:....
色彩空间:未知 (0)
Exif 图片宽度:4000
Exif 图片高度:3000
曝光指数:2147483595
感应方式:单片色区
文件来源:数码相机
场景类型:直接拍摄
自定义渲染:正常
曝光模式:自动
白平衡:自动
数码变焦倍率:1
35 毫米格式焦距:15 毫米
场景捕捉类型:风景
增益控制:无
对比度:正常
饱和度:正常
锐度:硬
设备设置说明:(二进制数据4字节,使用-b选项 提取)
拍摄对象距离范围:未知
序列号:C3281324633583
---- InteropIFD ----
互操作性索引:R98 - DCF 基本文件 (sRGB)
互操作性版本:0100
---- GPS ----
GPS 纬度参考:北
GPS 纬度:47 度 32' 5.08"
GPS 经度参考:东
GPS 经度:7 度 38' 30.49"
GPS 高度参考:海平面以上
GPS 高度:391.343 米
GPS 时间戳:14:20:36
GPS 日期戳:2018:12:27
---- IFD1 ----
压缩:JPEG(旧式)
X 分辨率:72
Y 分辨率:72
分辨率单位:英寸
缩略图偏移:44032
缩略图长度:17046
缩略图:(二进制数据17046字节,使用-b 提取选项)
---- MPF0 ----
强积金版本:0100
图像数量:2
图像 UID 列表:(二进制数据 66 字节,使用 -b 选项 提取)
总帧数:1
---- MPImage1 ----
MP 图像标志:代表图像,从属 父图像
MP 图像格式:JPEG
MP 图像类型:基线 MP 主图像
MP 图像长度:4270517
MP 图像开始:0
相关图像 1 条目编号:2
从属图像 2 条目编号:0
---- MPImage2 ----
MP 图像标志:从属子图像
MP 图像格式:JPEG
MP 图像类型:大缩略图(相当于 VGA)
MP 图像长度:279747
MP 图像开始:4270517
从属图像 1 条目编号:0
从属图像 2 条目编号:0
预览图片:(二进制数据279747字节,使用-b 提取选项)
---- GoPro ----
设备 ID:1
设备名称:照片全局设置
固件版本:HD7.01.01.61.00
GoPro LINF:LAJ8052335601085
GoPro CINF:205 66 180 5 244 37 205 102 27 201 50 195 54 92 97 236
相机序列号:C3281324633583
相机型号名称:HERO7 Black
GoPro MUID:95699661 1724720628 3274885403 3965803574 0 0 0 0
GoPro CMOD:17
GoPro MTYP:11
自动旋转:向上
数码变焦:是的
GoPro DZST:0
GoPro SMTR:否
专业调音:关闭
白平衡:
清晰度:
色彩模式:
GoPro EXPT:自动
自动 ISO 最大值:0
自动 ISO 最小值:0
曝光补偿:
速率:4_1SEC
照片分辨率:12MP_W
HDR 设置:关闭
GoPro PRAW : 否
GoPro HFLG:0
---- 复合----
光圈:2.8
GPS 高度:海拔 391.3 m
GPS 日期/时间:2018:12:27 14:20:36Z
GPS 纬度:47 度 32' 5.08" N
GPS 经度:7 度 38' 30.49" E
GPS 位置:北纬 47 度 32' 5.08",北纬 7 度 38' 30.49" E
图像尺寸:4000x3000
百万像素:12.0
35 毫米等效比例因子:5.0
快门速度:1/581
混乱圈:0.006 毫米
视野:100.4 度
焦距:3.0 毫米(相当于 35 毫米:15.0 毫米)
超焦距:0.53 m
光值:12.2
csv 模板应包含文件名和 GPS 数据,并显示如下:
|---------------------|----------------------|--------------------|
| filename | lat | long |
|---------------------|----------------------|--------------------|
| GOPR0118.jpg | 47 deg 32' 5.08" N |7 deg 38' 30.49" E |
|---------------------|----------------------|--------------------|
非常感谢任何帮助!
干杯 法比
【问题讨论】:
-
使用 Python EXIF 库并直接访问信息会容易得多。然后直接编写 CSV 文件将非常简单。
-
@Mark Tolonen:感谢您的回复。我知道这一定看起来我想让别人做我的工作。我是 Python 的菜鸟,我做了一些研究并尝试了一些代码,但它们没有用,所以我想我只是在这里详细介绍一下我的问题,而不是放一些不起作用的代码完全没有。
-
@Martin Evans:感谢您的意见,我没有意识到有这样的解决方案。非常感谢您的意见。