一種直線檢測方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于圖像處理技術(shù)領(lǐng)域,尤其涉及一種直線檢測方法及系統(tǒng)。
【背景技術(shù)】
[0002] 隨著數(shù)字信號處理技術(shù)和計算機技術(shù)的發(fā)展,圖像處理正得到廣泛而深入的研 宄。圖像特征提取是圖像處理的一項關(guān)鍵技術(shù),直線特征是圖像中物體的基本特征之一,是 目標(biāo)識別和視覺感知的重要線索,直線往往對應(yīng)著目標(biāo)的輪廓線或者邊界。在圖像分析和 模式識別中,根據(jù)直線檢測結(jié)果可以形成線性中層符號描述,從而使圖像的表示更簡潔,便 于完成后續(xù)的圖像識別任務(wù)。因而,直線檢測在航空、衛(wèi)星圖像中道路檢測、軍事偵察、圖像 制導(dǎo)等領(lǐng)域有著廣泛的應(yīng)用。
[0003] 霍夫變換(HoughTransform)是現(xiàn)有技術(shù)常用的檢測包括直線在內(nèi)的參數(shù)化曲 線的方法。標(biāo)準(zhǔn)霍夫變換的基本思想是將圖像空間的一點變換到參量空間的曲線或曲面, 具有同一參量特征的點經(jīng)變換后在參量空間中相交,通過判斷焦點處的累積程度來完成特 征圖形的檢測。該方法具有優(yōu)異的魯棒性和極佳的抗干擾能力,對圖像中的噪聲不敏感,能 夠較好地處理局部遮擋、覆蓋等情況。但由于霍夫變換是一種窮盡式搜索,對于大圖像的檢 測,計算復(fù)雜度和空間復(fù)雜度都很高,巨大的計算量阻止了它在實時性要求很高的領(lǐng)域的 應(yīng)用。
[0004] 為了解決標(biāo)準(zhǔn)霍夫變換存在的上述問題,現(xiàn)有技術(shù)還提出了多種改進的霍夫變 換,例如概率霍夫變換(PHT)和隨機霍夫變換(RHT)等。PHT是將圖像數(shù)據(jù)映射到參數(shù)域中 具有更大概率的單元,而非所有單元,可以有效降低時間和空間開銷;RHT是通過對圖像中 像素點的隨機采樣,避免標(biāo)準(zhǔn)霍夫變換巨大的計算量,且降低了內(nèi)存需求,但RHT在處理復(fù) 雜圖像時,會引入大量無效采樣和累計,使算法性能大為降低。
[0005] 但對于圖像中點比較密集的情況,標(biāo)準(zhǔn)霍夫變換的直線檢測會窮盡式搜索所有 點,計算量大,且計算得到的P非常大,則P-0平面也將非常大,耗費大量的存儲空間。快 速的霍夫變換直線檢測雖然能降低運算量,但是內(nèi)存空間卻增加了,而PHT會對斷裂比較 敏感,所以標(biāo)準(zhǔn)霍夫變換和改進的霍夫變換直線檢測并未解決虛直線檢測中運算量大、存 儲空間大的問題,同時,在檢測過程中,由于丟失了線段的端點和長度信息,因而不能直接 定位直線段。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的目的在于提供一種直線檢測方法,旨在解決現(xiàn)有的標(biāo)準(zhǔn)霍夫變換及其各 種改進算法由于運算量大、占用存儲空間大、檢測速度慢而不適用于檢測虛直線,且由于檢 測過程丟失了線段端點和長度信息而不適用于直線段定位的問題。
[0007] 本發(fā)明是這樣實現(xiàn)的,一種直線檢測方法,所述方法包括以下步驟:
[0008] 從待處理圖像中抽取種子點,得到種子點集合和補點集合;
[0009] 構(gòu)建累積矩陣并初始化,所述累積矩陣的第一維下標(biāo)為種子點的序號,所述累積 矩陣的第二維下標(biāo)為直線方向角量化值的編號,所述累積矩陣中的每一元素作為一個累積 單元,各所述累積單元的初始值均為0 ;
[0010] 求解所述種子點集合中各種子點與所述補點集合中各補點之間連線的方向角;
[0011] 按照種子點-補點連線方向角與相鄰方向角量化值的距離成反比的方式,對所述 累積矩陣中相應(yīng)的累積單元進行累積;
[0012] 對經(jīng)累積后的所述累積矩陣取門限來得到直線參數(shù)。
[0013] 本發(fā)明的另一目的在于提供一種直線檢測系統(tǒng),所述系統(tǒng)包括:
[0014] 抽取模塊,用于從待處理圖像中抽取種子點,得到種子點集合和補點集合;
[0015] 構(gòu)建模塊,用于構(gòu)建累積矩陣并初始化,所述累積矩陣的第一維下標(biāo)為種子點的 序號,所述累積矩陣的第二維下標(biāo)為直線方向角量化值的編號,所述累積矩陣中的每一元 素作為一個累積單元,各所述累積單元的初始值均為 0 ;
[0016] 計算模塊,用于求解所述種子點集合中各種子點與所述補點集合中各補點之間連 線的方向角;
[0017] 累積模塊,用于按照種子點-補點連線方向角與相鄰方向角量化值的距離成反比 的方式,對所述累積矩陣中相應(yīng)的累積單元進行累積;
[0018] 檢測模塊,用于對經(jīng)累積后的所述累積矩陣取門限來得到直線參數(shù)。
[0019] 本發(fā)明提出的直線檢測方法及系統(tǒng)是從待處理圖像中抽取種子點,以種子點及種 子點和補點之間連線的方向角作為直線參數(shù)來構(gòu)造新的累計矩陣,并按種子點-補點連線 方向角與相鄰方向角量化值的距離成反比的方式,對累積矩陣進行累積,最后對累積矩陣 取門限即可得到直線參數(shù)。由于采用了新的累積矩陣和二維反正切查找表的方法,相對于 現(xiàn)有的標(biāo)準(zhǔn)霍夫變換及其各種改進算法,減小了運算量,節(jié)省了內(nèi)存空間,并可精確定位直 線段,非常適用于在嵌入式系統(tǒng)等運算和存儲資源有限情況下對虛直線的快速定位。
【附圖說明】
[0020] 圖1是本發(fā)明實施例提供的直線檢測方法的流程圖;
[0021] 圖2是本發(fā)明實施例中,求解方向角的步驟的詳細(xì)流程圖;
[0022] 圖3a是本發(fā)明實施例的實驗中,從一個角度采集到的隱形二維碼圖;
[0023] 圖3b是本發(fā)明實施例的實驗中,從另一個角度采集到的隱形二維碼圖;
[0024] 圖4是本發(fā)明實施例提供的直線檢測系統(tǒng)的結(jié)構(gòu)圖;
[0025] 圖5是圖3中,計算模塊的結(jié)構(gòu)圖。
【具體實施方式】
[0026] 為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對 本發(fā)明進行進一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。
[0027] 為了能夠?qū)崿F(xiàn)對虛直線的快讀檢測,本發(fā)明實施例提出的直線檢測方法及系統(tǒng)是 從待處理圖像中抽取種子點,以種子點及種子點和補點之間連線的方向角作為直線參數(shù)來 構(gòu)造新的累計矩陣,按種子點-補點連線方向角與相鄰方向角量化值的距離成反比方式, 對累積矩陣進行累積,最后對累積矩陣取門限即可得到直線參數(shù)。
[0028] 圖1示出了本發(fā)明實施例提供的直線檢測方法的流程,包括以下步驟:
[0029]S1;從待處理圖像中抽取種子點,得到種子點集合和補點集合。
[0030] 其中,種子點集合的各元素分別為種子點的坐標(biāo),補點集合的各元素分別為補點 的坐標(biāo)。本發(fā)明實施例中,補點是指待處理圖像的全部圖形上的全部像素點除去種子點后, 剩余的各像素點。
[0031] 假設(shè)待處理圖像的全部圖形上的全部像素點的集合為D= {Qt= (xt,yt),t= 1,2,3...1(},種子點集合為2=%=0^^),1 = 1,2,3...,1},且2^〇,則補點集合可 表示為B=D-Z= {Bj= (x』,yp,j= 1,2, 3. ? ?K-L}。
[0032] 根據(jù)圖像成像特點,圖像中心區(qū)域的扭曲、失真最小,故可在待處理圖像的中心區(qū) 域抽取部分點作為種子點。
[0033] S2:構(gòu)建累積矩陣\xs并初始化,累積矩陣的第一維下標(biāo)為種子點的序號,累積矩 陣的第二維下標(biāo)為直線方向角量化值的編號,以使得累積矩陣中各累積單元的初始值均為 0,
[0034] 本發(fā)明實施例中,累積矩陣可表示為\xs,其中,L為種子點集合中的元素個 數(shù),S為種子點與補點連線的方向角的量化級數(shù)量,也稱為種子點與補點連線的方向角 a(0<a< 31)的等份數(shù),參數(shù)空間內(nèi)累積矩陣\xs中的每一元素分別對應(yīng)種子點和 過種子點直線的方向角量化值,累積矩陣\xs中的每一元素作為一個累積單元,累積矩陣 AuS中第i行且第j列元素可表示為A(i,j),則A(i,j)對應(yīng)過種子點Zi方向角為a』= (j-1)XA0,j= 1,2,…,S,其中,A0 = 3i/S是直線方向角的量化間隔。
[0035]S3:求解種子點集合中各種子點與補點集合中各補點之間連線的方向角。
[0036]假設(shè)Ax為一種子點與一補點之間的水平間距,Ay為種子點與補點之間的垂直 間距,f(AX,Ay)為關(guān)于水平間距Ax和垂直間距Ay的函數(shù),則該種子點與該補點間連 接的方向角為a,且滿足《 =arctanj"|^ = /(Ax_,4v)。故而,根據(jù)種子點集合中種子點的 坐標(biāo)以及集合中補點的坐標(biāo),即可得到種子點與補點之間連線的縱橫坐標(biāo)差,之后可通過 反正切和除法運算求得方向角,也可通過直接查表的方式求得方向角。
[0037] 為了減少運算量,本發(fā)明實施例采用直接查表方式求解方向角,同時考慮到水平 間距Ax和垂直間距Ay均是整數(shù),故本發(fā)明實施例在步驟S3之前,可包括預(yù)存一張用Qn 定點數(shù)表示的二維反正切查找表的步驟,則如圖2所示,步驟S3可進一步包括以下步驟:
[0038]S31:從補點集合中選取當(dāng)前補點。
[0039]S32:遍歷種子點集合,分別計算當(dāng)前補點與種子點集合中各種子點之間的縱橫坐 標(biāo)差。
[0040] S33 :查找預(yù)存的二維反正切查找表,得到與每一縱橫坐標(biāo)差對應(yīng)的方向角,之后 返回步驟S31,以選取下一補點作為當(dāng)前補點而參與運算,直至遍歷補點集合中的全部補 點。
[0041]S4:按照種子點-補點連線方向角與相鄰方向角量化值的距離成反比的原則,對 累積矩陣中相應(yīng)的累積單元進行累積。
[0042] 本發(fā)明實施例中,相鄰方向角是指同一種子點分別與各補點之間的方向角中,相 鄰排列的兩個方向角的量化值。
[0043] 則步驟S4即是說,設(shè)0i,k是種子點i'與補點k連線的方向角,aam是與 0r,k最鄰近的方向角量化值,對累積矩陣中的累積單元A(i,j)和A(i,j+1),分別執(zhí)行:
[0044]A(i,j)=A(i,j)+(aJ+「0ik)
[0045] A(i,