现在的单反相机基本都不带gps,如果要给照片添加gps信息,需要一直开着官方的app,非常耗电,出去拍照,可能忘记打开app,或者手机电量不够都可能导致照片没有位置信息。

个人整理照片的时候,喜欢在手机的相册里通过位置找照片:

所以我就想把单反没有gps信息的照片手工补上gps信息。

在网上找了很多方法,大部分都很老,或者补上的gps 信息会位置偏移,就自己研究了一下:

--------------------------------------------------------------------------------------------------------------

思路这样:把没有位置信息的照片单独放一个文件夹(拷贝的副本,保持备份的习惯),

然后到地图拾取经纬度,然后填到照片的源数据。

1.准备一张照片

(建议先备份一下),我随便找了张壁纸

右键可以看到没有任何的位置信息

2.拾取坐标

到这个地址去直接拾取国际WGS84坐标
GPS工具箱管理https://web.gpstool.com/index

点击一个点,把这个点的经纬度记下来,

30.648850,104.045879

3.用python程序添加gps信息

然后用以下python代码

或者直接使用我打包好的exe程序。

阿里云盘分享https://www.aliyundrive.com/s/VeVn7bpQxtg提取码 1w0n

# ecoding:utf-8
import os
from PIL import Image
import piexif
import win32con
import win32uidef main():image_path = browse(True)[1]gps_str = input('请输入经纬度:')arr = gps_str.split(',')lng = float(arr[1])lat = float(arr[0])print(lng)print(lat)# 将经纬度与相对航高转为exif可用的经纬度与行高# exif需要的航高输入为(20000,2)格式,表示高度为20000/100米# exif需要的经度与维度为((12, 1), (20,1), (41000, 1000))格式表示12度20分41秒lng_exif = format_latlng(lng)lat_exif = format_latlng(lat)_dict = {"lng": lng_exif, "lat": lat_exif, "lng_ref": 'E', "lat_ref": 'N'}print("写入文件:", image_path)# 修改图片的exifread_modify_exif(image_path, _dict)def browse(mode: bool,default_name: str = "",title: str = "选择您的文件",file_type: str = "图片文件(*.png;*.jpg)|*.png;*.jpg|",path: str = "desktop"):"""弹出窗口返回保存或者选择的路径:param mode: False"为 "保存/另存为", "True"为 "打开":param default_name:默认输入文件名:param title:窗口提示:param file_type:可选的文件类型,所有文件(*.*)|*.*|图片文件(*.png;*.jpg)|*.png;*.jpg|:param path::return:[存储类型、文件路径、文件类型]"""api_flag = win32con.OFN_OVERWRITEPROMPT | win32con.OFN_FILEMUSTEXISTdlg = win32ui.CreateFileDialog(mode, None, default_name, api_flag, file_type)dlg.SetOFNTitle(title)dlg.SetOFNInitialDir(os.path.abspath(path))dlg.DoModal()filename = dlg.GetPathName()fileExt = dlg.GetFileExt()if os.path.exists(filename):if_pass = Trueelif not mode:if os.path.split(filename)[0] == '':if_pass = Falseelse:if_pass = Trueelse:if_pass = Falsereturn [if_pass, filename, fileExt]def format_latlng(latlng):"""经纬度十进制转为分秒"""degree = int(latlng)res_degree = latlng - degreeminute = int(res_degree * 60)res_minute = res_degree * 60 - minuteseconds = round(res_minute * 60.0, 3)return ((degree, 1), (minute, 1), (int(seconds * 1000), 1000))def read_modify_exif(image_path, _dict):""" 读取并且修改exif文件"""img = Image.open(image_path)  # 读图exif_dict = piexif.load(img.info['exif'])  # 提取exif信息exif_dict['GPS'][piexif.GPSIFD.GPSLongitude] = _dict['lng']  # 修改经度exif_dict['GPS'][piexif.GPSIFD.GPSLatitude] = _dict['lat']  # 修改纬度exif_dict['GPS'][piexif.GPSIFD.GPSLongitudeRef] = _dict['lng_ref']  # odm需要读取,一般为’W'exif_dict['GPS'][piexif.GPSIFD.GPSLatitudeRef] = _dict['lat_ref']  # 一般为‘N'exif_bytes = piexif.dump(exif_dict)print('lng:{} lat:{}'.format(exif_dict['GPS'][piexif.GPSIFD.GPSLongitude],exif_dict['GPS'][piexif.GPSIFD.GPSLatitude]))piexif.insert(exif_bytes, image_path)if __name__ == "__main__":main()

把python代码保存到本地py文件

双机执行会提示选择一个图片文件,我选择之前准备的图片文件。

然后会提示输入经纬度,则把上面准备的坐标输入回车即可。

然后图片就有经纬度信息了

可以用这个网站来看看位置信息

在线查看图片Exif信息_定位信息_GPS信息 - StrErr.com查看图片Exif信息https://www.strerr.com/cn/exif.html

然后就成功啦

这种方法有弊端,位置信息全靠记忆,比较麻烦,后期文章更新通过轨迹信息批量给照片添加位置信息的方法。

单反相机照片用python 脚本添加gps位置信息相关推荐

  1. python获取原图GPS位置信息,轻松得到你的活动轨迹

    点击上方"AI搞事情"关注我们 一.图像EXIF信息 介绍 EXIF(Exchangeable image file format,可交换图像文件格式)是专门为数码相机的照片设定的 ...

  2. Python获取原图GPS位置信息,轻松得到你的活动轨迹!

    一.图像EXIF信息 介绍 EXIF(Exchangeable image file format,可交换图像文件格式)是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据,如拍摄时间. ...

  3. qpython获取手机gps_基于Python获取照片的GPS位置信息

    这篇文章主要介绍了基于Python获取照片的GPS位置信息,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 昨天听人说,用手机拍照会带着GPS信息,原 ...

  4. 获取手机或电脑GPS位置信息(定位平台)

    获取GPS定位平台 原理: javascript访问手机GPS位置信息 链接: http://14.18.103.46:8000/location/index (电信某云无法直接开启80端口,坑 ̄へ ̄ ...

  5. 从EXIF JPEG图片中提取GPS位置信息

    符合EXIFJPEG标准的图片,除了记录图片压缩数据之外,在存储了拍摄参数,其中包括拍摄时GPS参数信息,因此,可以利用程序从EXIF元数据信息中解析提取GPS位置信息. 1. Java读取EXIF信 ...

  6. 照片的GPS位置信息读取

    一.照片的 EXIF信息 手机.相机拍摄的照片会自带一些诸如拍摄时间.地点.镜头型号.曝光度.图像尺寸等附加信息,在Windows上可以通过右键文件属性查看和修改相关参数. EXIF (exchang ...

  7. python 基因序列提取_科学网—简单的Python脚本提取对应位置基因序列(fasta文件) - 王彬忠的博文...

    最近,用Python脚本提取,在基因号已知,位置已知条件下,相对应位置的基因序列时发现,这样很简单但是很实用的脚本,在网上却比较难找.而且,能被找到的脚本,相对于具有初级编程能力的人而言,有点难.本人 ...

  8. 手机gps信息提取并储存到本地_通信人的实用技巧,如何在日常拍的照片里提取GPS位置信息...

    日常基站勘查和投诉处理过程中需要拍照,采集无线环境等相关信息,通常都需要记录经纬度信息,这些单个的照片信息对于我们来说只是一个单独的点,日积月累后的这种空间信息对从事网优的人就是一种资源,规划和处理投 ...

  9. python读取图片信息gps位置

    直接写代码吧 #改进检测地区 import os import exifread import re import sys import requests import json__author__ ...

最新文章

  1. android studio 3.1坑,Android Studio3.1升级遇到的坑
  2. rmReport 自适应行高(自动行高)
  3. 信息系统项目管理师-项目合同管理考点笔记
  4. C#语言-07.文件操作
  5. ubuntu15.04配置php,Linux_Ubuntu 15.04上安装Justniffer的详细教程,Justniffer 是一个可用于替代 Snor - phpStudy...
  6. [小技巧]你真的了解C#中的Math.Round么?
  7. 汇编语言笔记(一):基础
  8. java byte 二维数组_[编程入门]二维数组的转置-题解(Java代码)
  9. Dubbo2.6.5入门——管控台的安装
  10. 南阳71(独木舟上的旅行)
  11. 火山引擎智能容器云 veCompass v3.0 重磅发布!
  12. Servlet转发forward和重定向response.sendRedirect()区别
  13. 远程登录(Telnet)的配置
  14. Git 代码防丢指南,再也不怕丢失代码了!
  15. 配置隐藏计算机磁盘,这2种隐藏硬盘的方法 你绝对想不到!
  16. go语言介绍及应用场景分析
  17. 计算机开关机命令,电脑自动关机命令
  18. sql注入检测工具 mysql_Java自动化SQL注入测试工具—jSQL Injection v0.5
  19. 最好的投资理财工具 - 基金
  20. [网络工程师]-IEEE 802.3定义的传输介质特性

热门文章

  1. 视觉SLAM十四讲CH8代码解析及课后习题详解
  2. [VUE2/VUE3]基于echarts的动态折线图组件
  3. 简单的jq实现树形菜单
  4. 苹果电容笔和普通电容笔有什么区别?实用平板电脑电容笔推荐
  5. motan学习笔记 二 motan架构分析
  6. 一文学会LaTeX基础
  7. sed命令定义和常用方式
  8. 04_服务注册Eureka
  9. 亚马逊国际站获取商品列表
  10. 如何从零学习 React 技术栈