徐景,吳小峰,吳國榮
(長沙市勘測設計研究院,湖南長沙 410007)
一種基于ArcEngine的柵格圖像配準方法研究
徐景?,吳小峰,吳國榮
(長沙市勘測設計研究院,湖南長沙 410007)
采用面向?qū)ο笳Z言C#,通過基于ArcEngine組件開發(fā)模式,利用具有精確坐標值和空間參考的矢量地圖作為參考來實現(xiàn)對柵格圖像進行精確的配準。這是一種快速而準確的獲得具有比較精確坐標值和空間參考的柵格圖像的方法,不僅增加了獲得精確坐標值和空間參考的柵格圖像來源,而且可以校正有誤差的柵格圖像,從而提高了柵格圖像使用率和可信度。
ArcEngine;圖像配準
隨著科技的發(fā)展,柵格圖像的來源越來越多樣化,從最初的用掃描儀、電分機來掃描照片到現(xiàn)在通過衛(wèi)星利用計算機獲取柵格圖像,如此多的柵格圖像,但真正有用的卻很少,很多柵格圖像沒有坐標值和空間參考或者存在各種誤差,因此如何利用已有的資源快速獲得比較精確坐標值和空間參考的柵格圖像是一個比較棘手的問題。為了解決這一問題,筆者對一種基于ArcEngine的柵格圖像配準方法進行研究。
ArcEngine是一個創(chuàng)建定制的GIS桌面應用程序的開發(fā)產(chǎn)品。ArcGIS Engine包括構(gòu)建ArcGIS產(chǎn)品ArcView、ArcEditor、ArcInfo和ArcGIS Server的所有核心組件。使用ArcGIS Engine可以創(chuàng)建獨立界面版本(stand-alone)的應用程序,或者對現(xiàn)有的應用程序進行擴展,為GIS和非GIS用戶提供專門的空間解決方案。Arc Engine提供了COM、.NET和C++的應用程序編程接口(API)。這些編程接口不僅包括了詳細的文檔,還包括一系列高層次的組件,使得編程人員能夠輕易地創(chuàng)建ArcGIS應用程序。
ArcEngine除了支持多種矢量格式外,還支持多種柵格圖像,包括GIF、BMP、JPG、JPEG、JPE、JFIF、TIF、TIFF、PNG和ICO。ArcEngine圖像配準方法有兩種,一是輸入地圖坐標(如經(jīng)度/緯度或獨立坐標等),并指定柵格圖像上與該坐標對應的點;二是用矢量地圖作參考,在矢量地圖上標識出控制點的坐標并將其與柵格圖像上的對應點相匹配。由于本文采用矢量地圖作為參考,所以采用第二種圖像配準方法。
3.1 數(shù)據(jù)的準備
本方案采用1∶400萬全國基礎地理信息數(shù)據(jù)作為矢量數(shù)據(jù),參考投影采用GCS_WGS_1984,矢量數(shù)據(jù)主要在Mxd文檔中,也可直接獲取該Mxd文檔中的Shp文件。所以當加載到柵格圖像配準系統(tǒng)界面中的MapControl控件中既可以加載Mxd文檔,也可直接加載Shp文件。全國或部分全國范圍的柵格圖可以通過網(wǎng)絡實時動態(tài)的獲取,本文采用某時段氣象衛(wèi)星獲取的全國范圍或部分區(qū)域的柵格圖(GIF)作為需要配準的柵格圖(沒有精確坐標值和空間參考)。
3.2 系統(tǒng)設計界面
本系統(tǒng)整體采用C/S架構(gòu),使用Visual Studio 2005開發(fā)環(huán)境中的C#語言+Engine 9.2組合的開發(fā)方式。該系統(tǒng)能實現(xiàn)沒有精確坐標值和空間參考的柵格圖像的配準,是獲取精確坐標值和空間參考柵格圖像程序?qū)崿F(xiàn)的一種比較好的方案。柵格圖像配準系統(tǒng)界面如圖1所示。
圖1 柵格圖像配準系統(tǒng)界面
3.3 系統(tǒng)實現(xiàn)步驟
(1)數(shù)據(jù)的加載
數(shù)據(jù)的加載主要是在界面MapControl視圖控件里加載參考矢量圖和要配準的柵格圖。通過ArcEngine的MapControl控件類LoadMxFile方法加載含有Shp文件的Mxd文檔;通過ArcEngine接口IRasterWorkspace實現(xiàn)柵格圖的加載。代碼實現(xiàn)如下:
(2)數(shù)據(jù)視圖范圍的調(diào)整
由于加入柵格圖沒有空間參考,加入到Mxd文檔中的柵格圖可能顯示不出來,所以在配準之前先調(diào)整柵格圖的范圍,使得柵格圖的范圍大致與矢量圖的范圍大體一致,然后移動柵格圖像素中心點坐標到矢量圖中心點,這樣兩圖可以在同一視圖可見。代碼實現(xiàn)如下:
(3)配準實現(xiàn)
配準主要使用IRasterGeometryProc3這個接口來完成工作。首先,第一步就是添加配準點。執(zhí)行配準后,彈出如圖2所示柵格配準對話框,選擇配準的模型,此柵格配準設計為三個模型:一次多項式模型(需要至少3個點對)、二次多項式模型(需要至少6個點對)、三次多項式模型(需要至少10個點對)。然后在柵格圖像配準系統(tǒng)中先在柵格圖選擇特征明顯的配準點,再在矢量圖上找到相應的點,這樣形成一個點對。根據(jù)選擇的模型,完成相應的點對數(shù),添加配準的結(jié)果如圖3所示。在發(fā)現(xiàn)沒有錯誤的點對情況下,可以執(zhí)行配準,最后柵格圖獲得了空間參考和精確的坐標。代碼實現(xiàn)如下:
圖2 柵格配準對話框
圖3 柵格圖像添加配準點結(jié)果
(4)保存配準結(jié)果
將上面第三步的柵格圖像配準的結(jié)果保存到某一路徑,然后打開ArcMap,加載矢量數(shù)據(jù)和配準好的柵格圖,如圖4(框選范圍表示配準后柵格)可以看到經(jīng)過配準后,原先沒有空間參考和精確坐標的柵格圖獲得了空間參考和比較精確的坐標。
圖4 配準柵格與矢量疊加圖
基于ArcEngine的柵格圖像配準方法采用C#面向?qū)ο笳Z言來實現(xiàn),基本上使得柵格圖獲得了空間參考和比較精確的地理坐標。但柵格配準還存在以下一些方面有待進一步完善:
(1)該方法在選取配準點的時候難免存在人為誤差,需要通過多次配準以減小誤差。
(2)柵格圖的配準功能已經(jīng)基本實現(xiàn),還將增加對配準誤差進行分析。
[1] 吳秀芹,張洪巖等.ArcGIS9地理信息系統(tǒng)應用與實踐[M].北京:清華大學出版社,2007
[2] 邊馥苓.地理信息系統(tǒng)原理和方法[M].北京:測繪出版社,1996
[3] 蔣波濤.ArcObjects開發(fā)基礎與技巧[M].武漢:武漢大學出版社,2006
[4] 博仲良.ArcObjects二次開發(fā)教程[M].北京:測繪出版社,2008
[5] Karli Watson Christian Nagel.C#入門經(jīng)典(第3版)[M].北京:清華大學出版社,2006
[6] 孫雙磊,陳若飛,臧淑英.基于ArcEngine的林火監(jiān)測云圖坐標轉(zhuǎn)換及配準功能的研發(fā).測繪與空間地理信息,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應用研究。