一種基于動態(tài)閾值區(qū)間的Hough變換直線檢測方法
【專利摘要】本發(fā)明涉及一種基于動態(tài)閾值區(qū)間的Hough變換直線檢測方法。包括如下步驟:基于鄰接關(guān)系的聚類順序存儲,針對圖像中具有一定線寬的線段進(jìn)行細(xì)化處理,輸出任一像素點的8鄰域內(nèi)最多只有兩個相鄰像素點的骨架線,然后根據(jù)基于鄰接關(guān)系的聚類順序?qū)⑵浯鎯Φ侥骋欢螖?shù)組中;采樣某一段數(shù)組中的 m 個鄰接像素,構(gòu)建閾值區(qū)間,判斷 m 個點是否在同一條直線上,同時進(jìn)行噪聲的過濾,增強了算法的魯棒性;在構(gòu)建閾值區(qū)間的基礎(chǔ)上,采用基于區(qū)間折半的動態(tài)采樣方式實現(xiàn)直線的檢測。并對像素數(shù)組中的每一個像素進(jìn)行識別,提高了算法的檢測效率與效果。
【專利說明】-種基于動態(tài)閾值區(qū)間的Hough變換直線檢測方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于圖像特征提取與識別【技術(shù)領(lǐng)域】,特別涉及一種基于動態(tài)閾值區(qū)間的 Hough變換直線檢測方法。
【背景技術(shù)】
[0002] 圖像特征提取是圖形識別的前提,涉及到計算機(jī)圖形學(xué)、數(shù)字圖像處理、模式識 另IJ、人工智能等多門學(xué)科領(lǐng)域,有著廣闊的研究空間和應(yīng)用前景。工程圖紙智能識別是圖像 特征提取的重要應(yīng)用領(lǐng)域。各類工程圖紙中工程圖形對象的主要幾何元素是線段。如何快 速有效的檢測線段特征是識別圖形對象的基礎(chǔ)。
[0003] 直線提取方法主要分為兩大類:第一類方法是在基于幾何特征在圖像域中直接 提取直線,利用圖像空間中像素的梯度或灰度等信息進(jìn)行處理。第二類方法是將圖像轉(zhuǎn)化 到參數(shù)域中提取直線,根據(jù)參數(shù)域中的信息進(jìn)行間接處理,如Hough變換是將圖形映射到 Hough參數(shù)域內(nèi),根據(jù)某一解析式把圖形上的每個點投影到參數(shù)域中,并進(jìn)行簡單的累加統(tǒng) 計,然后尋找累加峰值檢測直線?;趫D像域的方法雖然速度較快,但易于受到噪聲的干 擾,出現(xiàn)不連續(xù)的直線,限制了實際應(yīng)用。基于參數(shù)域的方法抗噪性高,且能夠連接共線短 直線,適合于并行處理。然而該方法是進(jìn)行圖像域到參數(shù)域的一對多映射,并且存在噪聲點 與離散化誤差的影響,導(dǎo)致計算量大、參數(shù)域中峰值點被次峰值點包圍導(dǎo)致漏檢或誤檢,閾 值難以設(shè)定等問題。
[0004] 針對Hough變換計算量大,A. Goldenshluger and A. Zeevi米用隨機(jī)Hough變換 方法,在多個像素中隨機(jī)抽取一個像素作為采樣信息映射到參數(shù)空間,避免了較大計算量 與較多的內(nèi)存開銷,但由于該方法隨機(jī)獲取采樣點,因而造成了大量的無效累積,降低了方 法的效率。
[0005] 針對參數(shù)域中峰值點被次峰值包圍的問題,Siyu Guo等人提出鄰域抑制的方法, 對投影到參數(shù)域中投票值進(jìn)行加權(quán),有效降低次峰值的影響,提高了 Hough變換檢測的準(zhǔn) 確率,但是該方法的權(quán)重值設(shè)定對檢測結(jié)果有很大影響,需要大量測試才能得到權(quán)重的精 確值,增加了該方法的計算復(fù)雜度,降低了該方法的實用性。
【發(fā)明內(nèi)容】
[0006] 為了克服上面方法的不足,本發(fā)明提出一種基于動態(tài)閾值區(qū)間的Hough變換直線 檢測方法。步驟如下:
[0007] 步驟1 :基于鄰接關(guān)系的聚類順序存儲:針對圖像中具有一定線寬的線段進(jìn)行細(xì) 化處理,輸出任一像素點的8鄰域內(nèi)最多只有兩個相鄰像素點的骨架線,然后進(jìn)行基于鄰 接關(guān)系的聚類順序存儲,將骨架線上的像素點存儲到某一段數(shù)組中。
[0008] 步驟2 :閾值區(qū)間構(gòu)建:采樣某一段數(shù)組中的m個鄰接像素,構(gòu)建閾值區(qū)間,判斷m 個點是否在同一條直線上,同時進(jìn)行噪聲的過濾,增強了方法的魯棒性。
[0009] 步驟3 :動態(tài)直線檢測:針對某一段像素數(shù)組,在構(gòu)建閾值區(qū)間的基礎(chǔ)上,采用基 于區(qū)間折半的動態(tài)采樣方式實現(xiàn)直線的檢測。
[0010] 步驟4 :直線拼接,針對上述方法檢測后的相鄰短直線段,根據(jù)該直線段的斜率和 端點最短鄰接距離大小判斷兩條線段是否同屬于一條線段,這樣實現(xiàn)直線段的最佳分類。
[0011] 步驟5:結(jié)束。
[0012] 本發(fā)明與現(xiàn)有技術(shù)相比具有以下優(yōu)點:
[0013] (1)圖像中的直線受到離散化和噪聲影響,引起參數(shù)閾空間中主峰值被次峰值包 圍導(dǎo)致漏檢與誤檢等問題,提出動態(tài)閾值區(qū)間的概念,避免了上述情況的發(fā)生,增加方法的 魯棒性。
[0014] (2)在構(gòu)建閾值區(qū)間后,對被檢測的像素點只需要計算兩次就可以判斷是否在直 線上,避免了傳統(tǒng)Hough檢測的大量計算。
[0015] (3)在對某一段像素數(shù)組的直線檢測過程中,采用基于區(qū)間折半的動態(tài)采樣方式 探測閾值區(qū)間,并對像素數(shù)組中的每一個像素進(jìn)行識別,提高了方法的檢測效率與效果。
【專利附圖】
【附圖說明】
[0016] 圖1為本發(fā)明一種基于動態(tài)閾值區(qū)間的Hough變換直線檢測方法直線聚類順序存 儲流程圖;
[0017] 圖2為本發(fā)明一種基于動態(tài)閾值區(qū)間的Hough變換直線檢測方法m個米樣點的 Hough變換直線參數(shù)閾值區(qū)間構(gòu)建圖;
[0018] 圖3為本發(fā)明一種基于動態(tài)閾值區(qū)間的Hough變換直線檢測方法動態(tài)采樣的 Hough變換直線檢測示意圖;
【具體實施方式】
[0019] 下面參見本發(fā)明的附圖并結(jié)合具體實施例對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明,但本發(fā) 明的保護(hù)范圍不受具體的實施實例所限制,以權(quán)利要求書為準(zhǔn)。另外,以不違背本發(fā)明方案 的前提下,對本發(fā)明所作的本領(lǐng)域普通技術(shù)人員容易實現(xiàn)的任何改動或改變都將落入本發(fā) 明的權(quán)利要求范圍之內(nèi)。
[0020] 本發(fā)明包括以下關(guān)鍵步驟:
[0021] 步驟1 :圖像中直線細(xì)化后,輸出任一像素點的8鄰域內(nèi)最多只有兩個相鄰像素點 的骨架線,采用附圖1所示的流程將直線段順序存儲到某一段數(shù)組中;
[0022] 步驟2:構(gòu)建閾值區(qū)間;
[0023] (1)無噪聲情況下閾值區(qū)間的構(gòu)建
[0024] 在通常情況下,對于處在直線傾角為a (例如,圖2(b)的直線傾角a =60.5° ) 的m(m = 9)個相鄰理想點來說,P值區(qū)間P ( 0 )如圖2(a)所示。由于采樣角度0量化誤 差的干擾,映射到參數(shù)域的結(jié)果是落在左右相鄰采樣值9 P 9 2之間:9 i = [ a ]+90°,0 2=[a]+90° +1° ([]為取整)。
[0025] 由于 a = 60. 5。,則 0 1 = 150, P I = [ P u P ul]與 0 2 = 151,P 2 = [ P 12 P u2], P i是111個無噪聲采樣點在參數(shù)域中0 i = 150時,對應(yīng)P值組成的集合區(qū)間,同理P 2是 0 2 = 151時,對應(yīng)P值組成的集合區(qū)間,如圖2(c)所示,由理論與實驗證明Hough變換 中的P 1與P 2滿足如下三個約束:
[0026] ①9:與92是!11個點在參數(shù)域中采樣角度P (0)(如圖2(a))中長度最短與次 短的兩個區(qū)間;
[0027] ②P u2〈 P11,且對于處于傾角為a直線上的m個點,在Hough參數(shù)域中采樣角度 0 a上對應(yīng)的區(qū)間一定包含在[Pu2 P11]區(qū)間中;
[0028] ③傾角為a的直線上任意一點映射到參數(shù)域后,0 a對應(yīng)的離散化后的相鄰p 區(qū)間[P 01 P 02] -定和[Pu2 Pi1]區(qū)間相交。
[0029] (2)有噪聲情況下閾值區(qū)間的構(gòu)建
[0030] 考慮到圖像中的噪聲對直線檢測也有干擾,圖2(d)顯示了圖像中噪聲點(圖2(b) 中的D1, D2)在參數(shù)域中的干擾分布,圖2(d)中遠(yuǎn)離下方正常P值區(qū)間的正弦點線PnP2與 噪聲點具有對應(yīng)關(guān)系。由于Pl,P2中/f% 與K51干擾,使得P :與P2F再滿足 ①,②,③的特性。因此在本文降噪處理過程中,需要將干擾點對應(yīng)的曲線P1, P2過濾掉,并 確定Q1, e2。這里將Q1, e2, P1與P2所確定的區(qū)間作為m個采樣點的直線參數(shù)信息。
[0031] 噪聲信息的過濾與參數(shù)閾值區(qū)間的設(shè)定過程:
[0032] ①從采樣位置獲取m個連續(xù)像素點,在參數(shù)域中計算m個點對應(yīng)的正弦曲線;
[0033] ②針對所有采樣角度0,計算P集合區(qū)間,尋找最短和次短集合區(qū)間P :與P 2 ;
[0034] ③判斷二者是否重疊,若二者不重疊,則確定[Pu2 P11], 91與02作為參數(shù)閾值。 否則轉(zhuǎn)④;
[0035] ④處理將P p P 2集合中處于邊界的P1, P2等干擾點對應(yīng)的正弦點線,去掉,同時 記錄已去掉正弦點線的條數(shù)n,本步驟詳細(xì)描述如下:
[0036] /f5<) ,/f51分別是P P 2集合中偏離正常P值的邊界點,二者同時為P P 2的 上邊界或下邊界(如圖2 (d)所示為上邊界)。尋找邊界點的計算過程如下:先計算P p P 2 集合的重心,然后再計算上下邊界點與重心的距離,值大者為if 5{> ? M的干擾點,從而確 定對應(yīng)的正弦點線P1,在去掉該點線后(n為m去掉干擾點個數(shù)后的計數(shù)值),重新判斷P p P2集合區(qū)間是否重疊,若不重疊則返回到②;若重疊,先判斷n是否大于[m/2],若為真,退 出參數(shù)閾值設(shè)定過程,認(rèn)為m個采樣點不在一條直線上;否則重復(fù)本步驟;
[0037] 步驟3 :基于動態(tài)采樣的直線檢測;
[0038] 設(shè)定方法中識別數(shù)組中某一段像素點的起點與終點的數(shù)組下標(biāo)為S,E (對應(yīng)的骨 架線如圖3(a)所示)。
[0039] ①其初始值為S = 0, E = length (矩形像素點個數(shù))-1,如圖3(b)所示。
[0040] ②采用動態(tài)檢測原則,判斷數(shù)組下標(biāo)中間位置Htl =[ (S+E) /2. 0]處m個相鄰像素 是否在同一條直線上,判斷方法已經(jīng)在步驟2的參數(shù)閾值區(qū)間構(gòu)建中描述。若m個像素點 不在一條直線上,則以Htl點為分割點,分為兩段像素點區(qū)間:數(shù)組下標(biāo)從S到到E,對 每段區(qū)間的像素點遞歸調(diào)用本方法。若Htl位置上m個點是在同一條直線L上,則分別向左 和向右判斷每個像素點是否在直線L上,判斷過程轉(zhuǎn)③。
[0041] ③對于每一個像素點(X,y),判斷依據(jù)是步驟2中的約束條件③。在向左判斷的過 程中,若該像素點滿足條件③,則認(rèn)為在直線上,將直線類別信息存儲在數(shù)組的第2維;并 順次繼續(xù)判斷下一個像素點。若不在直線上,則對數(shù)組下標(biāo)為S的點到該點組成的區(qū)間遞 歸調(diào)用本方法,轉(zhuǎn)①。
[0042] 在上述方法處理過程中,記錄每個像素是否被處理,若處理,值為I,反之,值為零。 從S到Htl區(qū)間像素判斷完后,再遞歸處理Htl到E的區(qū)間。該方法判斷終止條件是對數(shù)組中 的所有像素處理完后,轉(zhuǎn)到下一步進(jìn)行直線合并。
[0043] 附圖3(c)中,Hi (i = 0, 1,2)是方法中依次采樣m個像素點的下標(biāo)位置,L(Hi) (i =0, 1,2)是識別出的直線。
[0044] 步驟4 :根據(jù)直線段傾角差值是否在±1°之內(nèi)與端點距離是否小于3個像素點判 斷兩條直線是否可以合并為一條直線。在附圖3中識別的直線不滿足上述條件,不可以進(jìn) 行合并。
[0045] 步驟5:結(jié)束。
【權(quán)利要求】
1. 一種基于動態(tài)閾值區(qū)間的Hough變換直線檢測方法,其特征在于包含以下幾個步 驟: (1) 基于鄰接關(guān)系的聚類順序存儲; (2) 基于Hough變換的閾值區(qū)間構(gòu)建; (3) 采用動態(tài)采樣的直線檢測,針對某一段像素數(shù)組,進(jìn)行動態(tài)直線檢測; (4) 直線拼接; (5) 結(jié)束。
2. 如權(quán)利要求1所述的檢測方法,其特征在于,步驟(1)中: 圖像細(xì)化之后輸出單像素線寬的骨架線,骨架線上任一像素點的8鄰域內(nèi)最多只有兩 個相鄰像素點; 本算法按照像素鄰接關(guān)系進(jìn)行聚類,將聚類后的一類像素位置信息(行位置A列位 置_7)順序地存儲到一段像素數(shù)組中。
3. 如權(quán)利要求1所述的檢測方法,其特征在于,步驟(2)基于Hough變換的閾值區(qū)間 構(gòu)建,分為以下幾步: :X針對一段像素數(shù)組中的》個相鄰像素,根據(jù)公式在Hough變換域中對〃取 0,1,…,179等采樣值,計算正弦曲線的采樣點; 2:針對# (初始值# = ?)條正弦曲線,一個〃值將對應(yīng)#個P值,計算#個P值 的范圍區(qū)間為下界值,為上界值),設(shè)定該P值區(qū)間長度為 S'針對所有采樣角度分別計算L,并尋找最小長度^的A值區(qū)間[/^,/^], 記錄對應(yīng)角度為〃i;再計算相鄰角度的P值區(qū)間,尋找次短長度的值區(qū)間[/^2, 0?2]; I判斷區(qū)間[P71,/^]與[P72,/^"2]是否重疊,若不重疊,則將有二者之間的間隔區(qū) 間構(gòu)成為閾值區(qū)間[PPPd,閾值區(qū)間構(gòu)建結(jié)束;若二者重疊,則分為#個點中存在噪 聲點或?個點不在同一條直線上兩個情況進(jìn)行考慮,轉(zhuǎn)S處理; $先考慮#個點中存在噪聲點的情況,計算pi與P2區(qū)間中的邊界點和pi與P2區(qū) 間重心的距離,大值者對應(yīng)為噪聲點,將該點所對應(yīng)正弦曲線去掉; 設(shè)置# = # 一 1,若#〈 [?/2]則認(rèn)為》個點不在同一條直線上,重新選取》個點進(jìn) 行閾值區(qū)間構(gòu)建;否則,轉(zhuǎn)2:循環(huán)處理。
4. 如權(quán)利要求1所述的檢測方法,其特征在于,步驟(3)中,采用動態(tài)采樣的直線檢 測,針對某一段像素數(shù)組,進(jìn)行動態(tài)直線檢測的步驟如下: X假設(shè)算法中識別某一段像素數(shù)組的起點與終點下標(biāo)為&瓦其初始值為於0, 萬=length(數(shù)組像素點個數(shù))-1 ; S采用動態(tài)檢測原則,判斷數(shù)組下標(biāo)中間位置慫=[以+幻/2.0]處《個相鄰像素是否 在同一條直線上,判斷方法已經(jīng)(2)步驟的閾值計算$中描述; 若?個像素點不在一條直線上,則以慫點為分割點,分為兩段像素點區(qū)間:數(shù)組下標(biāo)從S到慫,慫到A對每段區(qū)間的像素點遞歸調(diào)用本算法; 若慫位置上《個點是在同一條直線Z上,則分別向左和向右判斷每個像素點是否在直 線Z上,判斷過程轉(zhuǎn)s; 1對于每一個像素點Cr,_F),在判斷是否屬于一條直線時,只需計算心與對應(yīng)的Ph值區(qū)間與^c值區(qū)間,并判斷該區(qū)間是否與區(qū)間重疊,若重疊,則認(rèn)為在直線上,將直 線類別信息存儲在數(shù)組的第2維;并順次繼續(xù)判斷下一個像素點; 若不在直線上,則對數(shù)組下標(biāo)為S的點到該點組成的區(qū)間遞歸調(diào)用本算法,轉(zhuǎn):!;; 算法終止判斷條件:算法處理過程中,記錄每個像素是否被處理,若處理,值為1,反 之,值為零; 從S到慫區(qū)間像素判斷完后,再遞歸處理慫到i?的區(qū)間,該算法判斷終止條件是對數(shù) 組中的所有像素處理完后,退出算法。
5. 根據(jù)權(quán)利要求1所述方法,對圖像細(xì)化后單像素線寬的直線進(jìn)行順序聚集存儲。
6. 根據(jù)權(quán)利要求1所述方法,從檢測的像素集合中,動態(tài)采樣》個像素構(gòu)建閾值區(qū)間, 并進(jìn)行噪聲過濾的處理。
7. 根據(jù)權(quán)利要求1所述方法,針對某一段像素數(shù)組,進(jìn)行動態(tài)直線檢測。
【文檔編號】G06K9/46GK104408456SQ201410591811
【公開日】2015年3月11日 申請日期:2014年10月28日 優(yōu)先權(quán)日:2014年10月28日
【發(fā)明者】宋曉宇, 袁帥, 劉繼飛 申請人:沈陽建筑大學(xué)