專利名稱:單步掃描細(xì)化算法的制作方法
技術(shù)領(lǐng)域:
本發(fā)明針對一種細(xì)化算法,更具體說,是針對單步掃描的細(xì)化算法。
在圖像處理、模式識(shí)別、特征檢測、手寫識(shí)別、和偽鈔識(shí)別中,通用細(xì)化算法。細(xì)化算法的目標(biāo),是尋找一個(gè)二進(jìn)制的圖像,以獲得一個(gè)“骨架(skeleton)”,由此可以抽取其特征,可以簡化其圖像表達(dá)方式,或可以節(jié)省其存儲(chǔ)空間。
一個(gè)例子示于
圖1(a)和1(b)。圖1(a)的字符是粗的每一筆劃都有好幾個(gè)像素寬。圖1(b)的字符是細(xì)的,寬度為一個(gè)像素,但保持圖1(a)字符的主要特征,所以它還能被識(shí)別是一個(gè)“5”(不是一個(gè)“2”,“A”,或別的字符)。在圖像處理或模式識(shí)別時(shí),常常寧可取圖1(b)的較細(xì)的字符而不是圖1(a)的較粗的字符,因?yàn)樗3謭D像的主要特征,占較小的存儲(chǔ)器,同時(shí)又因筆劃寬度基本恒定(一個(gè)或兩個(gè)像素寬)而更易于識(shí)別。從圖1(a)到圖1(b)的變換名為細(xì)化處理。
在大多數(shù)現(xiàn)實(shí)世界的應(yīng)用中,各種圖像遠(yuǎn)比此例子復(fù)雜,因此,細(xì)化算法已被研究多年。細(xì)化算法的兩個(gè)基本要求是1)保留代表原始圖像的主要特征,和2)保持其連通性。
大多數(shù)常規(guī)細(xì)化算法的關(guān)鍵步驟,是檢測邊緣像素,然后逐一剝?nèi)ミ吘壪袼亍_@些常規(guī)算法需要掃描圖像若干次(根據(jù)圖像的“寬度”),且對每個(gè)像素重復(fù)該算法。圖2畫出這些常規(guī)算法是如何工作的。常規(guī)細(xì)化算法剝?nèi)D形的邊緣像素。如果圖像是寬的,這一剝?nèi)ミ^程必須從左上方到右下方重復(fù)若干次。因?yàn)榧?xì)化的圖形在某些地方仍有兩個(gè)像素寬,所以圖2的結(jié)果還可能不被接受。
這種常規(guī)方法公開在下面的文章中Lam L.and Suc C.Y.,“Adynamic shape reserving thinning algorithm,”Signal Processing,1991,22(2)199-208。此方法的根據(jù)是J.Hilditch,“Linear Skeletonfrom Square Cupboards,”In Machine Intelligence IV.B.Meltzer andD.Michie,Eds.University press,Edinburgh,pp.403-420(1969)。
如上所述,因?yàn)閷φ鶊D像掃描一次,則圖形中線條寬度每側(cè)減小一個(gè)像素,所以整幅圖像的重復(fù)掃描次數(shù)約為W/2,這里W是包含在圖像中最大線條的寬度。這個(gè)過程畫在圖3A-3D上。在這種情形下,為了線條的細(xì)化,要求掃描點(diǎn)P的次數(shù)為P=SxW2]]>這里S是整幅圖形內(nèi)掃描點(diǎn)的數(shù)目(I×J);W/2是掃描整幅圖像的重復(fù)次數(shù);和W是整幅圖像中最大線條寬度。
即使在圖像中只有一個(gè)區(qū)域有粗的線條或一個(gè)實(shí)心的黑色區(qū)域,也要求該算法為這樣一個(gè)區(qū)域而重復(fù)掃描整幅圖像,為此要求大量的處理時(shí)間。
第二類常規(guī)方法包括從內(nèi)側(cè)像素到邊沿像素的處理像素方式,以便找出中心像素。這種第二類技術(shù)包括最大的正方形(MS)和最大的圓形(MC)兩種技術(shù),例如在下面的論文中有說明Abairid M.R.,Martin G.and Suen C.Y.,“Tracing Center-lines of Digital PatternsUsing Maximal-Square and Maximal-Circle Algorithm,”Conf.OnVersion Interface′90,Nova Scotia,1990,76-79。因?yàn)閷γ恳粋€(gè)像素都必須進(jìn)行相同的識(shí)別,所以這種第二類常規(guī)技術(shù)并不節(jié)省處理時(shí)間。
第三類常規(guī)方法包括對每一掃描線搜索每個(gè)分支的中心像素,連接這些中心像素,以便獲得圖像的骨架。這種第三類方法常常不能保持圖像的連通性。
本發(fā)明針對一種細(xì)化算法,更具體說,是針對非迭代的細(xì)化算法,它對靠近骨架像素的不同像素,分配不同的權(quán)重,并除去不可能的像素。本發(fā)明既不需要對某一像素進(jìn)行迭代,也不需要對每一個(gè)像素都檢測;因此,減少了處理所需要的時(shí)間。本發(fā)明還可以結(jié)合某種填充算法使用。對各種不同的二進(jìn)制圖形的實(shí)驗(yàn)結(jié)果表明,本發(fā)明與其他常規(guī)算法相比,是一種高速的技術(shù),且可以獲得良好的骨架形狀。
圖1A和1B畫出普通的字符。
圖2畫出組成一個(gè)字符的像素集合,它可以用常規(guī)細(xì)化算法處理。
圖3A-3D畫出獲得圖像骨架的一種常規(guī)技術(shù)。
圖4畫出本發(fā)明一個(gè)實(shí)施例的細(xì)化算法的流程圖。
圖5畫出在本發(fā)明的一個(gè)實(shí)施例中本發(fā)明的方向檢測特征。
圖6(a)-6(c)畫出本發(fā)明一個(gè)實(shí)施例中的權(quán)重分配特征。
圖7畫出用于識(shí)別“無需識(shí)別”像素(NIP)的示例性規(guī)則。
圖8(a)-8(e)畫出用某種填充算法的內(nèi)插。
上面已概略指出,本發(fā)明針對一種新的細(xì)化算法,它在細(xì)化過程中,對靠近骨架像素的不同像素,分配不同的權(quán)重,并除去不可能的像素。本發(fā)明既不需要對像素進(jìn)行迭代,也不需要對每一個(gè)像素都檢測;因此,減少了處理所需要的時(shí)間。某種填充算法還可以結(jié)合本發(fā)明的細(xì)化算法使用,以產(chǎn)生更優(yōu)良的結(jié)果。對各種不同的二進(jìn)制圖形的實(shí)驗(yàn)結(jié)果表明,本發(fā)明與其他常規(guī)算法相比,可以獲得高速和良好的骨架形狀。
在一個(gè)示例性實(shí)施例中,本發(fā)明的一般算法示于圖4。在步驟20,算法開始。在步驟30,不論掃描是不是完成,都要作出判定。如果未完成,在步驟40,算法繼續(xù)進(jìn)行至下一個(gè)像素。如果掃描已經(jīng)完成,算法轉(zhuǎn)至填充算法80,然后在步驟90完成。在步驟40和50,分析下一個(gè)像素,確定它是不是一個(gè)骨架像素。如果下一個(gè)像素是骨架像素,它在步驟60被保留,并在步驟70,從該像素預(yù)測下一個(gè)骨架像素。如果步驟50的像素不是骨架像素,算法轉(zhuǎn)至步驟30,以便再次確定掃描是不是完成。
在本發(fā)明的一個(gè)實(shí)施例中,單步掃描細(xì)化算法的操作,將在下面結(jié)合圖5-8作更詳細(xì)的說明。本算法的第一個(gè)操作步驟包括方向的檢測。假定有一個(gè)字符,它由若干筆劃組成。如果在筆劃中存在一個(gè)大小可變的圓,那么此內(nèi)接圓的連接中心點(diǎn)應(yīng)當(dāng)是骨架的一部分。但是,筆劃連接的連通性可能丟失,因而可能需要內(nèi)插。本發(fā)明用識(shí)別有方向的像素來緩解這個(gè)問題(在圖5的例子中,用圖形的內(nèi)邊緣到外邊緣的八個(gè)方向,而不是識(shí)別圖形中每一個(gè)像素)。
本發(fā)明算法的第二個(gè)操作步驟,是權(quán)重的分配。具體說,圖形中的像素分為三類骨架像素(SP)、“無需識(shí)別”像素(NIP)、和“無標(biāo)志”像素(NFP)。從左上方到右下方掃描各個(gè)像素,如果像素是一個(gè)NIP或SP,那么,本算法繼續(xù)識(shí)別下一個(gè)像素。如果此像素是一個(gè)NFP,本算法根據(jù)一種內(nèi)接圓算法進(jìn)行細(xì)化。如果下一步該像素是一個(gè)SP,且在其八個(gè)相鄰像素中有另一個(gè)SP,那么,按照骨架的方向,把權(quán)重值分配給八個(gè)相鄰像素。此權(quán)重是骨架線條的正切值,如圖6(a)-6(c)所示。
因?yàn)閽呙枋菑淖笊戏降接蚁路?,所以下一個(gè)“可能是骨架”的像素是U、V、W、X、和Y。按照骨架線條的方向,這五個(gè)像素中的三個(gè)可能是骨架像素,如下面舉例說明的預(yù)測集合(1)所示。數(shù)值α是骨架線條和水平線的夾角,集合中各元按權(quán)重排列。 “無需識(shí)別”像素(NIP)的確定,是根據(jù)·如果CS={WVX}或{WXV}則按順序W,V,X或W,X,V識(shí)別下一個(gè)可能的骨架像素,并且沿U和Y方向(水平)且在內(nèi)接圓之內(nèi)的像素,被分類為“無需識(shí)別”像素(NIP)。
·如果CS={UVW}或{YXW}則按順序U,V,W或Y,X,W識(shí)別下一個(gè)“可能是骨架”的像素,并且沿W方向(豎直)且在內(nèi)接圓之內(nèi)的像素,被分類為“無需識(shí)別”像素(NIP)。
·如果CS={VWU}或{VUW}則按順序V,W,U或V,U,W識(shí)別下一個(gè)“可能是骨架”的像素,并且沿X方向(斜率為1)且在內(nèi)接圓之內(nèi)的像素,被分類為“無需識(shí)別”像素(NIP)。
·如果CS={XWY}或{XYW}則按順序X,W,Y或X,Y,W識(shí)別下一個(gè)“可能是骨架”的像素,并且沿V方向(斜率是-1)且在內(nèi)接圓之內(nèi)的像素,被分類為“無需識(shí)別”像素(NIP)。應(yīng)當(dāng)指出,內(nèi)接圓的大小可以從當(dāng)前的骨架像素獲得。圖7畫出識(shí)別“無需識(shí)別”像素(NIP)的示例性規(guī)則。
下面更詳細(xì)說明圖4步驟80中的填充算法。在某些連接中或在不規(guī)則的地方,可能遺漏骨架像素(SP)??梢杂弥T如圖8(a)-8(e)所示的填充算法,插入任何遺漏的骨架像素。
圖8(a)畫出兩個(gè)插入的像素。圖8(b)畫出向上的插入方向。圖8(c)畫出向下的插入方向。
使用常規(guī)的填充算法,圖8(d)畫出的兩個(gè)像素,可以如圖8(c)所示那樣填充。如圖8(d)和(e)所示,填充的方向由五個(gè)骨架像素決定,并且當(dāng)邊緣遇到另一個(gè)骨架像素,或與另一個(gè)骨架像素連接時(shí),填充終止。
如上所述,本發(fā)明是針對一種新的更快的細(xì)化算法,它在細(xì)化過程中,對靠近骨架像素的不同像素,分配不同的權(quán)重,并除去不可能的像素。本發(fā)明的算法既不需要在逐個(gè)像素的基礎(chǔ)上進(jìn)行迭代,也不需要對每一個(gè)像素都檢測。因此,本算法大大地減小處理所需要的時(shí)間。本發(fā)明的算法還可以結(jié)合常規(guī)的填充算法使用,以獲得更好的結(jié)果。對各種不同的二進(jìn)制圖形的實(shí)驗(yàn)結(jié)果已經(jīng)表明,本發(fā)明的算法比其他常規(guī)算法更快,且獲得更好的骨架形狀。一般說來,本發(fā)明的算法,至少比常規(guī)算法節(jié)省三分之二的時(shí)間,并得到良好的細(xì)化結(jié)果。
雖然本發(fā)明是按一種方法來說明的,但本發(fā)明可以在任何常規(guī)的計(jì)算硬件裝置上實(shí)現(xiàn)。此外,上述細(xì)化算法可以駐留在能運(yùn)行該算法的計(jì)算硬件裝置內(nèi),可以通過普通的物理介質(zhì)裝載進(jìn)計(jì)算硬件裝置內(nèi),或者,可以通過傳播信號(hào)下載于計(jì)算硬件裝置內(nèi)。
顯而易見,在此被描述的本發(fā)明可以有許多變化。這種變化不能認(rèn)為偏離本發(fā)明的精神和范圍,因此,所有這種對本領(lǐng)域熟練人員是顯而易見的改變,都將包括在下述權(quán)利要求書的涵蓋范圍之內(nèi)。
權(quán)利要求
1.一種非迭代的掃描細(xì)化方法,包括掃描圖像中的像素;確定此像素是不是骨架像素,“無需識(shí)別”像素,或“無標(biāo)志”像素;如果此像素是骨架像素或“無需識(shí)別”像素,則沿左上方到右下方繼續(xù)到下一個(gè)像素;如果此像素是一個(gè)“無標(biāo)志”像素,則細(xì)化此“無標(biāo)志”像素;如果此像素是一個(gè)骨架像素,則確定與此像素相鄰的任何像素是不是骨架像素;和如果與此像素相鄰的任何像素都是骨架像素,則按照骨架方向,對與此像素相鄰的各個(gè)像素進(jìn)行權(quán)重;對每一個(gè)像素重復(fù)上述步驟,產(chǎn)生此圖像的一個(gè)細(xì)化圖像。
2.按照權(quán)利要求1的方法,其中“無需識(shí)別”像素是用一個(gè)預(yù)測集合識(shí)別的。
3.按照權(quán)利要求1的方法,其中為把每個(gè)像素分類,只需一次掃描迭代。
4.按照權(quán)利要求1的方法,其中為產(chǎn)生此圖像的細(xì)化圖像,只需一次掃描迭代。
5.一種非迭代的掃描細(xì)化方法,包括掃描一幅圖像的一個(gè)像素;確定此像素是不是一個(gè)骨架像素;如果此像素是一個(gè)骨架像素,則對與此骨架像素相鄰的各個(gè)像素分配不同的權(quán)重,以便預(yù)測其他骨架像素和通過細(xì)化除去不需要的像素;對每一個(gè)像素重復(fù)上述步驟,產(chǎn)生此圖像的一個(gè)細(xì)化圖像。
6.按照權(quán)利要求5的方法,其中,如果此像素不是一個(gè)骨架像素,那么,它或者是一個(gè)“無需識(shí)別”像素,或者是一個(gè)“無標(biāo)志”像素。
7.按照權(quán)利要求5的方法,其中“無需識(shí)別”像素是用一個(gè)預(yù)測集合識(shí)別的。
8.按照權(quán)利要求5的方法,其中為把每個(gè)像素分類,只需一次掃描迭代。
9.按照權(quán)利要求5的方法,其中為產(chǎn)生此圖像的細(xì)化圖像,只需一次掃描迭代。
10.一種非迭代的掃描細(xì)化設(shè)備,包括用于掃描一幅圖像中一個(gè)像素的處理器;確定此像素是不是一個(gè)骨架像素,一個(gè)“無需識(shí)別”像素,還是一個(gè)“無標(biāo)志”像素;如果此像素是一個(gè)骨架像素或一個(gè)“無需識(shí)別”像素,則繼續(xù)沿左上方到右下方確定下一個(gè)像素;如果此像素是一個(gè)“無標(biāo)志”像素,則細(xì)化此“無標(biāo)志”像素;如果此像素是一個(gè)骨架像素,則確定與此像素相鄰的任何像素是不是骨架像素;和如果與此像素相鄰的任何像素都是骨架像素,則按照骨架方向,對與此像素相鄰的各個(gè)像素作權(quán)重;對每一個(gè)像素重復(fù)上述操作,產(chǎn)生此圖像的一個(gè)細(xì)化圖像。
11.按照權(quán)利要求10的設(shè)備,其中“無需識(shí)別”像素是用一個(gè)預(yù)測集合識(shí)別的。
12.按照權(quán)利要求10的設(shè)備,其中為把每個(gè)像素分類,只需一次掃描迭代。
13.按照權(quán)利要求10的設(shè)備,其中為產(chǎn)生此圖像的細(xì)化圖像,只需一次掃描迭代。
14.一種非迭代的掃描細(xì)化設(shè)備,包括用于掃描一幅圖像中一個(gè)像素的處理器;確定此像素是不是一個(gè)骨架像素;如果此像素是一個(gè)骨架像素,則對與此骨架像素相鄰的各個(gè)像素分配不同的權(quán)重,以便預(yù)測其他骨架像素和通過細(xì)化除去不需要的像素;對每一個(gè)像素重復(fù)上述操作,產(chǎn)生此圖像的一個(gè)細(xì)化圖像。
15.按照權(quán)利要求14的設(shè)備,其中,如果此像素不是一個(gè)骨架像素,那么,它或者是一個(gè)“無需識(shí)別”像素,或者是一個(gè)“無標(biāo)志”像素。
16.按照權(quán)利要求14的設(shè)備,其中“無需識(shí)別”像素是用一個(gè)預(yù)測集合識(shí)別的。
17.按照權(quán)利要求14的設(shè)備,其中為把每個(gè)像素分類,只需一次掃描迭代。
18.按照權(quán)利要求14的設(shè)備,其中為產(chǎn)生此圖像的細(xì)化圖像,只需一次掃描迭代。
19.按照權(quán)利要求1的方法,其中所述方法用包含在某種介質(zhì)上的計(jì)算機(jī)程序執(zhí)行。
20.按照權(quán)利要求19的方法,其中的介質(zhì)是一種物理介質(zhì)和一種傳播的信號(hào)。
21.按照權(quán)利要求5的方法,其中所述方法用包含在某種介質(zhì)上的計(jì)算機(jī)程序執(zhí)行。
22.按照權(quán)利要求21的方法,其中的介質(zhì)是一種物理介質(zhì)和一種傳播的信號(hào)。
全文摘要
本發(fā)明針對一種細(xì)化算法,更具體說,是針對一種非迭代細(xì)化算法,它對靠近骨架像素的不同像素,分配不同的權(quán)重,并除去不可能的像素。本發(fā)明既不需要對某一像素進(jìn)行迭代,也不需要對每一個(gè)像素都檢測;因此,減少了處理所需要的時(shí)間。本發(fā)明還可以結(jié)合某種填充算法使用。對各種不同的二進(jìn)制圖形的實(shí)驗(yàn)結(jié)果表明,本發(fā)明與其他常規(guī)算法相比,是一種高速的技術(shù),且可以獲得良好的骨架形狀。
文檔編號(hào)H04N1/387GK1336621SQ0012197
公開日2002年2月20日 申請日期2000年7月27日 優(yōu)先權(quán)日2000年7月27日
發(fā)明者吳曉蕓 申請人:朗迅科技公司