一种基于ArcEngine的栅格图像配准方法研究
2011-04-18徐景吴小峰吴国荣
徐景,吴小峰,吴国荣
(长沙市勘测设计研究院,湖南长沙 410007)
一种基于ArcEngine的栅格图像配准方法研究
徐景∗,吴小峰,吴国荣
(长沙市勘测设计研究院,湖南长沙 410007)
采用面向对象语言C#,通过基于ArcEngine组件开发模式,利用具有精确坐标值和空间参考的矢量地图作为参考来实现对栅格图像进行精确的配准。这是一种快速而准确的获得具有比较精确坐标值和空间参考的栅格图像的方法,不仅增加了获得精确坐标值和空间参考的栅格图像来源,而且可以校正有误差的栅格图像,从而提高了栅格图像使用率和可信度。
ArcEngine;图像配准
1 引 言
随着科技的发展,栅格图像的来源越来越多样化,从最初的用扫描仪、电分机来扫描照片到现在通过卫星利用计算机获取栅格图像,如此多的栅格图像,但真正有用的却很少,很多栅格图像没有坐标值和空间参考或者存在各种误差,因此如何利用已有的资源快速获得比较精确坐标值和空间参考的栅格图像是一个比较棘手的问题。为了解决这一问题,笔者对一种基于ArcEngine的栅格图像配准方法进行研究。
2 ArcEngine技术与配准方法
ArcEngine是一个创建定制的GIS桌面应用程序的开发产品。ArcGIS Engine包括构建ArcGIS产品ArcView、ArcEditor、ArcInfo和ArcGIS Server的所有核心组件。使用ArcGIS Engine可以创建独立界面版本(stand-alone)的应用程序,或者对现有的应用程序进行扩展,为GIS和非GIS用户提供专门的空间解决方案。Arc Engine提供了COM、.NET和C++的应用程序编程接口(API)。这些编程接口不仅包括了详细的文档,还包括一系列高层次的组件,使得编程人员能够轻易地创建ArcGIS应用程序。
ArcEngine除了支持多种矢量格式外,还支持多种栅格图像,包括GIF、BMP、JPG、JPEG、JPE、JFIF、TIF、TIFF、PNG和ICO。ArcEngine图像配准方法有两种,一是输入地图坐标(如经度/纬度或独立坐标等),并指定栅格图像上与该坐标对应的点;二是用矢量地图作参考,在矢量地图上标识出控制点的坐标并将其与栅格图像上的对应点相匹配。由于本文采用矢量地图作为参考,所以采用第二种图像配准方法。
3 栅格图像配准系统的实现
3.1 数据的准备
本方案采用1∶400万全国基础地理信息数据作为矢量数据,参考投影采用GCS_WGS_1984,矢量数据主要在Mxd文档中,也可直接获取该Mxd文档中的Shp文件。所以当加载到栅格图像配准系统界面中的MapControl控件中既可以加载Mxd文档,也可直接加载Shp文件。全国或部分全国范围的栅格图可以通过网络实时动态的获取,本文采用某时段气象卫星获取的全国范围或部分区域的栅格图(GIF)作为需要配准的栅格图(没有精确坐标值和空间参考)。
3.2 系统设计界面
本系统整体采用C/S架构,使用Visual Studio 2005开发环境中的C#语言+Engine 9.2组合的开发方式。该系统能实现没有精确坐标值和空间参考的栅格图像的配准,是获取精确坐标值和空间参考栅格图像程序实现的一种比较好的方案。栅格图像配准系统界面如图1所示。
图1 栅格图像配准系统界面
3.3 系统实现步骤
(1)数据的加载
数据的加载主要是在界面MapControl视图控件里加载参考矢量图和要配准的栅格图。通过ArcEngine的MapControl控件类LoadMxFile方法加载含有Shp文件的Mxd文档;通过ArcEngine接口IRasterWorkspace实现栅格图的加载。代码实现如下:
(2)数据视图范围的调整
由于加入栅格图没有空间参考,加入到Mxd文档中的栅格图可能显示不出来,所以在配准之前先调整栅格图的范围,使得栅格图的范围大致与矢量图的范围大体一致,然后移动栅格图像素中心点坐标到矢量图中心点,这样两图可以在同一视图可见。代码实现如下:
(3)配准实现
配准主要使用IRasterGeometryProc3这个接口来完成工作。首先,第一步就是添加配准点。执行配准后,弹出如图2所示栅格配准对话框,选择配准的模型,此栅格配准设计为三个模型:一次多项式模型(需要至少3个点对)、二次多项式模型(需要至少6个点对)、三次多项式模型(需要至少10个点对)。然后在栅格图像配准系统中先在栅格图选择特征明显的配准点,再在矢量图上找到相应的点,这样形成一个点对。根据选择的模型,完成相应的点对数,添加配准的结果如图3所示。在发现没有错误的点对情况下,可以执行配准,最后栅格图获得了空间参考和精确的坐标。代码实现如下:
图2 栅格配准对话框
图3 栅格图像添加配准点结果
(4)保存配准结果
将上面第三步的栅格图像配准的结果保存到某一路径,然后打开ArcMap,加载矢量数据和配准好的栅格图,如图4(框选范围表示配准后栅格)可以看到经过配准后,原先没有空间参考和精确坐标的栅格图获得了空间参考和比较精确的坐标。
图4 配准栅格与矢量叠加图
4 结 语
基于ArcEngine的栅格图像配准方法采用C#面向对象语言来实现,基本上使得栅格图获得了空间参考和比较精确的地理坐标。但栅格配准还存在以下一些方面有待进一步完善:
(1)该方法在选取配准点的时候难免存在人为误差,需要通过多次配准以减小误差。
(2)栅格图的配准功能已经基本实现,还将增加对配准误差进行分析。
[1] 吴秀芹,张洪岩等.ArcGIS9地理信息系统应用与实践[M].北京:清华大学出版社,2007
[2] 边馥苓.地理信息系统原理和方法[M].北京:测绘出版社,1996
[3] 蒋波涛.ArcObjects开发基础与技巧[M].武汉:武汉大学出版社,2006
[4] 博仲良.ArcObjects二次开发教程[M].北京:测绘出版社,2008
[5] Karli Watson Christian Nagel.C#入门经典(第3版)[M].北京:清华大学出版社,2006
[6] 孙双磊,陈若飞,臧淑英.基于ArcEngine的林火监测云图坐标转换及配准功能的研发.测绘与空间地理信息,2008,31(2):27~31
Study of Grid Image Matching Based on ArcEngine
Xu Jing,Wu XiaoFeng,Wu GuoRong
(Changsha Geotechnical Engineering&Surveying Institute,Changsha 410007,China)
This article uses object-oriented language C#,through based on the ArcEngine module development pattern,the use has the precise coordinate figure and the spatial reference vector map realizes as the reference to the grid image carries on the precise matching.This is one kind fast and accurate obtains has the quite precise coordinate figure and the spatial reference grid image method,not only increased has obtained the precise coordinate figure and the spatial reference grid image originates,moreover might adjust has the erroneous grid image,thus enhanced the grid image utilization ratio and the confidence level.
ArcEngine;image matching
1672-8262(2011)01-32-03
P208
B
2010—05—29
徐景(1979—),男,工程师,主要从事工程测量及GIS应用研究。