余詠勝 彭艷麗 易桂軒
(1.武漢市測繪研究院 湖北武漢 430022;2.武漢市規(guī)劃研究院 湖北武漢 430013)
數(shù)字正射影像圖能真實反映攝影時的地表情況,具有精度高、信息豐富、直觀真實等特點,可作為背景控制信息應用于城市規(guī)劃、土地管理、工程咨詢、項目策劃等工作。實際生產(chǎn)中經(jīng)常需要生產(chǎn)單位提供帶狀航片或衛(wèi)片影像作為工作底圖,特別是近年來無人機遙感技術(shù)的普及,小區(qū)域、條帶影像的數(shù)據(jù)處理在生產(chǎn)中越來越頻繁。由于柵格影像只能按矩形范圍存儲,常規(guī)帶狀影像通常采取整圖拼接后按帶狀范圍的最大外接矩形裁切方式來處理,裁切后一般采用黑色或白色像素填充方式來清除范圍外的多余影像數(shù)據(jù),該方式處理后輸出的成果影像數(shù)據(jù)量較大,既不方便前期數(shù)據(jù)處理和影像勻色編輯,也不利于與其它矢量和柵格影像數(shù)據(jù)的疊加使用。為此,研究既方便帶狀影像數(shù)據(jù)生產(chǎn)同時方便后續(xù)使用的方法非常必要。
仿射變換是空間直角坐標變換的一種,可用于二維坐標之間的線性變換。仿射變換一般可以通過一個3×3的矩陣來表示,設(shè)P點的原始坐標為(x,y),變換后P’點的坐標為(x’, y’),其仿射變換的矩陣表示為:
用代數(shù)形式表示為:
仿射變換可以通過一系列子變換方式的復合來實現(xiàn),包括平移、縮放和旋轉(zhuǎn)等。設(shè)坐標的平移量為(x0, y0),則平移變換的變換矩陣可表示為:
同樣可以推導縮放變換矩陣(4)和旋轉(zhuǎn)變換矩陣(5),其中Rx, Ry分別為x,y方向的縮放因子,θ為逆時針方向的旋轉(zhuǎn)角度。
影像的坐標定位可通過平移、縮放、旋轉(zhuǎn)等仿射變換的復合來實現(xiàn),根據(jù)公式(3)(4)(5),可以得出復合后的變換矩陣為:
由于影像數(shù)據(jù)按由上至下、由左至右的順序存儲,其y方向與笛卡爾坐標系方向相反,因此必須增加y坐標反向的變換矩陣:
聯(lián)立公式(6)和公式(7)之后的變換矩陣為:
對于影像數(shù)據(jù)而言,其縮放因子Rx, Ry對應于影像像素在東西方向和南北方向的地面分辨率,兩者取值相同。影像裁切操作是在原有影像的分辨率上進行的,其縮放因子Rx、Ry即影像的地面分辨率R,此時對應的仿射變換矩陣為:
通常情況下,影像數(shù)據(jù)以矩形方式存儲,其旋轉(zhuǎn)角度為0,其仿射變換矩陣可簡化為:
矢量數(shù)據(jù)文件(如shapefile, dwg、dgn等)可以直接存儲要素的坐標信息,對于柵格影像而言,其數(shù)據(jù)按照行列方式依次存儲,必須通過配準信息實現(xiàn)影像坐標和地理坐標的轉(zhuǎn)化,配準信息可以通過文件頭方式直接存儲到影像文件中(如GeoTIFF,IMG, BIL等),也可以存儲到獨立的ACSII格式的坐標文件中。由于坐標文件方式更易于編輯處理,生產(chǎn)中往往傾向于使用坐標文件方式配準影像的地理坐標。
坐標文件的命名由文件名和后綴名組成,文件名與影像對應的文件名相同,后綴名根據(jù)影像文件后綴名的第1個字符和第3個字符再加上字符w構(gòu)成,不帶擴展名或擴展名字符少于3個的可直接增加字符w,如影像文件386525.jpg的坐標文件名為386525.jgw。坐標文件一般由6行數(shù)字構(gòu)成,分別對應于影像仿射變換模型的六個參數(shù),其順序如表1所示。
表1:坐標文件對應參數(shù)
一般而言,如果不考慮影像數(shù)據(jù)的旋轉(zhuǎn)操作,僅將影像按矩形范圍進行存放,影像在水平方向和豎直方向地面分辨率相同,即按簡化后的公式(10),表1中的影像坐標參數(shù)可以簡單歸化為表2中對應的坐標參數(shù)。其中,第4行數(shù)值表示影像分辨率R的負值。
表2:無旋轉(zhuǎn)坐標文件對應參數(shù)
本文根據(jù)以上影像變換原理,通過Python語言實現(xiàn)帶狀影像數(shù)據(jù)的自動裁切和影像配準,裁切后的影像可減少帶狀矩形范圍外的數(shù)據(jù)冗余。Python是一種支持動態(tài)輸入的解釋型通用編程語言,在ArcGIS中可以通過Python高效地執(zhí)行數(shù)據(jù)分析、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)管理和地圖自動化等操作,通過導入 Arcpy模塊可以訪問地理處理工具以及其他函數(shù)、類和模塊,從而創(chuàng)建簡單或復雜的工作流程。本文相關(guān)程序是以 ArcGIS10.0版本為基礎(chǔ)進行二次開發(fā)完成。
要實現(xiàn)帶狀影像的裁切處理,首先應確定帶狀矩形的中線及兩側(cè)距離,據(jù)此范圍收集相關(guān)正射影像數(shù)據(jù)并對需要處理的影像進行拼接,然后以帶狀矩形左上角坐標為中心對拼接影像進行旋轉(zhuǎn)操作,此時可以按水平矩形范圍對旋轉(zhuǎn)后的影像進行裁切操作,最后根據(jù)帶狀矩形計算裁切影像坐標,完成裁切后影像的地理坐標配準工作。具體實現(xiàn)代碼如下:
(1)確定相關(guān)參數(shù)
先確定帶狀矩形中線的起止點坐標(x1, y1)、(x2, y2)以及兩側(cè)的擴展距離 r,據(jù)此計算帶狀矩形左上角坐標(x0, y0),相關(guān)代碼如下:
(2)拼接影像的旋轉(zhuǎn)
利用 Arcpy的數(shù)據(jù)管理工具Rotate_management()函數(shù)可以實現(xiàn)影像的定點旋轉(zhuǎn)操作,影像數(shù)據(jù)的旋轉(zhuǎn)按指定角度(以度為單位)順時針進行,負值將按逆時針方向旋轉(zhuǎn),旋轉(zhuǎn)后的影像保持原有影像的地面分辨率。如果帶狀矩形范圍涉及多幅影像,應在影像旋轉(zhuǎn)前對影像進行拼接處理。為方便后續(xù)操作,本文以帶狀矩形左上角設(shè)置為旋轉(zhuǎn)中心進行操作,其中iRas為拼接后的原始影像,裁切影像oRas的內(nèi)插方式為雙線性內(nèi)插。相關(guān)代碼如下:
(3)影像裁切
影像旋轉(zhuǎn)后,除旋轉(zhuǎn)中心外其它像素坐標均發(fā)生變化,影像裁切必須以旋轉(zhuǎn)中心(即帶狀矩形的左上角坐標)為基準進行操作。通過數(shù)據(jù)管理工具中的 Clip_management()函數(shù)可以實現(xiàn)柵格數(shù)據(jù)集的裁切處理,由于帶狀矩形的左上角坐標和矩形寬度和高度參數(shù)已知,據(jù)此可以確定裁切范圍的四角坐標,相關(guān)代碼如下:
(4)坐標文件生成
由于影像進行了拼接、旋轉(zhuǎn)和裁切等操作,處理后的影像坐標配準信息隨之變化,但ArcGIS軟件無法根據(jù)該變化更新對應的影像坐標文件信息,必須根據(jù)裁切矩形范圍通過程序生成對應的影像坐標文件,相關(guān)定位參數(shù)應根據(jù)仿射變換模型進行計算。生成坐標文件的相關(guān)代碼如下:
為驗證本文提出的帶狀影像數(shù)據(jù)處理的效率和可靠性,本文以武漢市輕軌1號線某段沿線帶狀影像的數(shù)據(jù)處理為基礎(chǔ)進行了生產(chǎn)性試驗。根據(jù)相關(guān)部門要求,需提供該路段沿線 100米范圍內(nèi)的1:2000比例尺數(shù)字正射影像數(shù)據(jù)作為工作底圖,為政府土地開發(fā)利用提供基礎(chǔ)信息。如圖1所示,紅色線劃為裁切矩形范圍的中線,藍色線劃為中線兩側(cè)外擴100米之后的裁切矩形,原始正射影像數(shù)據(jù)的地面分辨率為0.2米。
圖1:裁切之前的原始影像
利用本文方法可實現(xiàn)藍色矩形范圍內(nèi)帶狀影像數(shù)據(jù)的自動處理,處理后的結(jié)果影像按矩形范圍存儲,像素數(shù)為 6000×1000,影像數(shù)據(jù)量大小為17.1MB,該影像在非GIS軟件中打開為普通矩形影像數(shù)據(jù),影像中不存在空白填充區(qū)域,在GIS軟件中載入該影像時可以根據(jù)坐標文件配準到相應的地理位置,如圖2所示,在該影像圖層下載入其它矢量或影像數(shù)據(jù)時,位于裁切矩形范圍以外空白區(qū)域的數(shù)據(jù)可以正常顯示。如果采用常規(guī)方式處理該帶狀影像,通常需要在Photoshop等圖像處理軟件中對裁切范圍以外的影像數(shù)據(jù)進行清除操作(一般以白色底色填充),該方式處理后的影像像素數(shù)為4938×4962,數(shù)據(jù)量大小為70.1MB,約為本程序成果數(shù)據(jù)量的4.1倍。此外,常規(guī)方式處理的影像在GIS軟件中載入后,位于裁切矩形范圍以外的矢量或影像數(shù)據(jù)將被白色填充影像遮擋不能顯示。
圖2:裁切之后的成果影像
本方法成果影像對應的坐標文件內(nèi)容如表3所示,第1行至第4行數(shù)據(jù)是與影像地面分辨率0.2相關(guān)的仿射變換參數(shù),其中第1行和第4行數(shù)值符號相反,第2行和第3行數(shù)值相同,但不是常規(guī)坐標文件中的數(shù)值0,第5行和第6行為影像左上角像素對應的地理坐標。成果影像的地面分辨率與原始影像的地面分辨率相同,但不能通過坐標文件直接讀取,只能通過坐標文件提供數(shù)值按仿射變換模型計算相應的地面分辨率。
表3:裁切影像的坐標文件
本文以帶狀矩形為基本處理單元,通過仿射變換模型確定帶狀影像的地理配準信息,與傳統(tǒng)的帶狀影像裁切方式相比,本方法不需要對帶狀矩形范圍外的數(shù)據(jù)進行清除處理,不存在數(shù)據(jù)冗余,可以提高帶狀影像數(shù)據(jù)的處理效率,節(jié)省數(shù)據(jù)存儲空間,實際操作簡單易行,特別是對于線路較長、旋轉(zhuǎn)角接近45°的帶狀影像數(shù)據(jù)量減少比例最為明顯。對于帶狀影像的裁切中線為多段折線的情況,只需要在本文方法的基礎(chǔ)上進行多次連續(xù)裁切即可實現(xiàn),實踐證明該方法高效、可靠,具有很強的實用性。
[1]余詠勝,羅名海,吳克友,尹言軍.基于FME的地理國情覆蓋要素提取技術(shù)探討[J]地理空間信息,2014(05):01-03.
[2]陳白,王佩,崔彩鳳.基于ArcGIS的影像地圖制作方法[J]測繪技術(shù)裝備,2014(03):68-69.
[3]梁秀紅,竇龍江,于興江.仿射變換的應用[J]聊城大學學報(自然科學版),2013(04):33-35.
[4]趙巍,趙敏,王玉賢,戚婭萍.淺談影像坐標信息World文件[J]測繪標準化,2010(01):36-38.
[5]林素妝.AutoCAD加載正射影像的實現(xiàn)[J]地理空間信息,2009(05):57-59.
[6]儲美華.大比例尺數(shù)字正射影像圖的制作方法和技巧[J]測繪技術(shù)裝備,2002(01):14-16.
[7]何斌,馬天予等.Visual C++數(shù)字圖像處理[M]北京:人民郵電出版社,2001:4-20