JPG图像的编码相关内容太多不在多说了大家随手能查很多资料。
今天重点说说图像数据中的GPS信息以及飞机、相机姿态角度数据提取。
JPG作为复杂的图像数据很多人都知道存在一个叫做EXIF的数据规范,在这个数据规范中,包含了相机数据、拍摄数据、厂家信息以及GPS信息这样很多个数据信息,其中已经有GPS信息,当然,这是按照EXIF信息元的标准来写入的,查相关资料还是比较充分,整个这个部分总体的概念就是一个像二叉树又不像二叉树的链表,从前到后整体是顺序存储的,一般格式如下
上图中A是标志标示字,B是类型标识,C和D是变化的,一般情况C标示数据长度,而D一定注意,如果B所指类型是简单值则D就是对应的数值,如果B的所指的值是一个复杂数据或者可能是多组属于的,则D项应该是这些数据被存储的位置的偏移量(该偏移量还不包括前面标示本节开始的标志字之前的那些存储区域)
无论如何,这样的方式中找到常规的EXIF数据还是比较简单的,例如下图中就给出一个JPG图像开头部分的数据示意图;
图中有JPG标志字,后面有本节数据长度,注意A598这个数字在查找完本节侯如果查找下一节(XPM数据)时候要用。
注意上图中的GPS标识数据2588,这就是一个典型的指针概念,这个数据区域要按照前一个小图数据理解,尤其是第D组数据,起始就是告诉你GPS信息在后面你要再用给你的偏移量去寻找了。
当然了,找到GPS所在位置之后,还是记得,一定要按照第一个小图(ABCD四组数)的概念去解读,当然,里面具体经纬度数据给你的优势一个偏移地址,你还要再次去OFFSET去读数据计算的。(读者是不是觉得这个操作很烦,的确很烦,但这样的规定的确有他的好处的)

当然,说到这里,其实也就是很多人心目中如何寻找JPG图片里面的GPS数据了
【事实上,GPS数据在JPG文件中可能会有两处的】
第二种读取GPS数据的方法就是读取第二节数据,第二节数据往往是XPM数据,这种数据元被定义成了一种开放模式,大疆无人机的数据正是利用了XPM的开放模式把自己的GPS信息直接写入了JPG图像文件。
当然,写入图像文件的不仅仅是GPS数据,起始还有相机拍照时候的倾斜角度、拍照时候飞机的航向角等等数据,总体上可以看到如下所示的数据:

GpsLatitude
GpsLongitude
AbsoluteAltitude
RelativeAltitude
GimbalRollDegree
GimbalYawDegree
GimbalPitchDegree
FlightRollDegree
FlightYawDegree
FlightPitchDegree
有意思的是这些数据被以XML的格式写入了JPG图像文件的XPM数据段中

从下面这个XPM节中可以看到
开始的位置就是第一节(基本节)的长度A598加上字头4个字节,然后就可以看到标示位FFE1了,后面紧跟本节的数据总长度,那么,在这个节里面,就能看到DJI的数据项目,后面的内容,我相信,能理解如何找到XPM信息节的入口和得到他的总数据段长度,从中获得各个项应该不是难事了。
最后,把我写完的测试程序传上来大家可以看看,小工具不依赖任何开发框架或者运行组件,只要WINDOWS就能正常使用。

【附件】:实用工具下载(免安装,不依赖任何开发运行环境,不需要任何组件,无任何广告嵌入。

JPG图像exif和XPM信息中GPS数据姿态数据航向角数据的提取相关推荐

  1. 如何给定两个gps坐标 算出航向角_机器人开发如何配置ROS中的TF变换关系?

    当我们进行机器人开发时,常常需要面对TF坐标转换,本文以 Autolabor Pro1 与思岚激光雷达为例,介绍ROS TF的使用. Autolabor Pro1是什么? Autolabor Pro1 ...

  2. 如何给定两个gps坐标 算出航向角_如何获得飞机的小扰动模型

    一.飞机运动方程分析 二.线性化的基本步骤 三.纵向运动线性小扰动模型 四.横航向运动线性小扰动模型 五.参考文献 一.飞机运动方程分析 要描述一个飞机的飞行状态,我们通常需要9个状态变量,即: 即飞 ...

  3. 提取Exif信息中GPS经纬度,转化为double方法

    首先大致说下exif信息.感谢百度百科君~ Exif是一种图象文件格式,它的数据存储与JPEG格式是完全相同的.实际上Exif格式就是在JPEG格式头部插入了数码照片的信息,包括拍摄时的光圈.快门.白 ...

  4. JAVA 拍照 exif GPS_读取图片EXIF块中GPS信息,转换为高德地图API坐标

    最近两天做了一个需求,从APP端上传的照片信息里面读取出GPS位置信息,然后翻译成可读的地点信息. 总结一下,分为三步: (1)提取图片中的GPS信息,使用到了metadata-extractor; ...

  5. JPEG图像EXIF数据信息的解析

    刚刚结束本科生活的我,那会还比较颓废,但是因为读研,导致宝宝七月初就到了学校,来了以后也不知道该做什么,就出去浪呀~哈哈,不料来了不久后接到老师的任务,让宝宝把JPEG图像的EXIF信息解读出来,当时 ...

  6. exif信息中的数据_什么是EXIF数据,如何将其从照片中删除?

    exif信息中的数据 A photo's EXIF data contains a ton of information about your camera, and potentially wher ...

  7. 在opencv2.4.x版本中处理图像EXIF orientation不统一的问题

    在用opencv的imread函数读取手机拍的照片时会出现翻转的情况,即用opencv中的imshow看到的图像和手机上看到的图像的宽高是相反的.(当然,读取电脑上的照片时也可能会出现这个问题) 出现 ...

  8. 通过Exiv2读取照片的Exif信息获取GPS,焦距等信息

    这里简单介绍一下如何通过开源C++工具包Exiv2读取图片中的属性信息 其实做这项工作之前也想偷懒百度一下的,大都是Java写的安卓的 ExifInterface 类,这和我的工作扯不上一点关系啊,最 ...

  9. GDAL读取jpg文件中GPS坐标信息

    在目前很多相机都支持在拍照的时候保留GPS信息,这些信息一般都是存储在jpg图像的exif信息中.下面内容主要说明如何使用GDAL库来读取jpg图像中的GPS信息并解析经纬度坐标. 首先,还是最常用的 ...

最新文章

  1. 【redis】redis简介及基本数据结构的操作
  2. python基础教程:可变,不可变数据类型
  3. 【测试点分析】1081 检查密码 (15分)
  4. 八、梯度下降法和拟牛顿法
  5. mysqldump 使用备忘
  6. mysql 1045错误ODBC_MySQL ERROR 1045 (28000) 错误的解决办法
  7. sql注入mysql判断_sql注入笔记二——数据库信息判断
  8. 企业知识管理与协同软件Confluence搭建与配置
  9. DOM编程系列之Node对象个人分享
  10. “strcmp”不能将参数从“LPWSTR”转换为“const char *”
  11. 计算机室 多媒体教室制度,多媒体教室管理、使用制度
  12. 【触发器】数据库_触发器实例
  13. iOS 中input隐藏输入光标
  14. Java笔记——08.面向对象(中级)
  15. 手机模拟器之争:Genimotion在左,海马玩在右
  16. 思博伦GNSS旗舰模拟器凭借2000Hz的刷新率进一步凸显竞争优势
  17. 2020VIVO春招编程题手机解锁图案
  18. openssl——sha256算法源码
  19. 天兔oracle,Lepus_天兔的安装
  20. 定压、调频、网络广播解析

热门文章

  1. 骆驼命名法,匈牙利命名法和帕斯卡命名法
  2. 和python哪个容易胖_哪些职业最容易长胖?
  3. composer 提示php版本过高
  4. 首都图书馆推出二维码读者证啦!
  5. Java 中的并行处理
  6. VIVADO的差分转单端IBUFDS的使用
  7. 领导想提拔你,这点最真实,可别犯傻不当回事!
  8. 攻防世界-MISC-新手区(掀桌子)
  9. pythonnumpy函数四舍五入_Python NumPy ufunc 小数四舍五入
  10. Android采用AES+RSA的加密机制对http请求进行加密