專利名稱:一種基于v圖的柵格地圖矢量化方法
技術領域:
本發明涉及一種基于V圖的柵格地圖矢量化方法,屬于柵格地圖矢量化技術領域。
背景技術:
隨著GIS技術在城市數字化社區的廣泛應用,以地形圖空間數據為主的基礎數據采集已成為GIS成功運用的先決條件。柵格圖形的矢量化是當前處理地形圖空間數據的主要技術。眾所周知,矢量圖的制作一般都是以柵格圖為依據,通過手工標繪或計算機輔助標繪等手段生成。因為手工標繪方法工作繁重,因此計算機輔助標繪方法一直是國內外自動矢量化技術的研究重點。柵格圖形矢量化是一個綜合了計算機視覺,計算機圖像處理,計算機圖形學和人工智能等各個學科的交叉課題。多年來的理論及實踐為此課題的研究奠定了良好的基礎,但也存在著一些問題。由于其應用背景的復雜性以及需求的多樣性,目前的研究結果普遍存在處理速度慢,智能程度低,以及適應性能差等特點。矢量化軟件很少有在通用性上能較好地滿足實際需求。在矢量化過程中,提取目標圖形骨架線是實現柵格矢量轉換的核心內容。由于骨架能夠準確地反映空間對象的幾何結構特征,利用骨架來表示圖像中已經提取的線狀目標,可以在保證目標重要拓撲特征的前提下,最大限度地減少目標存貯記錄中的冗余信息, 是一個受到廣泛關注的研究課題,前人的相關研究很多。迄今為止,已有大量的骨架提取算法,大致可歸納為迭代和非迭代算法兩類。近年來還出現了一些利用Voronoi圖(文中也簡稱V圖)來求解骨架的方法。這些方法都是對柵格圖形生成Voronoi圖,并通過各自的判定規則(如Nirangan Mayya提出的帶有島的Voronoi圖骨架提取算法),提取Voronoi 圖中的某些邊,作為該圖形的骨架線,從而達到矢量化的目的。然而現有基于V圖的提取骨架線方法大多存在運算復雜,矢量化時間長,需要人工手動修正等缺陷。
發明內容
本發明要解決技術問題是克服現有技術的上述不足,提供一種基于V圖的柵格地圖矢量化方法,其能夠以較快的速度處理較為復雜的掃描地圖,且能得到較好的矢量化效果。為了解決以上技術問題,本發明提供的基于V圖的柵格地圖矢量化方法,包括以下步驟第一步、對單要素柵格圖進行黑白二值化;第二步、通過邊界追蹤方法提取柵格圖中要素的邊界柵格,從而獲得以所述邊界柵格為要素的邊界柵格圖;第三步、對所述邊界柵格圖進行線掃描,將邊界柵格圖中的弧段打斷形成若干弧段單元,并且對所述邊界柵格圖的所有弧段單元標以唯一編號值;第四步、以第二步提取的邊界柵格中各柵格的中心點生成V圖,其中,各V圖邊的特征信息中均包含有生成該V圖邊的兩個基礎點所在弧段單元的編號值;第五步、判斷V圖中各V圖邊,若生成該V圖邊的兩個基礎點所在弧段單元為同一弧段單元或相鄰弧段單元,則剔除該V圖邊,否則保留;第六步、若第五步保留下的V圖邊的兩個端點所在柵格均為黑色,則保留該V圖邊,反之則剔除,最終保留的V圖邊構成單要素柵格圖的矢量化結果。本發明的創新點在于,對掃描打斷的弧段單元標以唯一編號值,并且將該編號值帶入V圖的運算過程,從而使得每條V圖邊都包含有其兩個基礎點所在弧段單元的編號值, 并據此來判斷該V圖邊是否由同一或相鄰弧段單元中的基礎點所產生,而據本領域技術人員所知,對于屬于同一或相鄰弧段單元的兩基礎點所產生V圖邊不為提取目標圖形的骨架線,因此本發明能較準確的去除V圖中明顯不屬于骨架線的V圖邊,為進一步完成骨架線的提取做出了突出貢獻。然而在傳統矢量化方法獲得的V圖中,各V圖邊均不包含任何關于“弧段單元”的信息,V圖邊之間僅僅存在坐標差異,僅僅通過坐標來判定V圖邊是否在骨架線上顯然是不可能做到的,因此還需要結合圖形的特點,設計判斷方法,這對于快速提取骨架線帶來了很大的麻煩。可見,針對這種不包含任何弧段單元信息的V圖,提取骨架線的方法是十分復雜的,運算量巨大、耗時長、錯誤率高,并且需要人工進行修正。而本發明正是通過引入“弧段單元”編號值這一信息,巧妙的解決了傳統柵格圖矢量化過程中骨架線提取的難題,對V圖邊的判斷準確而快速,大大縮短矢量化時間,而且最終獲得的矢量圖幾乎不需要再進行人工修正。針對多要素彩色待矢量化柵格地圖,則首先通過分色,得到多個單色的單要素柵格圖,再分別對單要素柵格圖執行第一步至第五步。此外本發明還提供兩種打斷弧段的方法,分別基于行掃描、列掃描本發明第三步中,基于行掃描的打斷弧段的方法如下逐行掃描邊界柵格圖,如果與掃描線相交的柵格點為弧段頂點,則將弧段從該頂點處打斷;當存在連續多個柵格點與某一條掃描線相交,則判斷首尾柵格點處的聯通情況, 如果首尾柵格點皆為上聯通或皆為下聯通,則將弧段從所述的首尾柵格點處打斷。本發明第三步中,基于列掃描的打斷弧段的方法如下逐列掃描邊界柵格圖,如果與掃描線相交的柵格點為弧段的頂點,則將弧段從該頂點處打斷;當存在連續多個柵格點與某一條掃描線相交,則判斷首、尾柵格點處的聯通情況,如果首、尾柵格點皆為左聯通或皆為右聯通,則將弧段從所述的首、尾柵格點處打斷。端點的提取是決定地圖矢量化效果的重要因素之一。本發明利用提取獲得的端點將弧段打斷成若干弧段單元,這給后續的判斷提供了便利。本發明基于Voronoi圖提取骨架線的思想,提出了一種對掃描地圖自動矢量化的方法。該方法借助圖像二值化、邊界追蹤、端點掃描等預處理手段,依據特有的端點編號機制和骨架判定規則,較為精確地提取地圖要素的骨架線,達到矢量化的目的。試驗結果表明,對于處理較復雜的掃描地圖,無論是在速度還是效果上均能較好地滿足實際需求。
下面結合附圖對本發明作進一步的說明。
圖1是黑白二值化后的柵格圖像。圖2是對圖1進行處理獲得的邊界柵格圖。圖3為線掃描圖2將弧段打斷成弧段單元示意圖。圖4為基于圖2生成的V圖。圖5為利用本發明第五步處理圖4后保留的V圖。圖6為圖1的矢量化結果。
具體實施例方式下面根據附圖詳細說明本發明,本發明的目的和效果將變得更加明顯。本實施例基于V圖的柵格地圖矢量化方法,包括以下步驟第一步、對單要素柵格圖進行黑白二值化,獲得圖1 ;為了便于進行柵格數據向矢量數據的轉換,需要對掃描地圖進行二值化處理。這是因為通常掃描后的原始地圖是以不同灰度級存儲的,而太多的灰度級不便于進行矢量化處理,故需進行壓縮,通常壓縮為兩級 (0和1),這個過程就稱為二值化。二值化處理的目的是從地像中分割出各地圖要素,將地圖要素與地圖背景作為二值圖像對待。目前最常用的地圖掃描圖像二值化方法是定閾值二值化方法,對于反差較大的掃描地圖,一般均可取得比較令人滿意的結果。該方法的關鍵是在灰度級的最大和最小值之間選取一個合理的閾值,當灰度級小于閾值時,取為0,反之,取1。本實施例針對8位256色bmp圖像,由于該類地圖中要素與背景的顏色反差比較明顯,其中地圖的背景部分主要為白色,因此二值化過程比較簡單,只需將圖像中的白色與非白色部分賦予不同的值(非白色部分一律賦予黑色),即可得到效果較好的二值黑白圖。第二步、通過邊界追蹤方法提取柵格圖中要素的邊界柵格,從而獲得以所述邊界柵格為要素的邊界柵格圖(圖2)。對二值柵格數據的邊界追蹤是本掃描地圖矢量化方法的重要步驟之一。迄今為止,已有很多關于圖像邊界的計算方法,且比較成熟。目前比較常見的一種方法是窗口匹配法,該方法的核心是采用2X2的柵格窗口對邊界線進行搜索,在每個窗口內的四個柵格的數據模式可以唯一地確定下一弧段的搜索方向。第三步、對所述邊界柵格圖進行線掃描,將邊界柵格圖中的弧段打斷形成若干弧段單元,并且對所述邊界柵格圖的所有弧段單元標以唯一編號值。本步驟中,采用基于行掃描的打斷弧段的方法,具體方法如下逐行掃描邊界柵格圖,如果與掃描線相交的柵格點為弧段的頂點,則將弧段從該頂點處打斷;當存在連續多個柵格點與某一條掃描線相交,則判斷首、尾柵格點處的聯通情況,如果首、尾柵格點皆為上聯通或皆為下聯通,則將弧段從所述的首、尾柵格點處打斷。頂點判斷條件是,當某個柵格單元兩側只存在上聯通或只存在下聯通,那么滿足該條件的柵格單元即為判斷為頂點。如圖3所示,利用本實施例中的打斷弧段方法將圖中的兩個弧段一共打斷成8段弧段單元,并且對他們進行編號。具體編號方式可以是順序編號,也可以是隨機編號,如果采用順序編號,則可以通過編號規則來判斷兩基礎點是否位于相鄰弧段單元;如果隨機編號,則編號后可建立弧段單元的表格,在表格中呈現弧段之間的關系,可通過查詢表格來判斷兩基礎點是否位于相鄰弧段單元。本步驟編號的目的是在判斷生成V圖邊的兩基礎點所在弧段單元之間的關系,置于編號的具體規則和方法不限。除了基于行掃描的打斷弧段的方法以外,本發明還提供一種基于列掃描的打斷弧段的方法逐列掃描邊界柵格圖,如果與掃描線相交的柵格點為弧段的頂點,則將弧段從該頂點處打斷;當存在連續多個柵格點與某一條掃描線相交,則判斷首、尾柵格點處的聯通情況,如果首、尾柵格點皆為左聯通或皆為右聯通,則將弧段從所述的首、尾柵格點處打斷。從理論上講,最理想的情況是找到邊界柵格圖的首尾端點,并從首尾端點處斷開, 依次最終提取出來的骨架線是最精確的,且運算量是最小的。雖然用人眼識別簡單界柵格圖的首尾端點比較容易,然而利用計算機識別卻十分困難,迄今為止仍然沒能突破,成為本學術領域難題之一。針對此難題,發明人另辟蹊徑,巧妙的通過線掃描方式選取頂點及滿足一定條件的同一掃描線上連續柵格的首尾來進行分割,經實踐表明,采用該方法分割弧段,雖然弧段單元數量較多,但能較為精確地提取地圖要素的骨架線,達到矢量化的目的。第四步、以第二步提取的邊界柵格中各柵格的中心點生成V圖(圖4),其中,各V 圖邊的特征信息中均包含有生成該V圖邊的兩個基礎點所在弧段單元的編號值。適當改進V圖的算法,在每條V圖邊生成的過程中增加兩個變量,分別將兩個基礎點所在弧段單元的編號值賦值給這兩個變量,并且最終這兩個變量被包含在V圖邊的信息中,這樣就能夠提取這兩個變量值,并且據此進行第五步中的判斷。第五步、判斷V圖中各V圖邊,若生成該V圖邊的兩個基礎點所在弧段單元為同一弧段單元或相鄰弧段單元,則剔除該V圖邊,否則保留;保留結果見圖5。經過上述步驟提取的骨架線(V圖邊集合),并未達到最終矢量化的要求。圖5為初步提取的骨架線圖,可以看出除位于地圖要素之內的真骨架線以外,還存在介于兩相鄰地圖要素間的假骨架線。那么就需要執行第六步剔除假骨架線。第六步、若第五步保留下的V圖邊的兩個端點所在柵格均為黑色,則保留該V圖邊,反之則剔除,最終保留的V圖邊構成單要素柵格圖的矢量化結果。對于真假骨架線的篩選,本步驟中將柵格數據與矢量數據結合,通過判斷V圖邊與地圖要素的包含關系來達到目的。具體篩選過程為,將V圖邊的兩個頂點的坐標值轉換為網格行列號,判斷這兩個網格在二值黑白圖中的顏色,由于地圖要素均為黑色,因此若兩個網格同時為黑色,證明該V圖邊包含于地圖要素中,為真骨架線。提取所有真骨架線,得到的V圖邊的集合即為最終的矢量化結果,本步驟可以與第五步同時進行。本步驟保留真實骨架線,剔除偽骨架線,最終保留的結果即為矢量化結果。經過上述處理,可以得到最終的矢量化結果。圖1-圖6為運用本矢量化方法,對一幅簡單掃描地圖處理得到的各步驟效果圖。可以看到,各步驟處理過程都很好地圍繞地圖要素展開,沒有出現明顯偏離。基于Voronoi圖的特性,本方法提取的骨架線為地圖要素的中心線。因此,最終得到的矢量線與原掃描地圖要素能很好吻合,符合地圖矢量化的要求。利用本方法對多要素的彩色地圖進行矢量化,則首先通過分色,將彩色地圖分為多個單色的單要素柵格圖,再執行第一步至第五步。除上述實施例外,本發明還可以有其他實施方式。凡采用等同替換或等效變換形成的技術方案,均落在本發明要求的保護范圍。
權利要求
1.一種基于V圖的柵格地圖矢量化方法,包括以下步驟第一步、對單要素柵格圖進行黑白二值化;第二步、通過邊界追蹤方法提取柵格圖中要素的邊界柵格,從而獲得以所述邊界柵格為要素的邊界柵格圖;第三步、對所述邊界柵格圖進行線掃描,將邊界柵格圖中的弧段打斷形成若干弧段單元,并且對所述邊界柵格圖的所有弧段單元標以唯一編號值;第四步、以第二步提取的邊界柵格中各柵格的中心點生成V圖,其中,各V圖邊的特征信息中均包含有生成該V圖邊的兩個基礎點所在弧段單元的編號值;第五步、判斷V圖中各V圖邊,若生成該V圖邊的兩個基礎點所在弧段單元為同一弧段單元或相鄰弧段單元,則剔除該V圖邊,否則保留;第六步、若第五步保留下的V圖邊的兩個端點所在柵格均為黑色,則保留該V圖邊,反之則剔除,最終保留的V圖邊構成單要素柵格圖的矢量化結果。
2.根據權利要求1所述的基于V圖的柵格地圖矢量化方法,其特征在于如果待矢量化地圖為多要素的彩色地圖,則首先通過分色,得到多個單色的單要素柵格圖,再分別對單要素柵格圖執行第一步至第五步。
3.根據權利要求1所述的基于V圖的柵格地圖矢量化方法,其特征在于所述第三步中,打斷弧段的方法如下逐行掃描邊界柵格圖,如果與掃描線相交的柵格點為弧段的頂點,則將弧段從該頂點處打斷;當存在連續多個柵格點與某一條掃描線相交,則判斷首、尾柵格點處的聯通情況, 如果首、尾柵格點皆為上聯通或皆為下聯通,則將弧段從所述的首、尾柵格點處打斷。
4.根據權利要求1所述的基于V圖的柵格地圖矢量化方法,其特征在于所述第三步中,打斷弧段的方法如下逐列掃描邊界柵格圖,如果與掃描線相交的柵格點為弧段的頂點,則將弧段從該頂點處打斷;當存在連續多個柵格點與某一條掃描線相交,則判斷首、尾柵格點處的聯通情況, 如果首、尾柵格點皆為左聯通或皆為右聯通,則將弧段從所述的首、尾柵格點處打斷。
全文摘要
本發明基于V圖的柵格地圖矢量化方法,對掃描打斷的弧段單元標以唯一編號值,并且將該編號值帶入V圖的運算過程,從而使得每條V圖邊都包含有其兩個基礎點所在弧段單元的編號值,并據此來判斷該V圖邊是否由同一或相鄰弧段單元中的基礎點所產生,因此本發明能較準確的去除V圖中明顯不屬于骨架線的V圖邊,為進一步完成骨架線的提取做出了突出貢獻。本發明通過引入“弧段單元”編號值這一信息,巧妙的解決了傳統柵格圖矢量化過程中骨架線提取的難題,對V圖邊的判斷準確而快速,大大縮短矢量化時間,而且最終獲得的矢量圖幾乎不需要再進行人工修正。
文檔編號G06T9/00GK102332168SQ201110264498
公開日2012年1月25日 申請日期2011年9月8日 優先權日2011年9月8日
發明者崔璨, 王結臣, 胡瑋, 蒲英霞, 謝順平 申請人:南京大學