楊興旺, 楊樹文, 張黎明, 姚花琴, 李軼鯤
(蘭州交通大學測繪與地理信息學院,蘭州 730070)
高分辨率遙感影像陰影檢測與補償系統的設計與實現
楊興旺, 楊樹文, 張黎明, 姚花琴, 李軼鯤
(蘭州交通大學測繪與地理信息學院,蘭州 730070)
陰影檢測與補償涉及遙感影像的不確定性、算法復雜度高及提取自動化程度低等問題。基于ArcGIS Engine平臺,結合Matlab和GDAL開發工具,根據構建的高分辨率遙感影像陰影檢測和補償算法設計了一體化的陰影檢測與補償系統。系統采用了數據分塊讀取、2%線性拉伸及DLL動態鏈接庫等關鍵技術,解決了大數據量影像讀取、影像不確定性及系統可擴展性等問題,實現了系統的集成和優化,提高了運行效率。測試結果表明,該系統在QuickBird、資源三號(ZY-3)等高分辨率遙感影像的陰影檢測與補償中具有較高的精度和效率,可用于數據批處理。
陰影檢測;陰影補償;高分辨率遙感影像;線性拉伸
目前,高分辨率遙感影像陰影檢測與補償方法[1]主要分為基于模型和基于陰影性質2類。其中,基于模型的陰影檢測與補償方法需要場景、目標和光照等情況的先驗知識,涉及的參數多,且其他影像數據不易獲取,應用具有較大的局限性,因此對此進行的研究相對較少。基于陰影性質的檢測與補償方法則是利用陰影區域的光譜和幾何特性來檢測陰影,是目前研究和應用的主流。王玥[2]、虢建宏[3]等利用主成分分析的第一主分量與原始多光譜影像的藍色分量進行比值運算,分割陰影區和非陰影區,然后根據陰影同質區特性對陰影區進行線性相關拉伸補償;徐秋紅等[4]用色彩轉換法、歸一化陰影指數法提取了陰影區,并利用明科夫斯基范式的顏色恒常性計算方法對陰影區域進行了信息補償;高賢君等[5]選取有效的陰影特征條件組合結合Otsu閾值自動提取算法檢測了陰影,并利用Wallis濾波原理進行陰影補償;王蜜蜂等[6]基于C3和Sobel邊緣檢測相結合的方法檢測和補償了陰影區域。然而,上述方法和算法大多仍處于測試和完善階段,較為完善的陰影檢測與補償系統鮮有提及,且自動化程度不高;另一方面,現有主流圖像處理軟件(如ENVI和ERDAS等)以常規處理為主,基于專題建模結合二次開發雖可以實現陰影檢測與補償,但是存在效率低、提取精度不高等方面的問題。
本文根據陰影區域的光譜特性和幾何特性,依托現有高分辨率影像陰影檢測與補償算法,以QuickBird,資源三號(ZY-3)等遙感影像的城市高大地物的陰影檢測與補償模型為基礎,采用C#語言,在NET Framework4.0環境下,研究、開發一體化的陰影自動檢測與補償系統,實現QuickBird,ZY-3等高分辨率遙感影像的陰影自動檢測與補償。
遙感影像的處理不同于普通圖像處理,它是大數據量的矩陣運算[7],而且數據結構復雜、數據類型多樣。因此在進行遙感影像處理、相關系統開發過程中,需要根據需求和不同程序設計語言的特點,選擇合適的平臺、設計語言進行影像處理的系統開發。
1.1 系統結構設計
要實現對QuickBird,ZY-3等高分辨率遙感衛星多光譜影像、RGB彩色合成影像以及全色影像的陰影檢測與補償,首先需要根據影像類型選擇不同的陰影檢測專題模型檢測陰影區域,然后根據檢測結果補償原始影像陰影區域,最后對陰影區域邊界矢量化以供后期進一步處理分析。本文根據陰影檢測與補償系統的需求和Matlab,GDAL等程序設計工具特點,采用C#語言,在NET Framework4.0環境下開發,系統的具體結構如圖1所示。

圖1 高分辨率遙感影像陰影檢測與補償系統結構Fig.1 High-resolution remote sensing image shadow detection and compensation system structure
在本系統設計開發中,系統陰影檢測算法、信息補償算法、形態學濾波、閾值自動選取以及直方圖勢函數等圖像處理算法涉及大數據量的矩陣運算,并且需要它獨立于系統之中,便于后期系統維護和功能擴展。Matlab是集數值分析、矩陣運算和圖形顯示于一體的高性能數據計算和可視化軟件[8-9],其編譯成的COM組件和DLL組件可實現程序模塊化,更容易實現功能更新而不影響系統其他模塊,便于系統后期維護和功能擴展。基于以上系統需求、算法特點,在陰影檢測與補償算法設計與實現過程中采用Matlab即可以調用部分Matlab自帶圖像處理函數,又能方便地編譯成DLL組件,達到快速開發的目的。
1.2 多類型遙感影像數據讀取
遙感影像數據類型多樣、結構復雜,其中還包含重要的地理信息,利用一般的程序設計語言讀取影像中的信息需要知道圖像格式的結構,然后再根據其結構定義不同的對象來讀取,不同的影像格式給系統開發帶來極大困難。GDAL是專業的遙感影像顯示腳本,使用單一的抽象數據模型支持各種格式的柵格數據[10],具有開源的代碼庫,因此在遙感影像打開顯示和矢量化等過程中利用它可以減少許多不必要的麻煩。
1.3 系統集成設計
ArcGIS Engine是用于構建定制應用的一個完整的嵌入式的GIS組件庫,它包含構建定制應用的開發包。開發包中的運行庫提供了ArcGIS應用的核心功能。利用ArcGIS Engine在陰影檢測與補償系統開發環境中添加控件、工具、菜單條和對象庫,可以快速實現圖像放大縮小、平移等簡單操作和自定義組件的調用,減少開發工作量。
1)遙感影像數據完整性處理技術。遙感影像中不僅包含了地物的光譜值,還包含了坐標系、衛星拍攝時間、經緯度、長度單位等影像物理信息,這些信息在影像處理中具有很重要的作用[11],而利用Matlab在實現陰影檢測與補償算法過程中使用imread和imwrite函數讀寫遙感影像數據會造成數據的地理信息丟失。Matlab自帶的Mapping工具箱提供了函數geotiffread(用于讀取圖像的灰度值)、geotiffinfo(讀取geotiff圖像文件中包含的所有地理信息)和geotiffwrite(保存經過處理后的影像灰度值及地理信息),這樣就保證了影像數據處理過程中影像地理信息的完整性問題。
2)影像數據處理過程中內存不足處理技術。遙感影像數據的數據量非常大,這一特點導致遙感影像處理要比常規圖像處理復雜、效率低。在本系統設計中采用“化整為零”的思想[12],將大數據量的整幅影像分塊處理,按照分塊的順序依次讀取每一塊數據進行處理并保存,直至整幅影像數據處理完畢,最后再將分塊處理的結果數據全部合并。具體流程如圖2所示。

圖2 大數據量影像陰影檢測與補償分塊處理流程圖Fig.2 Block processing flow chart of shadow detection and compensation for large amount of data image
3)影像的不確定性處理技術。如果參與計算的矩陣中存在空值或異常值會影響計算結果,因此在數據處理之前先進行2%線性拉伸,即對影像直方圖累積在2%~98%之間的像元值拉伸,取直方圖累積在2%處或附近的對應光譜值為最小值Vmin,98%處或附近的對應光譜值為最大值Vmax,然后將小于Vmin或大于Vmax的光譜值全部設置為Vmin或Vmax,即可以將空值及異常值全部剔除,有利于提高影像數據處理結果的準確性。
4)軟件系統的接口設計。在高分辨率遙感影像陰影檢測與補償系統中,陰影檢測與補償算法通過Matlab編譯的DLL調用實現,在以后如果需要實現更多類型衛星影像的陰影檢測與補償,只需要將相關的影像陰影檢測與補償算法用Matlab編譯成M文件,導入并重新編譯DLL并替換即可實現系統功能的擴展,并且可以移植到其他開發環境的遙感影像處理系統中供其使用。
5)系統運行效率的優化。要提高運行效率,改進算法最為關鍵。在陰影檢測過程中,為了解決計算過程數據量大的問題,在不影響最終結果的情況下將原來的數據類型轉換為單精度,而不使用精度更高的雙精度類型數據,這樣既減小了數據運算量又降低了系統內存占用率,有利于系統更高效運行。在陰影補償過程中,每補償一個陰影區域都要遍歷所有陰影區域一次,為了減少遍歷次數,采用分塊技術先將陰影區域圖分割成合適大小的塊,然后按照分塊順序依次補償,這在很大程度上降低了系統時間復雜度。通過以上方法優化,不管是系統空間復雜度還是時間復雜度都得以降低,大大提高了系統的運行效率。
3.1 系統集成
1)創建Matlab文件。根據陰影檢測與補償算法
創建相應的Matlab函數,此函數可以調用Matlab自帶的函數,還可以調用自定義函數。
2)創建DLL。在Matlab中實現陰影檢測與補償算法后即可編譯生成DLL,首先在Matlab窗口輸入deploytool命令后回車打開如圖3所示的窗口,然后在打開的Deployment Project窗口中輸入項目名稱,保存路徑以及類型(在本系統中類型選擇Net Assembly)后點擊OK,再在打開的窗口中新建類名,將創建的所有Matlab函數(簡稱M函數)導入類中編譯即可創建DLL動態鏈接庫。

圖3 Deployment Project 窗口Fig.3 Window of Deployment Project
3)導入DLL。創建的DLL是系統的核心,它包含了系統陰影檢測算法、信息補償算法、形態學濾波、閾值自動選取及直方圖勢函數等圖像處理算法,因此實現陰影檢測與補償需要導入含有陰影檢測與補償算法的DLL文件和Matlab軟件自帶的用于矩陣運算的MWArray.dll文件。
4)引用DLL。在NET Framework4.0系統環境中引用DLL首先聲明其中的類并新建對象,然后根據M函數中的輸入參數、輸出參數與對象的成員變量相匹配即可實現系統的功能。需要注意的是在參數傳遞過程中數據類型必須一致,否則無法實現參數的相互傳遞。
3.2 系統效果測試
遙感影像陰影檢測與補償專題系統功能主要是陰影檢測與補償、影像顯示與瀏覽。系統界面和部分功能模塊如圖4所示。圖4(a)為基本的系統界面,

(a) 系統界面 (b) 波段選擇 (c) 陰影檢測與補償
圖4 系統模塊
Fig.4 System module
它可以對圖像進行放大、縮小、平移等操作,也可以顯示出當前影像的所有信息及當前比例尺;圖4(b)為遙感影像波段選擇對話框,它可以選擇影像的任意1個波段或多波段合成顯示的灰度圖像或RGB彩色合成圖像;圖4(c)為陰影檢測與補償對話框,它可以選擇QuickBird,ZY-3等類型的遙感影像以及選擇影像的全色影像、RGB影像及多光譜影像類型進行陰影檢測與補償。
陰影檢測與補償系統主要對QuickBird,ZY-3等高分辨率遙感影像陰影進行檢測及補償。系統通過瀏覽輸入高分辨率遙感影像數據,經過自動處理將結果圖像保存到原始圖像所在文件夾下的temp目錄中,其中結果圖像包括檢測到的陰影柵格圖像、陰影矢量圖像及根據陰影柵格圖像對原始圖像進行補償后的圖像。圖5為QuickBird多光譜遙感影像陰影檢測及補償結果圖。

(a) 原始RGB合成影像 (b) 檢測到的柵格陰影區(c) 陰影區域邊界矢量圖 (d) 根據陰影區域對原始圖像補償后的RGB圖像
圖5 QuickBird多光譜遙感影像陰影檢測及補償結果
Fig.5 Shadow detection and compensation results for QuickBird multi-spectral image
圖6為ZY-3多光譜影像陰影檢測及其補償效果圖。

(a) ZY-3原始RGB(b) 系統檢測到的柵格(c) 系統原始影像與陰(d) 根據陰影區信息的合成影像 陰影區域影區域矢量的疊加結果補償結果
圖6 ZY-3遙感影像陰影檢測及補償效果圖
Fig.6 Shadow detection and compensation results for ZY-3 satellite image
本文基于ArcGIS Engine平臺,結合Matlab和GDAL開發工具,依據構建的高分影像陰影檢測和補償算法設計、開發了一體化的陰影檢測與補償系統。該系統能夠對QuickBird和ZY-3等類型的全色、RGB及多光譜類型影像進行陰影檢測及必要信息補償,經過大量數據測試具有較高的精度和效率,達到了設計效果,滿足了實際生產應用的需求。
構建的陰影檢測與補償系統雖然取得了較好的檢測和補償效果,但由于涉及的復雜算法多、且陰影檢測模型具有很強的針對性,其檢測、補償的精度和運行效率在一定程度上受到了影響。為此,需要在算法改進、系統集成等方面進一步研究,以顯著提高陰影檢測和補償系統的精度和效率。
[1] 田原.遙感影像的陰影檢測算法研究[D].西安:西安電子科技大學,2013. Tian Y.Research on Shadow Detection Algorithm in Remote Sensing Images[D].Xi’an:Xidian University,2013.
[2] 王玥,王樹根.高分辨率遙感影像陰影檢測與補償的主成分分析方法[J].應用科學學報,2010,28(2):136-141. Wang Y,Wang S G.Dection and compensation of shadows in high resolution remote sensing images using PCA[J].Journal of Applied Sciences-Electronics and Information Engineering,2010,28(2):136-141.
[3] 虢建宏,田慶久.一種IKONOS影像陰影檢測與去除的方法[J].遙感信息,2005(4):32-34. Guo J H,Tian Q J.A shadow detection and removal method for IKONOS images[J].Remote Sensing Information,2005(4):32-34.
[4] 徐秋紅,葉勤.一種基于顏色恒常性理論的城市高分辨率遙感影像陰影消除方法[J].遙感信息,2010(4):13-17. Xu Q H,Ye Q.A method of shadow elimination from city high resolution remote sensing images based on colour constancy[J].Remote Sensing Information,2010(4):13-17.
[5] 高賢君,萬幼川,鄭順義,等.航空遙感影像陰影的自動檢測與補償[J].武漢大學學報:信息科學版,2012,37(11):1299-1302. Gao X J,Wan Y C,Zheng S Y,et al.Automatic shadow detection and compensation of aeral remote sensing images[J].Geomatics and Information Science of Wuhan University,2012,37(11):1299-1302.
[6] 王蜜蜂.遙感影像的陰影檢測與補償方法研究[D].西安:西安電子科技大學,2013. Wang M F.Research on Shadow Detection and Compensation in Remote Sensing Images[D].Xi’an:Xidian University,2013.
[7] 岡薩雷斯,伍茲,埃丁斯.數字圖像處理:MATLAB版[M].北京:電子工業出版社,2005:8-28. Gonzalez R C,Woods R E,Eddins S L.Digital Image Processing Using MATLAB[M].Beijing:Publishing House of Electronics Industry,2005:8-28.
[8] 梁原.基于MATLAB的數字圖像處理系統研究[D].長春:長春理工大學,2008:4. Liang Y.The Research of Digital Image Processing Based on MATLAB[D].Changchun:Changchun University of Science and Technology,2008:4.
[9] 王海崗,張坤宇,張雁佳,等.VC與MATLAB混合編程在圖像處理中的應用[J].計算機應用與軟件,2012,29(1):273-275. Wang H G,Zhang K Y,Zhang Y J,et al.Application of mixed programming with VC and MATLAB in image processing[J].Computer Applications and Software,2012,29(1):273-275.
[10]李芳,鄔群勇,汪小欽.基于GeoRaste的多源遙感數據存儲研究[J].測繪科學,2009,4(3):150-151. Li F,Wu Q Y,Wang X Q.Storage of multi-source remote sensing data based on GeoRaster[J].Science of Surveying and Mapping,2009,4(3):150-151.
[11]牛芩濤,盛業華.GeoTIFF圖像文件的數據存儲格式及讀寫[J].四川測繪,2004,27(3):105-108. Niu Q T,Sheng Y H.The storage and read/write of GeoTIFF image file[J].Surveying and Mapping of Sichuan,2004,27(3):105-108.
[12]靖常峰,劉仁義,劉南.大數據量遙感圖像處理系統算法模塊的設計及實現[J].浙江大學學報:理學版,2005,32(4):471-474. Jing C F,Liu R Y,Liu N.Design and development of algorithm module for a remote sensing image processing system[J].Journal of Zhejiang University:Science Edition,2005,32(4):471-474.
(責任編輯:李瑜)
Design and development of the shadow detection and compensation system for high-resolution remote sensing images
YANG Xingwang, YANG Shuwen, ZHANG Liming, YAO Huaqin, LI Yikun
(FacultyofGeomatics,LanzhouJiaotongUniversity,Lanzhou730070,China)
Shadow detection and compensation involve such problems as the uncertainty of remote sensing images, the complexity of algorithm and the low degree of automatic extraction. In view of this situation, the authors have designed an integrated experimental system based on the algorithm built for high-resolution remote sensing image shadow detection and compensation on the ArcGIS Engine platform. The system also utilizes Matlab and GDAL. Some key technologies such as data block reading, 2% linear stretch and DLL are used in the shadow detection and compensation system implementation, which solves some problems such as reading large quantities of data, uncertainty of image, and extensibility of the system. The system achieves the integration and optimization of the system, and improves the operating efficiency. Experimental results show that the system performs higher precision and efficiency in shadow detection and compensation for high-resolution remote sensing images such as QuickBird and ZY-3. Therefore, the system can be used for batch processing of remote sensing image data.
shadow detection; shadow compensation; high-resolution remote sensing image; linear stretch
2014-04-25;
2014-06-04
中國測繪科學研究院科研專項項目“多源多時相高分辨率影像高大地物陰影檢測算法研究”(編號:513157)、甘肅省高等學校基本科研業務費項目“甘南地區滑坡泥石流信息遙感自動提取與危險性評價研究”(編號:212091)及中國博士后科學基金項目“基于高分辨率遙感影像的滑坡自動提取方法研究”(編號:2014M552558XB)共同資助。
10.6046/gtzyyg.2015.03.28
楊興旺,楊樹文,張黎明,等.高分辨率遙感影像陰影檢測與補償系統的設計與實現[J].國土資源遙感,2015,27(3):177-181.(Yang X W,Yang S W,Zhang L M,et al.Design and development of the shadow detection and compensation system for high-resolution remote sensing images[J].Remote Sensing for Land and Resources,2015,27(3):177-181.)
TP 79
A
1001-070X(2015)03-0177-05
楊興旺(1989-),男,碩士研究生,主要從事遙感影像處理和遙感應用系統研發等方面的研究。Email:593310474@qq.com。
楊樹文(1975-),男,博士,副教授,主要從事遙感數字圖像處理和遙感信息識別及提取方面的研究。Email:ysw040966@163.com。