馮朝暉,李 芹,韓留生,薛國超,趙紅穎
(1. 北京大學(xué)地球與空間科學(xué)學(xué)院,北京 100871; 2. 山東理工大學(xué)建筑工程學(xué)院,山東 淄博 255000; 3. 山東科技大學(xué)測繪科學(xué)與工程學(xué)院,山東 青島 266590)
近年來遙感環(huán)境監(jiān)測技術(shù)日新月異,高分衛(wèi)星影像也越來越普及,為遙感信息提取提供了可靠數(shù)據(jù)來源[1]。但高分影像中針對單個像元進(jìn)行分類的算法因存在瓶頸而制約著很多應(yīng)用,因此結(jié)合目標(biāo)形態(tài)結(jié)構(gòu)、光譜信息等面向?qū)ο蟮乃惴ㄔ谶b感水體提取分割中發(fā)揮著越來越重要的作用[2]。水體提取中較為傳統(tǒng)的有圖像變換方法、單一波段閾值方法。文獻(xiàn)[3]利用TM4和TM5波段設(shè)定經(jīng)驗閾值提取水體。單一的波段閾值分割方法原理較簡單,但是對于水體和非水體的過渡區(qū)域無法正確劃分,因此有必要對傳統(tǒng)閾值分割進(jìn)行改進(jìn)。應(yīng)用于遙感圖像目標(biāo)提取的算法還包括形態(tài)學(xué)方法[4]、聚類分割方法、邊緣檢測分割方法[5]和基于分水嶺的算法[6]。分水嶺算法在發(fā)展過程中非常具有代表性的沉浸模型[7]是一種基于地形和區(qū)域增長理論的算法,并且后來針對該算法的過度分割問題也有一些改進(jìn)[8-9]。但如果將分水嶺算法直接用來提取水體,分割結(jié)果特別差[10],這是由于地物類型復(fù)雜多樣且存在“同譜異物”現(xiàn)象造成的。單一的分水嶺算法并不能解決復(fù)雜的分割問題,一些改進(jìn)的分水嶺變換算法雖然解決了一部分問題,但依然存在分割目標(biāo)破碎、地物類型誤判、過度分割導(dǎo)致結(jié)果不完整等缺點,因此有必要針對水體本身特性設(shè)計提取方法。
綜上,本文針對水體地物本身的光譜和形狀特性,結(jié)合目標(biāo)水體的光譜信息分量和形態(tài)學(xué)原理,設(shè)計利用改進(jìn)的分水嶺算法對水體進(jìn)行分割提取的試驗算法,以期使分水嶺算法對水體提取達(dá)到較好的效果。
高分二號(GF-2)衛(wèi)星的多光譜空間分辨率為4 m,全色空間分辨率1 m,輻射分辨率10 bit,重訪周期5 d。高分衛(wèi)星具有較高的空間分辨率、輻射分辨率,重訪周期較短,可以為地方河道信息提取提供很好的數(shù)據(jù)來源。
濰坊位于山東半島中部,區(qū)域內(nèi)有濰河南北貫穿,流入渤海灣,是濰坊地區(qū)最重要的地表水源。本文中選取濰坊市2015年5月16日的高分影像(119.1°E,36.7°N)用于水體提取研究。
2.1.1 標(biāo)準(zhǔn)分水嶺算法
分水嶺分割是以拓?fù)湫螒B(tài)學(xué)理論為基礎(chǔ)的圖像分割算法[11],其核心思想是把圖像想象為地理學(xué)中的地貌,各像素值代表這一點海拔高度,那么積水盆地為包含局部極小值點及其影響的區(qū)域,分水嶺則是這些集水盆地的邊界。分水嶺的形成是一個浸入過程,在整個地表的每個局部極小值下部扎孔,再將地表浸入水中,各局部極小值所涵蓋的區(qū)域隨著浸入水深的增加而增加,此時在兩個集水盆之間的部分就是分水嶺[12]。生成分水嶺的過程是通過迭代標(biāo)注計算的,文獻(xiàn)[7]將其分為兩步,首先對圖像中所有點按灰度級從低到高排序,然后在淹沒時對各極小值點采用先進(jìn)先出(FIFO)結(jié)構(gòu)判斷和標(biāo)注其影響域。
2.1.2 基于Canny邊緣檢測的分水嶺算法
該方法是首先采用高斯濾波線性平滑濾波器除去圖像噪聲,然后通過Canny算子[13]計算得到邊緣,最后找到算子提取的邊緣輪廓并存儲,通過這些邊緣極值作為標(biāo)記進(jìn)行分水嶺分割。這就相當(dāng)于文獻(xiàn)[14]中從梯度圖的極小值點作為標(biāo)記進(jìn)行分水嶺分割。
2.1.3 基于形態(tài)濾波與標(biāo)記的分水嶺分割方法
基于形態(tài)濾波與標(biāo)記的分水嶺分割首先對圖像用混合開閉重構(gòu)進(jìn)行濾波,其次計算圖像的Sobel算子梯度圖,接著進(jìn)行混合開閉重構(gòu)計算,然后用H-minima方法找到梯度圖的局部最小值并進(jìn)行標(biāo)記,最后對標(biāo)記圖和原圖進(jìn)行分水嶺變換提取圖像中的水體目標(biāo)[14]。
本文利用光譜信息分量圖和形態(tài)學(xué)原理改進(jìn)的分水嶺變換提取水體的具體過程如圖1所示。一方面對原始圖像中紅綠藍(lán)三波段進(jìn)行閾值控制提取出水體的光譜信息分量,并進(jìn)行閉運算修飾,得到光譜信息分量前景標(biāo)記;另一方面將原始圖像二值化并膨脹得到背景標(biāo)記。將光譜信息分量前景標(biāo)記和背景標(biāo)記疊加得到整體分水嶺變換標(biāo)記圖,最后由標(biāo)準(zhǔn)分水嶺變換得到水體提取結(jié)果。
2.2.1 目標(biāo)水體光譜分量獲取
遙感圖像中地物的光譜特性是指自然界存在的地物都有吸收、反射、向外發(fā)射太陽輻射能的特性[15],不同的地物本身反射或吸收電磁波的特性也不同。由于不同地物在不同波段的反射特性表現(xiàn)為在不同波段的像素值大小,因此本文利用水體在遙感圖像上呈現(xiàn)暗色,在紅綠藍(lán)3個波段的反射率都比較低的特性,提取在3波段像素值都比較低的部分作為遙感圖像中水體的光譜信息分量圖。具體做法是采用閾值控制,使得3個波段像素值都低于20(閾值由多次試驗經(jīng)驗所得)的像素保留,其他的像素值都修改為255。如圖2所示,其中(a)和(b)是原始圖像,分別是濰坊市濰城區(qū)北側(cè)和南側(cè)的濰河河道,(c)和(d)則分別是(a)和(b)所對應(yīng)的水體光譜分量圖。
2.2.2 基于形態(tài)學(xué)的前景標(biāo)記修飾和背景標(biāo)記生成
(1) 基于形態(tài)學(xué)膨脹的背景標(biāo)記生成。形態(tài)學(xué)中圖像A由結(jié)構(gòu)元素B膨脹表達(dá)為[16]
A⊕B=[ACΘ(-B)]C
(1)
圖3(g)和圖4(g)是分別對原始影像1和原始影像2經(jīng)過閾值分割后的二值圖進(jìn)行膨脹修飾的結(jié)果,如此即可獲取到目標(biāo)的形狀特征信息圖。
(2) 基于形態(tài)學(xué)閉運算[16]的前景標(biāo)記修飾。閉運算定義為對圖像A先膨脹,再腐蝕
A°B=(A⊕B)ΘB
(2)
它可以連接較近目標(biāo)物、填充目標(biāo)細(xì)小空洞[17]。圖3(f)是對圖2(c)的水體光譜分量圖先進(jìn)行二值化并黑白反轉(zhuǎn),再進(jìn)行閉運算的結(jié)果,以達(dá)到將水體目標(biāo)內(nèi)部空洞填充的目的,使得接下來的分割操作得到的目標(biāo)水體更加完整,從而避免內(nèi)部破碎。在通過數(shù)學(xué)形態(tài)學(xué)運算進(jìn)行前景標(biāo)記修飾和背景標(biāo)記生成之后,疊加前景圖和背景圖得到復(fù)合標(biāo)記圖,如圖3(h)和圖4(h)所示,然后在復(fù)合標(biāo)記圖中進(jìn)行標(biāo)準(zhǔn)分水嶺分割即可得到本文的試驗結(jié)果。
為了驗證本文算法對于水體提取的有效性,本文選擇了山東濰坊地區(qū)濰河水域的高分圖像開展試驗,并且實現(xiàn)了OpenCV[18]中手動標(biāo)記種子點的分水嶺算法、基于Canny邊緣的分水嶺算法、結(jié)合形態(tài)濾波和標(biāo)記的分水嶺分割方法等多種不同算法與本文算法水體提取效果的比較。本文算法用C++和Matlab實現(xiàn)。
圖3和圖4是文獻(xiàn)[14]和本文分別對原始圖像1和原始圖像2的分割結(jié)果。其中圖3(a)和圖4(a)分別為原始圖像1和原始圖像2;圖3(b)和圖4(b)為相應(yīng)的Sobel梯度圖;圖3(c)和圖4(c)為混合開閉重構(gòu)形態(tài)修正后的梯度圖像;圖3(d)和圖4(d)為運用擴(kuò)展極小變換H-minima算法[19]分別對圖3(c)和圖4(c)進(jìn)行極值標(biāo)記的結(jié)果圖像;圖3(e)和圖4(e)是在圖3(d)和圖4(d)的標(biāo)記圖中用分水嶺變換進(jìn)行水體提取的結(jié)果。試驗結(jié)果對比表明文獻(xiàn)[14]方法只能提取部分輪廓并且不準(zhǔn)確,提取的水體破碎不完整,而本文算法先對獲取的光譜信息分量圖進(jìn)行閉運算修飾(如圖3(f)和圖4(f)所示),再結(jié)合膨脹運算獲得背景圖(如圖3(g)和圖4(g)所示),通過疊加得到整體復(fù)合標(biāo)記圖(如圖3(h)和圖4(h)所示),最終得到水體提取的結(jié)果(如圖3(i)和圖4(i)所示),以及水體目標(biāo)的分割線(如圖3(j)和圖4(j)所示)。本文算法明顯對水體提取相對較完整,輪廓較清晰,效果優(yōu)于文獻(xiàn)[14]。
圖5是運用多種不同分割方法對原始圖像1和圖像2的分割結(jié)果對比。圖5(b)和圖5(g)是采用了OpenCV[18]中手動標(biāo)記種子點的分水嶺算法,其中圖5(b)用了3個標(biāo)記點,圖5(g)用了13個標(biāo)記點,可以看出種子點過多或過少都會導(dǎo)致提取的水體部分缺失或誤添,很難找到合適種子點的數(shù)目和坐標(biāo)位置,而即使找到合適標(biāo)記點,也不能保證它分割的全部是水體,如圖5(b)和圖5(c)與圖5(e)相比主體水塊右上角誤判,非水體部分依然過多地劃分為水體的范圍。而在圖5(g)和圖5(h)中,都會對原始河道水體提取得過寬,這是由于它自動將圖像中河道兩邊的深紅色部分也進(jìn)行灌水標(biāo)記,使得最后的結(jié)果不準(zhǔn)確。另外采用這種方法需要手動標(biāo)記種子點,無法實現(xiàn)自動提取。
圖5(d)和圖5(i)是運用高斯濾波和Canny邊緣檢測算子提取圖像邊緣,然后通過標(biāo)記輪廓的方式找到重要的標(biāo)記點和標(biāo)記線,最后執(zhí)行分水嶺分割。雖然可以將一些地物分塊,但無法將水體與其他地物區(qū)別開來,并且水體塊破碎,即使改進(jìn)算法可將相同水體區(qū)域合并也無法得到完整結(jié)果,只是破碎會減弱,并且目標(biāo)水體與周圍地物仍會混淆。
相對于前面提到的幾種分割方法對于水體無法取得理想提取效果而言,本文算法通過試驗對比驗證了它可將水體目標(biāo)與其他地物相區(qū)別并提取出來,且完整不破碎,也無需人工手動標(biāo)記,是一種可以自動實現(xiàn)的有效的水體提取方法。
本文針對水體在遙感圖像中的特殊光譜特性,并結(jié)合其形狀特性采用了標(biāo)準(zhǔn)分水嶺算法進(jìn)行分割。將實現(xiàn)結(jié)果與多種方法進(jìn)行了對比分析,證明本文提取的水體目標(biāo)突出,可與周圍地物明顯區(qū)分,提取結(jié)果完整準(zhǔn)確,是一種有效的水體提取方法。