申蘭蘭
(烏魯木齊市城市勘察測繪院,新疆維吾爾自治區 烏魯木齊 830000)
自動提取DOM的道路信息要求計算機能通過相應的算法或規則代替人眼進行道路信息識別。MATLAB是一種直觀簡潔的編程軟件,可以實現多種圖形圖像處理技術,結合各種圖像處理算子可以實現道路信息的自動化提取。以MATLAB軟件為平臺,把烏魯木齊市某區DOM進行圖像預處理增強其對比度,再用Canny邊緣檢測算子和LoG(高斯拉普拉斯)邊緣檢測算子提取道路邊線,并對提取結果對比分析選出合適的邊緣檢測算子,通過對象移除算法以及圖像的基本運算實現道路信息的疊加形成道路網,這些步驟都通過編寫代碼完成,應用的時候不需要人工干預。
道路信息和其他地物信息總會有灰度色彩相似的情況,這樣會使計算機很難分辨出哪些是道路信息哪些是非道路信息。增強道路和其他地物的對比度可以使道路信息提取工作更容易。可以通過增強灰度值或色圖來調整對比度。
在MATLAB中,imadjust函數可以達到通過線性灰度調整來增強對比度的效果[1]。用法如下:A=imadjust(B,[0.15 0.9],[0 1]),這表示灰度值0.15以下與0.9以上的值映射到[0 1]范圍當中。原始DOM如圖1所示,線性變換實驗結果如圖2所示。

圖1 原始DOM

圖2 線性拉伸效果圖
銳化增強本質上是用對圖像進行卷積濾波處理的方法使圖像的亮度增強,而且不會改變專題信息,是一種很好的圖像增強方法。銳化增強可以通過一些算子來實現,Laplacian算子是線性二次微分算子,它有旋轉不變性,能夠符合不同方向的圖像邊界的銳化要求[2]。在MATLAB中其用法為H=fspecial(’laplacian’),結果如圖3所示。

圖3 Laplacian算子銳化圖像
在MATLAB中道路邊緣提取算法的實現需要借助edge函數,運用edge函數時對象是灰度或者二值化圖像,所以原始圖像要轉換成二值圖像或者灰度圖像。本次研究的對象是DOM,屬于真彩色圖像,在MATLAB中可以用G=rgb2gray(J)將命名為J的真彩色DOM轉為灰度圖像G。
Canny算子可以實現邊緣檢測功能,Canny 的目標是找到一個最優的邊緣檢測算法,即最優檢測、最優定位準則,檢測點與邊緣點一一對應。Canny邊緣檢測算法可以分為以下5個步驟:①去除噪聲,②找尋圖像的強度梯度,③消除邊誤檢,④應用雙閾值的方法來決定可能的(潛在的)邊界,⑤利用滯后技術來跟蹤邊界。在MATLAB中,edge(I,’Canny’)表示用Canny算子進行邊緣信息提取,如圖4所示。

圖4 Canny算子邊緣提取
(1)對象移除法去除噪聲
由圖4可見邊緣提取后有很多非道路信息,這些非道路信息的特點是相比道路邊緣信息特別零碎,所以可以用對象移除算法來刪除非道路信息。對象移除算法用法為K22=bwareaopen(K,50),表示刪除圖像K中面積比50小的元素,即刪除零碎的非道路信息,如圖5所示。

圖5 對象移除
(2)數學形態學去除噪聲
由圖5可知道路信息經過對象移除后還有很多細小的非道路信息,為了去除這些非道路信息,需要進一步處理,這就要借助數學形態學來實現。
數學形態學的基本思路是針對像素間的邏輯關系對數字圖像進行分析[4]。去除非道路信息要用到數學形態學中的開運算,開運算是先刪除目標的邊界點使像素變小,再把所有與目標相接觸的信息點合并到目標中的過程。開運算會刪除細小目標,并且平滑邊界時基本不會改變面積,平滑圖像輪廓的同時,會消除狹窄的部分,刪掉細的突出[4]。在MATLAB中imopen函數用來實現開運算,用法如下:K2=imopen(F,B),通過設置B的值實現不同道路方向的開運算,在一個道路網中道路方向不止一個,所以開運算修剪需要多次循環完成。例如B=strel(’line’,2,90)是針對豎直方向運算,結果如圖6所示:

圖6 豎直方向開運算修剪
(3)疊加道路信息
在每個道路方向上經過開運算與對象移除遍歷后,通過圖像基本運算中的加法運算把不同道路方向上的信息疊加起來就得到完整的道路信息。加法運算是對不同的圖像中的相同元素求平均。在MATLAB中,Z=imadd(K1,K22)就可以實現這個功能,它表示將圖像K1和K22中對應的元素相加并將值返回到Z中,結果如圖7所示。

圖7 Canny算子邊緣檢測道路疊加成果
為了驗證用MATLAB軟件平臺對道路信息進行提取的有效性并擇優選取邊緣檢測算子,對LoG算子也做了同樣的邊緣檢測實驗。LoG算子是指在做Laplacian算子邊緣處理之前對圖像做平滑處理,通常用高斯濾波器。把高斯平滑濾波器和Laplacian銳化濾波器一起應用,先消除噪聲,之后邊緣檢測[4]。LoG算子邊緣檢測結果如圖8所示:

圖8 LoG算子邊緣檢測道路疊加成果
由圖7和圖8可得,LoG算子邊緣檢測的成果比Canny算子邊緣檢測成果的對比度強,但是從細節上看南邊有些道路邊緣信息丟失較多,而Canny算子邊緣信息更加完整,為了保證道路邊緣信息的完整性使用Canny算子進行邊緣檢測較好。
用Ecognition軟件實現道路信息提取需要自己根據影像的色調、形狀、紋理、層次制定規則,要經過很多步驟,本文展示了道路信息提取過程中的第一步成果(圖9)、中間成果(圖10)、最終成果(圖11)截圖。由圖9可以看出,其優點是提取出的道路邊緣連續,缺點是有些道路邊緣無法提取出來,想要得到完整的道路網(如圖10),需要再詳細制定多個規則,而路網提取完整了又會出現很多多余的邊線,需要再制定規則剔除(如圖11),人工干預量大。

圖9 Ecognition道路信息提取成果

圖10 Ecognition道路信息提取成果

圖11 Ecognition道路信息提取成果
用MATLAB自動化提取的道路信息與用Ecognition提取的道路信息相比可知,Ecognition提取優點是道路邊線具有連續性,缺點是不夠完整,而且需要專業人士進行人工干預,費時費力;MATLAB提取優點是道路網完整,道路信息提取及處理步驟都能通過編寫代碼組合而成,客戶端應用過程中只需要選擇影像路徑,其他步驟無須人工干預,操作簡單,缺點是道路邊緣連續性不夠好。
綜上所述,在實現無人工干預的道路信息自動化提取方面,MATLAB比較有先進性,提取成果也可以滿足道路網完整的需求,并且今后也可以對道路信息提取的連續性做研究。除此之外,為了使道路信息提取質量更高應用更廣泛,還有很多方面有待研究,例如更深層次的剔除細小噪聲,將提取到的道路信息轉換為工程領域常用到的通用dwg格式并且保留坐標信息等。