湯智昀,李 丹,杜 毅
(中國(guó)石油工程設(shè)計(jì)有限公司西南分公司,四川成都 610017)
Google Earth影像處理
湯智昀,李 丹,杜 毅
(中國(guó)石油工程設(shè)計(jì)有限公司西南分公司,四川成都 610017)
Google Earth已經(jīng)成為全球位置描述的平臺(tái),以人性化的人機(jī)接口和海量的影像數(shù)據(jù)在信息交互領(lǐng)域中得到了廣泛的應(yīng)用。為了將 Google Earth影像應(yīng)用于工程,通過(guò)分析Google Earth影像顯示的機(jī)理,找到一種利用 Google Earth客戶端自動(dòng)下載高清晰、大幅面正射影像的方法,生成的正射影像可以作為可行性研究或初步設(shè)計(jì)資料的背景圖。
Google Earth;正射影像;影像重采樣
Google Earth客戶端可以任意顯示地球表面影像,并且可以無(wú)限制地下載圖像數(shù)據(jù)。但是對(duì)于以其他方式下載數(shù)據(jù)的計(jì)算機(jī),其 IP地址都會(huì)被Google Earth服務(wù)器俘獲從而禁止數(shù)據(jù)傳送。Google Earth影像表現(xiàn)隨著用戶的設(shè)置發(fā)生變化,這里的設(shè)置主要指相機(jī)的視點(diǎn)、高度、姿態(tài)等,這些設(shè)置的變化都給用戶拼接影像帶來(lái)困難。Google Earth影像是通過(guò)模擬相機(jī)對(duì)地表拍照而獲得的透視圖,這與測(cè)繪制圖要求的高斯投影正射影像圖有很大的區(qū)別。
總之,Google Earth客戶端下載的圖像不能直接用于工程和測(cè)繪,而非 Google Earth客戶端下載數(shù)據(jù)的方法會(huì)遇到人為設(shè)置的障礙。所以 Google Earth客戶端下載的圖像處理方法顯得尤為關(guān)鍵。
Google Earth每次根據(jù)當(dāng)前渲染窗口的尺寸下載影像,Google Earth在下載較小范圍圖像時(shí)分辨率很高,下載范圍大圖像時(shí)分辨率很小。因此,要獲得大范圍高清晰圖像必須分屏多次下載數(shù)據(jù),然后影像糾正、拼接。
Google Earth影像下載過(guò)程用戶無(wú)法知道,用戶可以獲取下載進(jìn)度,具體的下載內(nèi)容可以從渲染窗口的設(shè)備上下文中讀取。Google Earth每次下載都以渲染窗口為目標(biāo),用戶需要完成的工作就是設(shè)置相機(jī)的大地坐標(biāo)、高度、方位角 (相機(jī)的橫滾角、俯仰角都設(shè)為零),然后等待下載進(jìn)度達(dá)到百分之百。
要糾正影像需要計(jì)算渲染窗口每個(gè)像點(diǎn)的投影坐標(biāo),還需要計(jì)算正射影像 (成果影像)中每個(gè)投影坐標(biāo)對(duì)應(yīng)的像素坐標(biāo)。如果成果影像較大 (例如8 000行、10 000列),僅僅坐標(biāo)換算這一項(xiàng)的計(jì)算量都會(huì)變得無(wú)法容忍。
為了提高效率,最有效的辦法就是建立網(wǎng)格,嚴(yán)密計(jì)算部分像點(diǎn)的對(duì)應(yīng)關(guān)系,其它像點(diǎn)的對(duì)應(yīng)關(guān)系通過(guò)內(nèi)插的方式求出對(duì)應(yīng)關(guān)系。
Google Earth為用戶提供了組件應(yīng)用程序接口[1](Google Earth COM API),用戶可以通過(guò)連接Cpoin tOnTerrainGE對(duì)象建立像素坐標(biāo)與WGS84大地坐標(biāo)的對(duì)應(yīng)關(guān)系。
由于像點(diǎn)位置發(fā)生變化,根據(jù)源圖像像點(diǎn)灰度計(jì)算目標(biāo)圖像像點(diǎn)灰度的方法稱為影像重采樣。在本文中源圖像指渲染窗口中的圖像,目標(biāo)圖像指生成的正射影像圖像。根據(jù)采用的像點(diǎn)對(duì)應(yīng)關(guān)系不同,重采樣分為正向?qū)?yīng)重采樣和反向?qū)?yīng)重采樣,如果采用源圖像到目標(biāo)圖像的對(duì)應(yīng)關(guān)系稱為正向?qū)?yīng)重采樣,如果采用目標(biāo)圖像到源圖像的對(duì)應(yīng)關(guān)系稱為反向?qū)?yīng)重采樣。
在本文的具體情況來(lái)看,直接建立正向?qū)?yīng)關(guān)系很容易,建立反向?qū)?yīng)關(guān)系很困難。
由于正向?qū)?yīng)重采樣有很多缺陷,比如計(jì)算出來(lái)的目標(biāo)圖像像點(diǎn)坐標(biāo)值不是整數(shù)、像點(diǎn)坐標(biāo)越界等,一般采用反向?qū)?yīng)重采樣。
為了采用反向?qū)?yīng)重采樣必須將構(gòu)建好的正向?qū)?yīng)關(guān)系進(jìn)行逆變換,從而生成反向?qū)?yīng)關(guān)系。
Google Earth影像圖處理必須依靠 Google提供的兩個(gè)工具:kml語(yǔ)言[2]和組件應(yīng)用程序接口。kml
用于生成地標(biāo),并將地標(biāo)顯示在渲染窗口中。組件應(yīng)用程序接口用于控制 Google Earth的行為、查詢
Google Earth的狀態(tài)。用戶引用這兩個(gè)工具建立截圖的應(yīng)用程序(以下稱為截圖工具),見(jiàn)圖1。

圖1 影像圖處理軟件的結(jié)構(gòu)和功能
為了獲取正射影像用戶必須通過(guò)界面表達(dá)自己的需求,而這些需求必須被 GoogleEarth理解、執(zhí)行。截圖工具應(yīng)該懸浮于 GoogleEarth窗口,提供圖形的輸出范圍、文件名、分辨率等數(shù)據(jù)。界面如圖2點(diǎn)中“截圖”菜單項(xiàng)后,開(kāi)始自動(dòng)截圖。

圖2 截圖工具主窗口
“設(shè)置”菜單用于編輯各項(xiàng)數(shù)據(jù);“定圖框”菜單用于在渲染窗口中拾取輸出區(qū)域的位置;“分辨率”菜單用于確認(rèn)輸出圖像的分辨率,使得輸出圖像的分辨率與當(dāng)前渲染窗口中圖像分辨率一致。點(diǎn)擊“設(shè)置”菜單將彈出對(duì)話框,如圖3。

圖3 參數(shù)設(shè)置窗口
其中分辨率設(shè)置采用菜單設(shè)置,這里僅供顯示。圖框坐標(biāo)可以查看也可以輸入,當(dāng)"輸入"檢查框被勾選時(shí),點(diǎn)擊圖框坐標(biāo)按鈕,文本框中的坐標(biāo)值被保存。否則,文本框中的坐標(biāo)值被重新顯示。
圖像文件設(shè)置采用 windons公用對(duì)話框的打開(kāi)文件方式設(shè)置。
通過(guò)上述界面,截圖工具獲得了制作正射影像的初始數(shù)據(jù)和需求條件,接下來(lái)就應(yīng)該由電腦自動(dòng)完成制作圖像的任務(wù)。
2.2.1 建立有效區(qū)域與渲染窗口的對(duì)應(yīng)關(guān)系
Google Earth每次產(chǎn)生下載任務(wù)都是因?yàn)殇秩敬翱谌狈η逦膱D像,當(dāng)渲染窗口的影像渲染完成以后本次下載過(guò)程也就停止了,如果窗口發(fā)生變化有可能再次引起下載。由于渲染窗口中存在指北針、版權(quán)標(biāo)識(shí)、網(wǎng)站標(biāo)識(shí)等,所以窗口內(nèi)只有部分區(qū)域才能用于生成正射影像,這部分區(qū)域以下稱為有效區(qū)域,見(jiàn)圖4。
有效區(qū)域用于將目標(biāo)正射影像區(qū)域分塊,渲染窗口四角坐標(biāo)用于設(shè)置相機(jī)的位置,使每塊正射影像區(qū)域都能被重采樣。

圖4 計(jì)算渲染窗口的有效區(qū)域
2.2.2 正射影像分塊下載
既要保證正射影像的分辨率,又要獲取較大面積的正射影像,除了分塊下載外別無(wú)它法。
在投影坐標(biāo)系中,每塊正射影像區(qū)域的大小與有效區(qū)域大小是一致的,可以根據(jù)有效區(qū)域長(zhǎng)寬將正射影像分成若干行列,見(jiàn)圖5。

圖5 分塊下載流程
2.2.3 正射影像重采樣
在對(duì)一個(gè)塊的正射影像采樣過(guò)程中,為了避免對(duì)每個(gè)正射影像像素的坐標(biāo)投影轉(zhuǎn)換,可以選擇適當(dāng)間隔建立網(wǎng)格,除了格點(diǎn)需要進(jìn)行坐標(biāo)轉(zhuǎn)換計(jì)算外,其他點(diǎn)采用內(nèi)插方法計(jì)算窗口的像素坐標(biāo)。通過(guò)圖6所示的過(guò)程建立正射影像像素到渲染窗口像素坐標(biāo)對(duì)應(yīng)關(guān)系,由此可以內(nèi)插所有正射影像像素在渲染窗口中的位置,然后計(jì)算正射影像像素的灰度。
圖6描述了反向?qū)?yīng)關(guān)系建立的過(guò)程。
2.2.4 網(wǎng)格逆對(duì)應(yīng)
已知渲染窗口像素坐標(biāo)求其對(duì)應(yīng)的正射影像的像素坐標(biāo)用到了 GoogleEarth提供的函數(shù),由于其計(jì)算過(guò)程對(duì)用戶來(lái)說(shuō)是透明的,所以無(wú)法用解析的辦法求其反函數(shù),更無(wú)法用解析的辦法求出正射影像的像素坐標(biāo)到渲染窗口像素坐標(biāo)的對(duì)應(yīng)關(guān)系,在此只能采用網(wǎng)格逆對(duì)應(yīng)求解。
設(shè)有兩面域 S1、S2,它們點(diǎn)之間存在一一對(duì)應(yīng)關(guān)系f:

圖6 重采樣流程

現(xiàn)在 S1中建立網(wǎng)格矩陣

按照(1)的對(duì)應(yīng)關(guān)系求其格值,可得如下對(duì)應(yīng)關(guān)系

根據(jù) (3)式所描述的網(wǎng)格建立f-1的網(wǎng)格的過(guò)程就是本文所指的網(wǎng)格逆變換。現(xiàn)在 S2中建立網(wǎng)格矩陣:

在式 (3)所描述的網(wǎng)格的每一行內(nèi)根據(jù)XJ內(nèi)插,得到如下對(duì)應(yīng)關(guān)系:

在式 (5)所描述的網(wǎng)格的每一列內(nèi)根據(jù)YI內(nèi)插,得到如下對(duì)應(yīng)關(guān)系:

由于(J,I)與(XJ,YI)存在一一對(duì)應(yīng)關(guān)系,所以有如下對(duì)應(yīng)關(guān)系:

上式表明:f-1網(wǎng)格已經(jīng)建立。
采用上述實(shí)現(xiàn)方法,筆者已編出 VC++.NET代碼。測(cè)試表明正射影像分塊下載后可以無(wú)縫拼接,色彩無(wú)失真。但還存在一些問(wèn)題:當(dāng)連續(xù)查詢像點(diǎn)的WGS84大地坐標(biāo) 1 000次以后該查詢操作突然變慢;在 window2003系統(tǒng)中渲染窗口的移動(dòng)失去控制 。
[1] Google.Google Earth COM API Documentation[EB/ OL]. http://earth.google.com/comapi,2009-09-19/ 2009-10-09.
[2] Google.K ML開(kāi)發(fā)人員指南 [EB/OL].http://code. google.com/intl/zh-CN/apis/kml/documentation/topicsinkml.html,2009-09-19/2009-10-09.
Google Earth I mage Treat ment
Tang Zhiyun,Li Dan,Du Yi
(China Petroleum Engineering Co.,Ltd.Southwest Company,Chengdu,Sichuan,610017,China)
Google Earth has become a platform for global position description and its humanist human-machine interfaces and vast amount of image data have beenwidely applied in the field of information exchange.Analyzed is the mechanism of Google Earth images display,found is a method for using Google Earth client to automatically download Ortho- Imageswith high definition and large format and Ortho- Images produced by thismethodmay be used for feasibility studiesorpreliminary design background in order to apply Google Earth video images in practical engineering design.
Google Earth;Ortho- Image; Image re-sampling
1006-5539(2010)03-0007-03
A
2010-03-23
湯智昀 (1973-),男,四川成都人,工程師,主要從事壓力容器的設(shè)計(jì)和技術(shù)質(zhì)量管理工作。電話:(028) 86014355。
NGO,2010,28(3):7-9