一種基于形態學對建筑物圖像快速識別的方法
【技術領域】
[0001]本發明涉及一種基于形態學對建筑物圖像快速識別的方法,屬于地理信息科學領域。
【背景技術】
[0002]在進行國土資源的土地監控的時候,常常需要識別攝像機的監控區域是土地農田還是建筑物,傳統的和一般的方法為基于遙感識別和紋理特征識別,而這兩種識別方式在實時性上都有很大問題,基于遙感數據多速度慢,效率低;基于紋理特征對建筑物圖像進行識別時,速度慢且穩定性差,極易受到外界其他環境變化和光線等影響,魯棒性不好。
【發明內容】
[0003]發明目的:針對上述現有技術,提出一種基于形態學對建筑物圖像快速識別的方法,解決建筑物識別速度慢及魯棒性不好的問題,實現了建筑物圖像快速準確識別的目的。
[0004]
【發明內容】
:一種基于形態學對建筑物圖像快速識別的方法,包括以下步驟:
[0005]SI,使用canny算子對圖像進行邊緣提取得到二值圖像,然后通過八鄰域輪廓跟蹤算法對所述二值圖像進行目標輪廓的掃描跟蹤,得到由跟蹤掃描點構成的η條跟蹤曲線;
[0006]S2,根據每條跟蹤曲線上跟蹤掃描點的數量,對每條跟蹤曲線進行精簡刪除,然后通過DP簡化線算法對曲線進行精簡和修正,得到若干條直線;
[0007]S3,設定直線的水平和垂直方向的長度閾值Α,并設定直線的其他方向的長度閾值B,對所述若干條直線進行精簡,保留長度大于等于A的水平和垂直方向的直線,以及長度大于等于B的其他方向的直線;
[0008]S4,以直線的長度值的平方作為權值,對步驟S3精簡后的各直線的角度分布進行統計;若統計結果在0°、90°和180°鄰域同時呈現峰值,則繼續進行步驟S5,否則判定圖像中不含建筑物;
[0009]S5,依次尋找相互約束的垂直直線和水平直線組,具體為:
[0010]a,在步驟S3精簡后的各直線中,尋找第一條垂直直線并記其長度為Dl,并把所述第一條垂直直線保存在Vector_V單元中;
[0011]b,尋找第一條水平直線,若第一條水平直線長度大于D1,則把所述第一條水平直線保存在Vect0r_L單元中,否則忽略該第一條水平直線,繼續尋找長度大于Dl的下一條水平直線并保存在所述Vect0r_L單元,若遍歷所有水平直線的長度均小于等于D1,則判定圖像中不含建筑物;
[0012]c,尋找第二條垂直直線并記其長度記為D2,并把所述第二條垂直直線保存在Vector_V單元中;
[0013]d,尋找下一條水平直線,若該水平直線長度大于D2,則把該水平直線保存在Vector_L單元中,否則忽略該水平直線,繼續尋找長度大于D2的下一條水平直線并保存在所述Vector_L單元;
[0014]e,依照步驟a至d,遍歷步驟S3精簡后的各條直線,得到相互約束的垂直直線和水平直線組;
[0015]S6,若Vect0r_V單元中的垂直直線總量小于2,則判定圖像中不含建筑物,否則在Vector_V單元中尋找長度最長的2條垂直直線,并在Vector_L單元中尋找長度最長的2條水平直線;對所述長度最長的2條水平線直和2條垂直直線的任意兩個端點進行距離判斷,若距離小于預設值T,判定存在建筑物。
[0016]作為本發明的優選方案,所述步驟SI中,通過八鄰域輪廓跟蹤算法對所述二值圖像進行目標輪廓的掃描跟蹤,具體為:將掃描到的第一個點記為跟蹤起點,從二值圖像中的跟蹤起點開始對其八個鄰域進行掃描跟蹤,將掃描得到的跟蹤掃描點進行標記,同時對掃描得到的跟蹤掃描點的八鄰域繼續進行掃描跟蹤,直到沒有新的跟蹤掃描點,得到一條跟蹤曲線;
[0017]其中,對所述跟蹤掃描點的八鄰域進行掃描跟蹤時,若所述跟蹤掃描點的八鄰域中出現2個新的跟蹤掃描點,則對這兩個方向同時繼續掃描跟蹤,若跟蹤掃描點的鄰域多于2個新的跟蹤掃描點,則按掃描得到的第一個跟蹤掃描點進行優先掃描跟蹤。
[0018]作為本發明的優選方案,所述步驟S4中,對各直線的角度分布進行統計時,先以圖像的左上角為為坐標原點,建立直角坐標系,獲取步驟S3精簡后的各直線的角度;進行峰值判斷時,先分別得出0°?20°區間、75°?115°區間、160°?180°區間內所述權值的最大值,分別記為L1、L2和L3 ;若L1、L2和L3的值均大于2000,且0°?180°內其他區間的直線長度值的平方均小于200時,則表明在0°、90°和180°鄰域同時呈現峰值。
[0019]有益效果:本發明的一種基于形態學對建筑物圖像快速識別的方法,識別速度快且魯棒性好,進一步來說,該方法可以適用于任意季節的建筑物,處理樹葉對建筑識別的干擾的魯棒性很強,區分建筑物與土地農田效果明顯;另外,本發明克服了基于特征區域對建筑物識別時樹木樹葉的嚴重干擾,快速準確的識別出建筑物圖像。
【附圖說明】
[0020]圖1為本發明基于形態學對建筑物圖像快速準確識別方法的流程示意圖;
[0021]圖2為圖像目標掃描跟蹤流程示意圖。
【具體實施方式】
[0022]下面結合附圖對本發明做更進一步的解釋。
[0023]如圖1所示,一種基于形態學對建筑物圖像快速識別的方法,具體為:
[0024]SI,使用canny算子對圖像進行邊緣提取得到二值圖像,然后通過八鄰域輪廓跟蹤算法對該二值圖像進行目標輪廓的掃描跟蹤,得到由跟蹤掃描點構成的η條跟蹤曲線。
[0025]如圖2所示,通過八鄰域輪廓跟蹤算法對二值圖像進行目標輪廓的掃描跟蹤,具體為:將掃描到的第一個點記為跟蹤起點,從二值圖像中的跟蹤起點開始,按鄰域掃描順序對其八個鄰域進行掃描跟蹤,將掃描得到的跟蹤掃描點進行標記,同時對掃描得到的跟蹤掃描點的八鄰域繼續進行掃描跟蹤;若跟蹤掃描點的八鄰域中出現2個新的跟蹤掃描點,則對這2個新的跟蹤掃描點進行標記并對這兩個方向同時繼續掃描跟蹤,若跟蹤掃描點的鄰域多于2個新的跟蹤掃描點,則對這多個新的跟蹤掃描點進行標記并按掃描得到的第一個跟蹤掃描點進行優先掃描跟蹤,直到沒有新的跟蹤掃描點,得到一條跟蹤曲線,并存入容器list中。按此方法將得到的η個曲線list依次存放list容器List_Curves中。由于二值圖像本身沒法進行數據信息的處理,通過八鄰域輪廓跟蹤算法對該二值圖像進行目標輪廓的掃描跟蹤是后續識別和判定的前提和基礎。
[0026]S2,由于掃描得到的η個曲線list的數據存儲過于復雜,且其中存在許多短線,不便于后續對建筑物的快速識別,根據每條跟蹤曲線上跟蹤掃描點的數量,對每條跟蹤曲線進行精簡刪除,如除去點數少于8點的曲線。然后通過DP (Douglas—Peucker)簡化線算法對曲線進行精簡和修正,得到若干條直線,此時直線list存儲數據結構的簡便,便于后續程序的調用,識別速度大大提高,并將修正過的直線list存放在容器List_DP中。
[0027]S3,針對樹葉干擾對建筑物輪廓的嚴重干擾問題,我們利用自然界事物(如樹葉)在形態學上表現出各向同性,建筑物曲線輪廓在水平和垂直方向的顯著特征,將水平垂直類直線與其他角度上的直線進行不同程度裁剪,達到減少樹葉對建筑物輪廓干擾的目的,具體做法為:對容器List_DP中各直線,設定直線的水平和垂直方向的長度閾值A,并設定直線的其他方向(即不為水平、垂直方向)的長度閾值B,對若干條直線進行精簡,保留長度大于等于A的水平和垂直方向的直線,以及長度大于等于B的其他方向的直線,然后更新容器并存入容器List_DP從而完成對曲線的修正和精簡;其中