EXIF
可交换图像文件格式(Exchangeable image file format,简称Exif),专门为数码相机的照片设定的,用于记录照片的属性信息和拍摄数据。Exif信息以0xFFE1作为开头标记,后两个字节表示Exif信息的长度,所以Exif信息最大为64kb,而内部采用TIFF格式。
Python读取Exif信息
通过exifread 第三方库来去读取照片的Exif信息。首先需要安装该库。
pip install exifread
读取照片Exif信息
file="your.jpg"
f=open(file,'rb')
tags = exifread.process_file(f)
f.close()
print(tags['Image ImageWidth']) # 获取图片宽度信息
print(tags['Image Orientation']) # 照片拍摄方向
Exif信息说明
Exif标识
GPS信息
图片相关
坐标转换
通过exifread获取的经纬度信息格式通常是下面这样的
纬度 [30, 31, 466751/10000] 经度 [114, 21, 2331/250]
转换公式如下:
度 = 度 + 分/60 + 秒/3600
[30, 31, 466751/10000] = 30 + 31 / 60 + 46.6751 / 3600 = 30.529631972222223
因此坐标转换代码如下:
def convert_gps(coord_arr):
arr = str(coord_arr).replace('[', '').replace(']', '').split(', ')
d = float(arr[0])
m = float(arr[1])
s = float(arr[2].split('/')[0]) / float(arr[2].split('/')[1])
源代码如下:
import
将坐标信息保存在CSV文件中,就可以进行照片点位置可视化啦。
可视化
如果你嫌麻烦,那么推荐Mapbox出品的可视化工具进行可视化,直接将上面得到的CSV文件拖入即可。
Data explorerwww.mapbox.cn以下是我2019年的照片位置可视化。