python如何使用exifread获取图片的经纬度信息

python如何使用exifread获取图片的经纬度信息

废话不多说,直接进主题。先下载exifread包:pip install exifread

先看下我们的图片属性 直接上代码

import exifread

if __name__ == __main__:
    f = open("D:\IdeaPorject\datasets\Ir\DJI_20210927093017_0001_T.JPG", rb)
    contents = exifread.process_file(f)

如此,我们获取到了该图片所有属性参数,

可以看到,返回值是一个字典,其中所有的属性都是IfdTag object;同时,我们也可以看到GPS信息:

  1. 如果仅做展示,直接获取、输出即可;
print("经度 =", contents["GPS GPSLongitude"], contents[GPS GPSLatitudeRef])
print("纬度 =", contents["GPS GPSLatitude"], contents[GPS GPSLongitudeRef])
  1. 若要对经纬度信息进一步计算,且仔细看这个结构;

这里,我将对经纬度的‘度分秒’转换成小数,仅做展示:

longitude = contents["GPS GPSLongitude"].values
 longitude_f = longitude[0].num/longitude[0].den + (longitude[1].num/longitude[1].den/60) + (longitude[2].num/longitude[2].den/3600)
 latitude = contents["GPS GPSLatitude"].values
 latitude_f = latitude[0].num/latitude[0].den + (latitude[1].num/latitude[1].den/60) + (latitude[2].num/latitude[2].den/3600)
 print("经度 =", longitude_f, contents[GPS GPSLatitudeRef])
 print("纬度 =", latitude_f, contents[GPS GPSLongitudeRef])

实际使用时,longitude[0]、[1](latitude)可以直接取.num值,对于Ratio的分数值稍加留意即可

经验分享 程序员 微信小程序 职场和发展