|
|
|
|

基于ArcGIS Engine的图像自动定位显示系统

1 引言 随着科学技术的发展,虽然测绘设备的精度越来越高,测绘效率也得到大大提高,但是目前测绘设备并不能适应所有条件,特别是当测绘环境比较复杂时,需要测量员亲自到实地踏勘测量。当我们进行野外实地测量时,为了准确地记录测量对象,通常需要手绘...

作者:刘 晓 辉,李志刚来源:2014测绘学会|2014年12月27日

1 引言

随着科学技术的发展,虽然测绘设备的精度越来越高,测绘效率也得到大大提高,但是目前测绘设备并不能适应所有条件,特别是当测绘环境比较复杂时,需要测量员亲自到实地踏勘测量。当我们进行野外实地测量时,为了准确地记录测量对象,通常需要手绘草图,记录测量点号及地物地形特征,当外界情况复杂时,绘制草图会大大降低测绘效率,并且很可能出现草图绘制错误。目前,许多移动设备如手机、相机、移动平板电脑等都已经配备GPS定位模块,其定位精度可达5m。如果利用移动设备对测绘对象进行拍照,在内业绘图时根据照片的位置信息将照片展到拍照的相应位置,将会大大提高内业效率,降低内业出错率。

本文针对实现图像的自动存储和显示,提出了一种基于AE的图像自动定位显示系统。首先利用C#语言获取照片信息并对照片信息进行预处理,然后将坐标信息和照片存入数据库,最后利用AE将照片数量信息用标签在电子地图上显示出来,实现通过单击标签查看相应位置照片的功能。

1.1 Exif

Exif[1]是英文Exchangeable Image File(可交换图像文件)的缩写,最早由日本电子工业发展协会制订,目前最新版本是2.21版。实际上Exif信息是镶嵌在JPEG/TIFF图像文件内的一组拍摄参数,包括拍摄时的快门、光圈、ISO、时间、焦距、白平衡等拍摄条件和相机品牌、型号以及全球定位系统(GPS)信息等。

1.2 ArcEngine

ArcEngine[2]是基于ArcObjects搭建的应用,包括核心ArcObjects的功能,是对ArcObjects中的大部分接口、类等进行封装所构成的嵌入式组件,可以在C++,.NET,Java等多种语言中进行开发,具有灵活、简洁、易用、可移植性强等优点。

1.3 C#

C#是ArcEngine的一种编程语言,“SDK for c#”是ArcEngine专门为使用C#开发提供的开发工具包。C#[3]编程语言是由微软公司专门为.NET平台设计的语言,拥有C、C++和Java的优点,它完全支持类和面向对象编程,可以自动清理动态分配的内存,并可以完全访问.NET基类库。

2 系统概述和关键技术

2.1 系统概述

外业测量时,可以使用手机等移动设备拍照,记录下周围的地形地物。内业作业时,通过读取镶嵌在照片中的Exif信息,获取照片的经纬度等相关拍摄参数。将位置信息和照片自动入库,并在图上拍摄位置添加标签,通过单击标签即可查看该位置的照片信息。

基于AE的图像自动定位显示系统的具体实现如下:

(1)外业拍照

当进行数据外业采集时,利用智能手机对关键和复杂地形地物点进行拍照,注意在拍照时确保已经打开手机的GPS定位功能。为了提高拍照位置的准确性,一定在地形地物的正上方拍摄,如果由于环境限制无法在正上方拍摄,记录下偏离距离和方向,在后续操作中对坐标进行修正。

(2)读取照片信息

利用C#编写程序读取照片的经纬度信息。

(3)坐标系转换

由于(2)中从照片EXIF参数中读取的是WGS84坐标系下的经纬度,必须通过坐标系转换转到国家坐标系或当地坐标系,才能使用。

(4)照片信息自动入库

将照片和其经坐标转换后的坐标信息导入数据库。

(5)照片信息自动标注

单击“照片标注”功能,根据数据库中的坐标在地图上标注不同位置照片的数目,可以全图标注,也可以只标注当前视图区域。

(6)编写照片浏览模块

该模块实现功能:单击标注,弹出对应标注位置的照片浏览窗口,浏览该位置所有照片。

(7)照片位置微调

由于GPS卫星被遮挡、多路径效应等影响,有时会出现记录的照片位置偏离实际拍照位置太远的情况,这时可以通过拖动标注,对其位置进行微调,调整后的照片坐标信息在数据库中会自动更新。

2.2 系统关键技术

2.2.1 读取Exif信息

通过PropertyItem接口可以获取照片的Exif信息,用PropertyItem的属性ID区分照片的不同参数信息, ID为0x0002代表该项为具体纬度信息,ID为0x0004代表该项为具体经度信息,读取相应ID的Value即可获取参数具体数值。Value的类型为byte[],通过读取byte[0]—byte[7]获得经纬度的“度”信息,读取byte[8]-byte[15]获得经纬度的“分”信息,读取byte[16]-byte[23]获得经纬度的“秒”信息。计算过程中还要根据ID为0x0001项的Value值区分南纬北纬,根据ID为0x0003项的Value值区分东经西经。

2.2.2 坐标系转换

由于用手机等移动设备得到得坐标信息通常是WGS-84坐标系下的经纬度,而外业测绘中获得的测点坐标信息都采用国家坐标系或当地坐标系。它们采用的椭球不相同,需要使用七参数法将经纬度信息转换到国家坐标系或当地坐标系下。

2.2.3 照片和照片信息入库

系统采用的方法是将照片选择的照片复制到指定路径,并用mdb数据库存储照片坐标和路径信息。

2.2.4 标签设计和标签自动标注

系统中的标签采用AE中的的Callout和TextElement组合生成的Element,当单击“自动标注”时,系统会统计不同坐标处照片数量并显示在标签中。

2.2.5 图片浏览模块

单击用Element制作的标签,自动弹出图片浏览窗口并将该处图片显示在窗口中,此处主要用到PictureBox控件。

2.2.6 图片位置微调

拖动标签后,获得构成标签的Callout的AnchorPoint,并用AnchorPoint的X、Y坐标对数据库中该照片的原有坐标信息进行自动更新。

3 系统实验和结果

本次实验外业采集所采用的坐标系是某地城市坐标系,对某道路交口的8个城市市政设施检修井井盖用iphone4手机拍照,对其进行信息采集,同时用徕卡TSC3 GPS接收机在每个井盖处进行准确测量,GPS测量数据是经CORS网实时修正过的观测值。

3.1 自动读取图片Exif信息

选取8张外业采集的井盖照片,自动存入mdb库的信息如下(为防泄密,表中经纬度的整度用X表示):

表1  数据库中照片信息

PICTUREADRESS

ID

LONGITUDE

LATITUDE

ADDRESS

1235

XX.07072

XXX.2339

F:\外业照片\IMG_1235.jpg

1220

XX.07078

XXX.2339

F:\外业照片\IMG_1220.jpg

1221

XX.0709

XXX.23396

F:\外业照片\IMG_1221.jpg

1223

XX.07126

XXX.23414

F:\外业照片\IMG_1223.jpg

1226

XX.07162

XXX.23444

F:\外业照片\IMG_1226.jpg

1228

XX.0718

XXX.23468

F:\外业照片\IMG_1228.jpg

1230

XX.07186

XXX.23456

F:\外业照片\IMG_1230.jpg

1233

XX.0709

XXX.23396

F:\外业照片\IMG_1233.jpg

3.2 坐标自动转换

本次实验是将WGS-84坐标系下的经纬度转到该地城市坐标系。利用GPS测量的坐标精度很高,误差小于5cm,可以在本次实验中作为真值使用。经过坐标转换后,利用手机采集照片的坐标和利用徕卡TSC3 GPS接收机采集的坐标之间较差如下表所示:

表2.移动设备采集照片较差表(单位:m)

ID

  (X较差)

Y  (Y较差)

距离差(

1235

6.353

3.48

7.243

1220

5.148

-2.731

5.827

1221

5.299

0.189

5.302

1223

7.393

2.749

7.887

1226

4.93

0.065

4.930

1228

-5.041

7.123

8.726

1230

3.96

-10.284

11.020

1233

4.547

-1.93

4.939

用手机采集的管线井盖图像位置和用GPS观测测得的井盖位置如下图所示(图中红色为用手机拍摄的管点井盖图像位置,蓝色为用徕卡TSC3 GPS接收机测量得到的管点井盖位置):

 

图1.管点井盖分布图

3.3 照片和照片信息自动入库

将照片转换到当地城市坐标系下的XY坐标自动导入数据库,相应照片也被复制到指定位置。

3.4 标签自动标注

单击“自动标注”按钮,系统会根据每个位置的照片数量进行标注。

 

图2.图片自动标注界面

3.5 图片浏览和位置微调

单击“浏览图片”按钮后,单击图上相应标签,图像就会显示出来,如下图。

 

 

图3.图片浏览界面

单击“位置微调”,通过拖动标签改变标签在图上的位置,相应图片的坐标会在数据库中自动更新为拖

动后标签的AnchorPoint的坐标。

4 结论与展望

利用常见移动设备采集测绘对象图像信息,可以让作业过程更加直观。通过利用C#语言基于AE开发的图像自动定位显示系统将图像采集点展绘于图上,可以大大提高内业作业效率,提高内业数据正确率。本文提出的方法充分利用现有条件,提高作业效率,不失为一种高效的作业方式。当然,该系统还有待进一步完善,下一步将考虑如何提高照片采集的精度,以及如何将照片按照照片采集的方向进行旋转以更准确地还原观测场景等,从而使系统更加完善。

参考文献

[1] Digital Still Camera Image File Format Standard(Exif)[S],Version 2.1.JEIDA,1998.

[2]韩鹏等. 地理信息系统开发:ArcEngine方法[M].武汉大学出版社,2008.

[3] Christian Nagel等. C#高级编程[M].清华大学出版社,2010.

Image Automatic Locating and Display System Based on AE

Xiaohui LiuZhigang Li

(Qingdao Geotechnical Investigation and Survey Institute,Qingdao 266032,China)

Abstract:This paper mainly studies the using of the Exif information of pictures taken by mobile devices,and how to use ArcEngine secondly development tools to achieve image automatic annotation and display.Firstly,we should load the taken pictures to the system,the system will extract the location information based on the information embedded in the photoAfter that,the location information will be transformed to the demanding coordinate system,and the system will load the pictures and transformed location information to the system.Lastly,the number of photos in different location will be shown in the map using the format of label,and the photos could didplay in the map by clicking the label. The results of experiments show the system could label the pictures in the map according to their location automatically,and the pictures could display according to the demand of users.

Keywords:AE;C#;Exif

上一篇:利用ArcGIS Engine编写切图工具的一些探讨

下一篇:没有了!