JPEG图像获取GPS数据
来源:互联网 发布:淘宝美工和运营的关系 编辑:程序博客网 时间:2024/06/08 01:31
背景
周一来到实验室本来要做项目,这个月快到月底了,想赶快写,要不然导师就要催。导师突然交给任务,让完成一个基于c++的JPEG图像获取GPS数据的小程序,他说很小,很简单,让我赶快写。让我做的事情如下图:
就是要获取如图所示的GPS数据。TUA,我哪会啊,根本是一头雾水啊,但是还是给应承下来。
准备工作
我准备了两个步骤:
- 如何实现多文件选取的功能,将获取到的图像文件绝对路径存储;
- 如何对每个图像文件抽取GPS数据。
创作路径
我真是从百度到谷歌再到必应,不停的搜索,最终在csdn中找到了一个关于读取gps的实现文件,如下图,具体下载地址我忘了(不过我等会提供我的csdn下载地址,有点无耻啊):
步骤1
三个关键:
1. CFileDialog选中多个图像,需要加OFN_ALLOWMULTISELECT 属性;
2. dlg.m_ofn.nMaxFile = 500 * MAX_PATH; 设置选中的数目,这也是后来被接收程序的人提醒才发现的;
3. CArray(CString, CString) arrayFilename;用于获取图像选中图像的路径,相当于一个数组,循环迭代即可取出;(HINT:利用POSITION变量)
只要获得图像每一张的图像路径,剩下的只需迭代执行步骤二获取每张GPS数据即可。
一些杂碎的操作不介绍了,什么打开文件,关闭文件。。。。。
步骤2
其实这个说难不难,只要弄清楚JPEG的meta信息即可,我也不是太懂,只是找到GPS的meta,然后转换成double类型即可。取一个图:
其实只用到了前两个,因为第二个就包括了经纬度的分和秒,他们是一起算的,后来拆成秒的。我太机智了。哈哈
碎语
1.我把程序设置成黑框消失,不用弹出那个讨厌的黑框框。设置两个地方,如下两个图:
第一个去掉_console,第二个设置成系统模式。第三是把main改成winmain入口
2.出现Nafxcwd.lib;Libcmtd.lib;冲突定义,根据网上教程改成如下图所示:
这样就解决了问题
3.后来发现还出现图像gps数据发生文件分割的问题,后来想了下是因为我用时间作为文本的名称,在跨秒级时间处理的图像集,因为时间不同所以后来输出的文件相差秒级,因为使用此程序的人认为这不是问题,所以就没有处理这个小问题。
程序的下载地址
尾语
其实这里面没啥技术问题,就是忙了小半天,午觉都没说,写下来,发发牢骚,继续前进。我偶然发现我借的书《创新算法》竟然没有目录,无语了,第一次见那么奇葩的书。不过看起来感觉很棒,这周好好看。哈哈。。。
- JPEG图像获取GPS数据
- 读取jpeg图像数据
- JPEG——获取图像宽和高
- 【原创】Jpeg渐进式图像数据解析
- JPEG图像EXIF数据信息的解析
- 【转载】WM获取GPS数据
- Android获取GPS定位数据
- android获取解析GPS数据
- 【转载】WM获取GPS数据
- Android-获取GPS数据方法
- arm摄像头获取jpeg图像后,从内存中解压jpeg图像,并用openCV处理
- libjpeg:读取jpeg头获取图像基本信息(jpeg_read_header)
- Android中如何获取GPS数据
- Ubuntu获取GPS数据& 保存TXT
- 如何获取行政区域的边界gps数据
- JPEG图形显示、图像数据的DB存取。
- libjpeg库解码jpeg图像输出数据排列问题
- CUDA 实现JPEG图像解码为RGB数据
- Java Swing 之JTable及其简单的用法
- matlab学习
- C#中Trim()、TrimStart()、TrimEnd()的用法
- ThreadLocal
- NSDate的常用方法
- JPEG图像获取GPS数据
- fgetc fputc的使用
- 事件委托案例
- C语言读写二进制流
- Java 反射实例
- List, Set, Map
- 菜鸟之路-07
- Code:Blocks输入中文出现乱码
- Leetcode -- Implement Trie (Prefix Tree)