版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
最近发现的一个很简单,而且很有意思的一个项目,就是通过对手机拍摄照片的EXIF信息进行分析,可以获取到拍摄时间和拍摄时的GPS坐标。然后,通过地理逆编码,就可以把GPS对应的地点翻译出来。
有意思的用处
(1)对忘记信息的照片提供回忆线索。通过对拍摄时间地点的获取,很容易回忆出来当时拍摄时的情景。
(2)对你想知道的人进行定位。从别人那里要来一张图片,你就可以知道拍摄者的位置,拍摄时间。
依赖库
程序需要两个依赖库:exifread ,用来获取图片EXIF 信息; geopy,用来将GPS左边逆编码为地理信息。
地理信息的获取也可以在高德,百度,腾讯地图注册开发者获取api来完成,但是没有geopy方便。
可以通过安装两个依赖库
pip install exifread pip install geopy
注意:
图片一定要是原图,一定要是原图,一定要是原图。(无它,美图拍出来的照片都不行)
获取图片 EXIF信息
以这个图片为例(这张图片已经不是原图了。。):
对于一张图片,其实直接电脑右键,再点击属性,然后点击详细信息,就会发现,其实图片的EXIF信息(时间,GPS坐标等)就已经能查看了。
现在就是要借助exifread这个包把这些信息全都获取出来
import exifread img=exifread.process_file(open('picture.jpg','rb')) time=img['Image DateTime']print(time) latitude=img['GPS GPSLatitude']print(latitude) longitude=img['GPS GPSLongitude']print(longitude)
img其实是一个字典,根据字典的key值找出对应时间,经纬度就可以了
只不过这个时候的经纬度还是GPS坐标的形式
输出的结果为:
2019:08:0814:44:15[34,12,9286743/200000][108,57,56019287/1000000]
这样,需要的信息就获取到了。