專(zhuān)利名稱(chēng):條空邊界像素點(diǎn)計(jì)算模塊及其計(jì)算方法
條空邊界像素點(diǎn)計(jì)算模塊及其計(jì)算方法
技術(shù)領(lǐng)域:
本發(fā)明涉及條碼識(shí)別技術(shù)領(lǐng)域,特別地,涉及一種應(yīng)用在條碼識(shí)別裝置中的條空 邊界像素點(diǎn)計(jì)算模塊及其計(jì)算方法。
背景技術(shù):
條碼技術(shù)是在計(jì)算機(jī)技術(shù)與信息技術(shù)基礎(chǔ)上發(fā)展起來(lái)的一門(mén)集編碼、印刷、識(shí)別、 數(shù)據(jù)采集和處理于一身的新興技術(shù)。條碼技術(shù)由于其識(shí)別快速、準(zhǔn)確、可靠以及成本低等優(yōu) 點(diǎn),被廣泛應(yīng)用于商業(yè)、圖書(shū)管理、倉(cāng)儲(chǔ)、郵電、交通和工業(yè)控制等領(lǐng)域,并且勢(shì)必在逐漸興 起的“物聯(lián)網(wǎng)”應(yīng)用中發(fā)揮重大的作用。
目前被廣泛使用的條碼包括一維條碼及二維條碼。一維條碼又稱(chēng)線形條碼是由平 行排列的多個(gè)“條”和“空”單元組成,條碼信息依靠條和空的不同寬度和位置來(lái)表達(dá)。二 維條碼是由按一定規(guī)律在二維方向上分布的黑白相間的特定幾何圖形組成,其可以在二維 方向上表達(dá)信息。二維條碼可以分為行列式二維條碼和矩陣式二維條碼。行列式二維條碼 是由多行短截的一維條碼堆疊而成,代表性的行列式二維條碼包括PDF417、Code 49、Code 16K等。行列式二維條碼信息表示方法與一維條碼類(lèi)似,也是依靠條和空的不同寬度和位置 來(lái)表達(dá)。矩陣式二維條碼是由按預(yù)定規(guī)則分布于矩陣中的黑、白模塊組成,代表性的矩陣式 二維條碼包括QR碼、Data Matrix碼、Maxi碼、Aztec碼、漢信碼等。在條碼進(jìn)行解碼的過(guò)程中,通常是利用掃描設(shè)備對(duì)于條碼進(jìn)行掃描,以獲取反射 光信號(hào),或者是利用攝影設(shè)備對(duì)條碼進(jìn)行拍攝,以獲取條碼圖像,通過(guò)對(duì)反射光信號(hào)或條碼 圖像進(jìn)行識(shí)別處理來(lái)獲取條碼信息。如圖1所示,是三星電子株式會(huì)社提出的中國(guó)專(zhuān)利申請(qǐng)第200510126730. 7號(hào),其 公開(kāi)了一種讀取條碼的方法和裝置。該裝置包括掃描單元,用于感測(cè)條碼并且生成掃描信 號(hào);搜索單元,用于計(jì)算掃描信號(hào)的變化率,從掃描信號(hào)中提取斜線段,并搜索所提取的斜 線段的起點(diǎn)和終點(diǎn)以檢測(cè)條碼的條的邊緣;以及條碼讀取單元,用于基于所檢測(cè)的邊緣之 間的距離而讀出條碼。這種讀取條碼的方法和裝置的缺點(diǎn)在于,該裝置必須依賴(lài)于使用者 通過(guò)掃描單元正確地感測(cè)條碼方向,讀取條碼的裝置本身不能識(shí)別條碼方向,不能根據(jù)條 碼方向調(diào)整解碼方向,由此造成了使用不便和應(yīng)用的局限性,在條碼的條空密度較大,或者 是畸變較大的情況下會(huì)造成無(wú)法識(shí)別解碼。因此,針對(duì)現(xiàn)有技術(shù)存在的以上不足,亟需提供一種應(yīng)用在條碼識(shí)別裝置中的條 空邊界像素點(diǎn)計(jì)算模塊及其計(jì)算方法,使得能保證正確識(shí)別條碼的條空信息,提高解碼成 功率。
發(fā)明內(nèi)容針對(duì)現(xiàn)有技術(shù)存在的解碼裝置依賴(lài)于使用者通過(guò)掃描單元正確地感測(cè)條碼方向, 不能根據(jù)條碼方向調(diào)整解碼方向的不足,本發(fā)明提供一種應(yīng)用在條碼識(shí)別裝置中的條空邊 界像素點(diǎn)計(jì)算模塊及其計(jì)算方法,可以正確識(shí)別條碼的條空信息,提高解碼成功率。
本發(fā)明提供一種條空邊界像素點(diǎn)計(jì)算模塊,包括掃描邊界獲取單元,獲取條空邊 界點(diǎn)和條碼方向,計(jì)算掃描邊界;直線掃描單元,根據(jù)掃描邊界選取掃描起點(diǎn)和與掃描起點(diǎn) 對(duì)應(yīng)的掃描終點(diǎn),計(jì)算掃描起點(diǎn)與掃描終點(diǎn)之間的直線上的像素點(diǎn)的坐標(biāo)。本發(fā)明還提供一種條空邊界像素點(diǎn)的計(jì)算方法,包括以下步驟a.獲取條空邊界 點(diǎn)和條碼方向,計(jì)算掃描邊界;b.根據(jù)掃描邊界選取掃描起點(diǎn)和與掃描起點(diǎn)對(duì)應(yīng)的掃描終 點(diǎn),計(jì)算掃描起點(diǎn)與掃描終點(diǎn)之間的直線上的像素點(diǎn)的坐標(biāo)。本發(fā)明另提供一種條空邊界像素點(diǎn)的計(jì)算方法,包括以下步驟a.獲取條碼邊 界、條碼方向和碼詞寬度;b.根據(jù)條碼邊界、條碼方向和碼詞寬度,獲取兩個(gè)相距至少一個(gè) 碼詞寬度的列分界線;C.以兩個(gè)列分界線為中心,依據(jù)條碼方向向外擴(kuò)展,分別獲取列分 界線區(qū)域;d.在邊界區(qū)域內(nèi)進(jìn)行直線計(jì)算,以獲取列分界線直線;e.依據(jù)列分界線直線沿 條碼方向向外平移以獲取掃描邊界;f.在一側(cè)的掃描邊界上選取掃描起點(diǎn),在另一側(cè)的掃 描邊界上獲取與掃描起點(diǎn)對(duì)應(yīng)的掃描終點(diǎn),對(duì)掃描起點(diǎn)和掃描終點(diǎn)之間的條碼圖像進(jìn)行坐 標(biāo)計(jì)算,獲取掃描起點(diǎn)和掃描終點(diǎn)之間的像素點(diǎn)的坐標(biāo)。。本發(fā)明的條空邊界像素點(diǎn)計(jì)算模塊及其計(jì)算方法能夠根據(jù)條碼方向調(diào)整解碼方 向,獲取條碼邊界像素點(diǎn)的精確坐標(biāo)值,大大提高了解碼成功率,特別適用于高密度條碼或 畸變條碼的識(shí)別解碼。本發(fā)明的條空邊界像素點(diǎn)計(jì)算模塊采用硬件流水線結(jié)構(gòu),通過(guò)硬件邏輯實(shí)現(xiàn)對(duì)條 碼圖像的識(shí)別解碼,由于硬件流水線結(jié)構(gòu)適于對(duì)條碼圖像進(jìn)行流水線作業(yè)和并行處理,因 此處理速度很快。由于采用全硬件結(jié)構(gòu),無(wú)需處理器參與解碼,芯片結(jié)構(gòu)相對(duì)于處理器而言 結(jié)構(gòu)更為簡(jiǎn)化、面積更小、功耗更低、成本更低、易于集成,容易實(shí)現(xiàn)便攜應(yīng)用??梢苑奖愕?與物聯(lián)網(wǎng)技術(shù)相結(jié)合,為條碼技術(shù)的應(yīng)用提供了更為廣闊的發(fā)展空間。
圖1是現(xiàn)有技術(shù)的一種讀取條碼的方法和裝置的結(jié)構(gòu)示意圖。圖2是本發(fā)明的條碼識(shí)別裝置結(jié)構(gòu)示意圖。圖3是根據(jù)本發(fā)明的條碼方向識(shí)別方法的識(shí)別原理示意圖。圖4是本發(fā)明的條空邊界計(jì)算模塊的處理方法的一種實(shí)施方式的流程圖。圖5是本發(fā)明的條空邊界計(jì)算模塊對(duì)條碼圖像進(jìn)行處理的工作原理示意圖。圖6是圖5中對(duì)條碼圖像進(jìn)行處理的局部放大圖。圖7是本發(fā)明的條空邊界計(jì)算模塊的處理方法的另一種實(shí)施方式的流程圖。圖8是本發(fā)明的條空邊界計(jì)算模塊的處理方法的又一種實(shí)施方式的流程圖。
具體實(shí)施方式有關(guān)本發(fā)明的特征及技術(shù)內(nèi)容,請(qǐng)參考以下的詳細(xì)說(shuō)明與附圖,附圖僅提供參考 與說(shuō)明,并非用來(lái)對(duì)本發(fā)明加以限制。以下首先對(duì)本發(fā)明的條碼識(shí)別裝置進(jìn)行詳細(xì)描述,圖2是本發(fā)明的條碼識(shí)別裝置 結(jié)構(gòu)示意圖。如圖2所示,本發(fā)明的條碼識(shí)別裝置包括邊界識(shí)別模塊120、方向識(shí)別模塊130、條空邊界計(jì)算模塊140以及符號(hào)字符提取模塊150。條碼識(shí)別裝置連接數(shù)據(jù)存儲(chǔ)器11,數(shù)據(jù)存儲(chǔ)器11內(nèi)存儲(chǔ)有條碼圖像的像素坐標(biāo)和灰度值。本發(fā)明的條碼識(shí)別裝置采用硬件流水 線結(jié)構(gòu),通過(guò)硬件邏輯實(shí)現(xiàn)對(duì)條碼圖像的識(shí)別解碼,適于對(duì)條碼圖像進(jìn)行流水線作業(yè)和并 行處理。邊界識(shí)別模塊120讀取條碼圖像并進(jìn)行虛擬掃描,以獲取條碼的條空邊界點(diǎn)。所 謂虛擬掃描線是指通過(guò)掃描電路根據(jù)一定的邏輯獲取條碼圖像的擇像素坐標(biāo)和灰度值,例 如是X方向沿水平方向掃完第1行,Y方向遞增10個(gè)像素間距,繼續(xù)X方向沿水平方向掃 第2行。邊界識(shí)別模塊120通過(guò)計(jì)算虛擬掃描線上存在灰度落差的像素點(diǎn)的坐標(biāo)位置來(lái)獲 取與虛擬掃描線相交的條空邊界點(diǎn)。對(duì)于條碼符號(hào)而言,條一般用黑色或深色表示,空一般 用白色或淺色表示。方向識(shí)別模塊130根據(jù)邊界識(shí)別模塊120所獲取的條空邊界點(diǎn)計(jì)算獲得條碼方 向。以下對(duì)本發(fā)明的方向識(shí)別模塊130獲取條碼方向的方法進(jìn)行詳細(xì)描述,圖3是根據(jù)本 發(fā)明的條碼方向識(shí)別方法的識(shí)別原理示意圖。如圖3所示,條碼圖像為傾斜狀態(tài),無(wú)法直接 沿水平方向作虛擬掃描線進(jìn)行識(shí)別解碼。需要獲取條碼方向后對(duì)虛擬掃描方向進(jìn)行調(diào)整。 第一掃描方向條碼方向的夾角為θ 2,而由于θ 2與θ 1與統(tǒng)一角度互為補(bǔ)角,因此Θ1 = θ 2。所以只需知道θ 1的斜率tg θ 1,即可獲得條碼方向的斜率tg θ 2。
X 一 X而由圖3可知,挖01 = — "TTTT °
少2 y\上式中,(x2,y2)和(xl,yl)的坐標(biāo)可以由虛擬掃描線與條空相交的邊界點(diǎn)獲得, 根據(jù)各條虛擬掃描線與條空相交的邊界點(diǎn)的坐標(biāo)值,通過(guò)X坐標(biāo)位置比較,y坐標(biāo)位置比較 來(lái)判斷各點(diǎn)的平行四邊形特征,可以確定位于一個(gè)平行四邊形特征內(nèi)的(x2,y2)和(xl, yl)的像素點(diǎn)的坐標(biāo),進(jìn)而計(jì)算獲得tg θ 1的值,即獲得條碼方向。上述平行四邊形特征 也可以采用平行線特征代替,上述平行四邊形特征或平行線特征并不限定在一個(gè)條空范圍 內(nèi)。在方向識(shí)別模塊130計(jì)算獲得條碼方向之后,條空邊界計(jì)算模塊140根據(jù)條碼方 向?qū)l碼圖像進(jìn)行處理,以獲取條碼圖像中準(zhǔn)確的條空邊界。符號(hào)字符提取模塊150根據(jù) 準(zhǔn)確的條空邊界計(jì)算獲得準(zhǔn)確的符號(hào)字符,從而獲取條碼信息。如圖2所示,條空邊界計(jì)算模塊140進(jìn)一步包括掃描邊界獲取單元141、直線掃描 單元142、亞像素邊界計(jì)算單元143、直線計(jì)算單元144以及掃描坐標(biāo)計(jì)算單元145。圖4是 本發(fā)明的條空邊界計(jì)算模塊的處理方法的一種實(shí)施方式的流程圖,圖5是本發(fā)明的條空邊 界計(jì)算模塊對(duì)條碼圖像進(jìn)行處理的工作原理示意圖,圖6是圖5中對(duì)條碼圖像進(jìn)行處理的 局部放大圖。以下結(jié)合圖2、圖4、圖5和圖6對(duì)條空邊界計(jì)算模塊140中各個(gè)單元的結(jié)構(gòu) 功能和處理流程進(jìn)行描述。請(qǐng)結(jié)合圖2和圖4,掃描邊界獲取單元141連接邊界識(shí)別模塊120、方向計(jì)算模塊 130。在步驟921中,掃描邊界獲取單元141從邊界識(shí)別模塊120獲取條碼邊界點(diǎn),從 方向計(jì)算模塊130獲取條碼方向。如圖5和圖6所示,掃描邊界獲取單元141以兩側(cè)的條 碼邊界點(diǎn)為中心,依據(jù)條碼方向和與條碼方向垂直的方向向外擴(kuò)展,分別獲取邊界區(qū)域821 和826。邊界區(qū)域821和826內(nèi)包括了條碼邊界點(diǎn)及其附近的像素點(diǎn)的集合。在步驟923中,掃描邊界獲取單元141將邊界區(qū)域821和826內(nèi)的像素點(diǎn)的集合輸入直線計(jì)算單元144中,直線計(jì)算單元144對(duì)邊界區(qū)域821和826內(nèi)的像素點(diǎn)的集合進(jìn) 行Hough (霍夫)運(yùn)算。Hough運(yùn)算的基本原理為假設(shè)在直角坐標(biāo)系中存在一條原點(diǎn)距離 為P,方位角為θ的直線,則直線上每一點(diǎn)滿足公式P = xcos θ +ysin θ。在條碼邊界搜 索過(guò)程中,對(duì)于每一個(gè)像素點(diǎn)的圖像空間坐標(biāo)x、y,利用不同的θ離散值通過(guò)上述運(yùn)算公 式計(jì)算對(duì)應(yīng)的P值,通過(guò)對(duì)θ離散值和P值的統(tǒng)計(jì),求得直線所對(duì)應(yīng)的像素坐標(biāo)。在本 發(fā)明的實(shí)施方式中,直線計(jì)算單元144例如可以采用多個(gè)串行連接的cordic迭代運(yùn)算單元 實(shí)現(xiàn)對(duì)像素點(diǎn)的集合內(nèi)的霍夫(Hough)計(jì)算,以求得直線坐標(biāo)。直線計(jì)算單元144通過(guò)Hough運(yùn)算獲取邊界區(qū)域821內(nèi)條碼邊界所對(duì)應(yīng)的邊界直 線822的像素點(diǎn)坐標(biāo),以及邊界區(qū)域826內(nèi)條碼邊界所對(duì)應(yīng)的邊界直線827的像素點(diǎn)坐標(biāo), 將運(yùn)算結(jié)果返回至掃描邊界獲取單元141。邊界直線822和827反映了邊界區(qū)域821和826 內(nèi)的條空邊界的直線特征。在步驟924中,掃描邊界獲取單元141依據(jù)條碼方向,將邊界直線822和邊界直線 827的像素點(diǎn)坐標(biāo)向條碼區(qū)域外平移預(yù)定距離以獲得掃描邊界823和828,預(yù)定距離例如是 5-10個(gè)像素點(diǎn)的間距。邊界直線822和827反映的是條空邊界的直線特征,但是由于條碼 印刷或條碼成像的影響,條碼圖像中實(shí)際的條空邊界并非是一條嚴(yán)格的直線,而是基于直 線特征的帶有微小波動(dòng)的曲線或多個(gè)直線段的集合。為了獲取更準(zhǔn)確的條空邊界,掃描邊 界獲取單元141通過(guò)將邊界直線822和邊界直線827的像素點(diǎn)坐標(biāo)向外平移,以將基于直 線特征的帶有微小波動(dòng)的曲線或多個(gè)直線段的集合包括在掃描邊界823和828的范圍內(nèi)。 之后,掃描邊界獲取單元141將掃描邊界823和828輸入直線掃描單元142中進(jìn)行下一步 處理。
在步驟925中,直線掃描單元142在一側(cè)掃描邊界823上選取點(diǎn)A,在另一側(cè)的掃 描邊界828上獲取與點(diǎn)A相對(duì)應(yīng)的點(diǎn)A'。點(diǎn)A'的包括多種獲取方法。在本發(fā)明的一種 實(shí)施方式中,點(diǎn)A'獲取方法為以點(diǎn)A為起點(diǎn),根據(jù)條碼方向(即tg θ 1的值)在掃描邊界 828上搜索與點(diǎn)A位于同一條直線上的點(diǎn)A',即根據(jù)已知直線、直線外的坐標(biāo)點(diǎn)A的坐標(biāo) 以及經(jīng)點(diǎn)A的另一條直線的斜率值,求出已知直線與另一條直線的交點(diǎn)A'的坐標(biāo)。在本發(fā) 明的另一種實(shí)施方式中,點(diǎn)A'獲取方法為計(jì)算在掃描邊界828上與點(diǎn)A距離最短的坐標(biāo) 點(diǎn),該坐標(biāo)點(diǎn)即為點(diǎn)A'。在步驟926中,直線掃描單元142以A為掃描起點(diǎn),A'為掃描終點(diǎn),計(jì)算A-A'之 間的直線824上的像素點(diǎn)的坐標(biāo)。直線掃描單元142通過(guò)將點(diǎn)A和點(diǎn)A'的坐標(biāo)值輸入掃 描坐標(biāo)計(jì)算單元145中,掃描坐標(biāo)計(jì)算單元145對(duì)A-A'之間的直線824上的像素點(diǎn)825的 坐標(biāo)進(jìn)行計(jì)算。掃描坐標(biāo)計(jì)算單元145計(jì)算像素點(diǎn)825的坐標(biāo)的方法包括多種方式。在本發(fā)明的 一種實(shí)施方式中,掃描坐標(biāo)計(jì)算單元145包括Breshem運(yùn)算單元,通過(guò)Breshem運(yùn)算單元 計(jì)算A-A'兩點(diǎn)之間的直線824上各個(gè)像素點(diǎn)的坐標(biāo)。Breshem算法原理如下條碼圖像 由像素點(diǎn)構(gòu)成,過(guò)條碼圖像中各行各列的像素中心構(gòu)造一組虛擬網(wǎng)格線。按直線從起點(diǎn)到 終點(diǎn)的順序計(jì)算直線與各垂直網(wǎng)格線的交點(diǎn),然后確定該列像素中與此交點(diǎn)最近的像素。 Breshem算法的巧妙之處在于采用增量計(jì)算,使得對(duì)于每一列,只要檢查一個(gè)誤差項(xiàng)的符 號(hào),就可以確定該列的所求像素點(diǎn)的坐標(biāo)。Breshem使得在求兩點(diǎn)之間直線上各點(diǎn)坐標(biāo)的過(guò) 程中全部以整數(shù)來(lái)運(yùn)算,因而大幅度提升了計(jì)算速度。
掃描坐標(biāo)計(jì)算單元145將計(jì)算出的A-A'兩點(diǎn)之間的直線824上的像素點(diǎn)825的 坐標(biāo)返回至直線掃描單元142,直線掃描單元142將A-A'兩點(diǎn)之間的直線824上的像素點(diǎn) 825的坐標(biāo)輸入亞像素邊界計(jì)算單元143中。在步驟927中,亞像素邊界計(jì)算單元143依據(jù)A-A'之間像素點(diǎn)825的坐標(biāo)以及灰 度值,進(jìn)行亞像素邊界計(jì)算,將像素點(diǎn)825所對(duì)應(yīng)的分為更小的單位以獲取條空邊界的精 確坐標(biāo)并計(jì)算出該精確坐標(biāo)所對(duì)應(yīng)的灰度落差值。由此,條空邊界計(jì)算模塊140獲取了條碼圖像中精確的條空邊界坐標(biāo)和該精確坐 標(biāo)所對(duì)應(yīng)的灰度落差值,并將此計(jì)算結(jié)果輸入符號(hào)字符提取模塊150中。符號(hào)字符提取模 塊150根據(jù)精確的條空邊界坐標(biāo)和灰度落差值計(jì)算獲得準(zhǔn)確的條空值,即符號(hào)字符值,進(jìn) 而獲取條碼信息。以上對(duì)本發(fā)明的條碼識(shí)別裝置,特別是條空邊界計(jì)算模塊的結(jié)構(gòu)及其處理方法進(jìn) 行了詳細(xì)描述。下面針對(duì)本發(fā)明的條空邊界計(jì)算模塊的其他處理方法進(jìn)行詳細(xì)描述。這些 技術(shù)方案是為了使本領(lǐng)域技術(shù)人員更加深入地理解本發(fā)明所保護(hù)的技術(shù)方案,不應(yīng)理解為 對(duì)本發(fā)明所保護(hù)的技術(shù)方案的限制。圖7是本發(fā)明的條空邊界計(jì)算模塊的處理方法的另一種實(shí)施方式的 流程圖。該處 理方法包括以下步驟。如圖7所示,在步驟931中,獲取條碼邊界點(diǎn)和條碼方向。在步驟932中,以兩側(cè)的條碼邊界點(diǎn)為中心,依據(jù)條碼方向和其垂直方向向外擴(kuò) 展,分別獲取邊界區(qū)域。在步驟933中,在邊界區(qū)域內(nèi)進(jìn)行直線計(jì)算,以獲取邊界直線。在步驟934中,依據(jù)邊界直線沿條碼方向向外平移以獲取掃描邊界。在步驟935中,請(qǐng)結(jié)合圖5和圖6,在一側(cè)掃描邊界上選取多個(gè)點(diǎn)A、B、C,在另一側(cè) 的掃描邊界上獲取與點(diǎn)A、B、C對(duì)應(yīng)的點(diǎn)A' ,B' ,C'。在步驟936中,以A、B、C為掃描起點(diǎn),A' ,B'、C'為掃描終點(diǎn),對(duì)A-A‘ ,B-B'、 C-C'之間的條碼圖像進(jìn)行坐標(biāo)計(jì)算,獲取A-A' ,B-B' ,C-C'之間的多組像素點(diǎn)的坐標(biāo)。在步驟937中,依據(jù)A-A' ,B-B' ,C-C'之間的多組像素點(diǎn)的坐標(biāo)以及灰度值,進(jìn) 行亞像素邊界計(jì)算,獲取多組條空邊界坐標(biāo)及邊界灰度落差。在步驟938中,對(duì)多組條空邊界坐標(biāo)及邊界灰度落差進(jìn)行置信度統(tǒng)計(jì),獲取可信 度高的條空邊界坐標(biāo)及邊界灰度落差。與本發(fā)明的上一種條空邊界計(jì)算模塊的處理方法的不同之處在于,此實(shí)施方式是 選取多個(gè)點(diǎn)進(jìn)行掃描,以獲取多組條空邊界坐標(biāo)及邊界灰度落差,通過(guò)對(duì)多組條空邊界坐 標(biāo)及邊界灰度落差進(jìn)行置信度統(tǒng)計(jì),來(lái)獲取可信度更高的條空邊界坐標(biāo)及邊界灰度落差, 從而使得條碼識(shí)別裝置的解碼成功率更高。圖8是本發(fā)明的條空邊界計(jì)算模塊的處理方法的又一種實(shí)施方式的流程圖。與 上述兩種處理方法的不同之處在于,此實(shí)施方式是針對(duì)行列式二維條碼,特別是PDF417、 Micro PDF417條碼進(jìn)行處理。該處理方法包括以下步驟。如圖8所示,在步驟941中,獲取PDF417條碼邊界、條碼方向和碼詞寬度。在步驟942中,根據(jù)PDF417條碼邊界、條碼方向和碼詞寬度,獲取兩個(gè)相距至少一 個(gè)碼詞寬度的列分界線。
在步驟943中,以兩個(gè)列分界線為中心,依據(jù)條碼方向和其垂直方向向外擴(kuò)展,分 別獲取列分界線區(qū)域。在步驟944中,在邊界區(qū)域內(nèi)進(jìn)行直線計(jì)算,以獲取列分界線直線。
在步驟945中,依據(jù)列分界線直線沿條碼方向向外平移以獲取掃描邊界。在步驟946中,在一側(cè)掃描邊界上選取點(diǎn)A,在另一側(cè)的掃描邊界上獲取與點(diǎn)A對(duì) 應(yīng)的點(diǎn)A'。在步驟947中,以A為掃描起點(diǎn),A為掃描終點(diǎn),對(duì)A-A'之間的條碼圖像進(jìn)行坐標(biāo) 計(jì)算,獲取A-A'之間像素點(diǎn)的坐標(biāo)。在步驟948中,依據(jù)A-A'之間像素點(diǎn)的坐標(biāo)以及灰度值,進(jìn)行亞像素邊界計(jì)算, 獲取條空邊界坐標(biāo)及邊界灰度落差。本發(fā)明通過(guò)采用圖8所示的實(shí)施方式,可以精確的獲取PDF417、MicroPDF417等行 列式條碼的條空邊界,進(jìn)而準(zhǔn)確的獲取出條空邊界所對(duì)應(yīng)的條碼信息。本發(fā)明的條空邊界像素點(diǎn)計(jì)算模塊及其計(jì)算方法能夠根據(jù)條碼方向調(diào)整解碼方 向,獲取條碼邊界像素點(diǎn)的精確坐標(biāo)值,大大提高了解碼成功率,特別適用于高密度條碼或 畸變條碼的識(shí)別解碼。本發(fā)明的條空邊界像素點(diǎn)計(jì)算模塊采用硬件流水線結(jié)構(gòu),通過(guò)硬件邏輯實(shí)現(xiàn)對(duì)條 碼圖像的識(shí)別解碼,由于硬件流水線結(jié)構(gòu)適于對(duì)條碼圖像進(jìn)行流水線作業(yè)和并行處理,因 此處理速度很快。由于采用全硬件結(jié)構(gòu),無(wú)需處理器參與解碼,芯片結(jié)構(gòu)相對(duì)于處理器而言 結(jié)構(gòu)更為簡(jiǎn)化、面積更小、功耗更低、成本更低、易于集成,容易實(shí)現(xiàn)便攜應(yīng)用??梢苑奖愕?與物聯(lián)網(wǎng)技術(shù)相結(jié)合,為條碼技術(shù)的應(yīng)用提供了更為廣闊的發(fā)展空間。以上參照
了本發(fā)明的各種優(yōu)選實(shí)施例,但是只要不背離本發(fā)明的實(shí)質(zhì)和 范圍,本領(lǐng)域的技術(shù)人員可以對(duì)其進(jìn)行各種形式上的修改和變更,都屬于本發(fā)明的保護(hù)范 圍。
權(quán)利要求
一種條空邊界像素點(diǎn)計(jì)算模塊,其特征在于,包括掃描邊界獲取單元,獲取條空邊界點(diǎn)和條碼方向,計(jì)算掃描邊界;直線掃描單元,根據(jù)所述掃描邊界選取掃描起點(diǎn)和與掃描起點(diǎn)對(duì)應(yīng)的掃描終點(diǎn),計(jì)算所述掃描起點(diǎn)與所述掃描終點(diǎn)之間的直線上的像素點(diǎn)的坐標(biāo)。
2.根據(jù)權(quán)利要求1所述的條空邊界像素點(diǎn)計(jì)算模塊,其特征在于,所述掃描邊界獲取 單元以所述條空邊界點(diǎn)為中心,依據(jù)所述條碼方向向外擴(kuò)展,獲取邊界區(qū)域,所述邊界區(qū)域 包括所述條碼邊界點(diǎn)及所述條碼邊界點(diǎn)附近的像素點(diǎn)的集合。
3.根據(jù)權(quán)利要求2所述的條空邊界像素點(diǎn)計(jì)算模塊,其特征在于,所述條空邊界像素 點(diǎn)計(jì)算模塊還包括直線計(jì)算單元,所述直線計(jì)算單元通過(guò)霍夫運(yùn)算獲取所述邊界區(qū)域所對(duì) 應(yīng)的邊界直線。
4.根據(jù)權(quán)利要求3所述的條空邊界像素點(diǎn)計(jì)算模塊,其特征在于,所述掃描邊界獲取 單元依據(jù)所述條碼方向,將所述邊界直線向條碼區(qū)域外平移預(yù)定距離以獲得 所述掃描邊 界。
5.根據(jù)權(quán)利要求1所述的條空邊界像素點(diǎn)計(jì)算模塊,其特征在于,所述條空邊界像素 點(diǎn)計(jì)算模塊還包括掃描坐標(biāo)計(jì)算單元,所述掃描坐標(biāo)計(jì)算單元通過(guò)Breshem算法計(jì)算所述 掃描起點(diǎn)與所述掃描終點(diǎn)之間的直線上的像素點(diǎn)的坐標(biāo)。
6.一種條空邊界像素點(diǎn)的計(jì)算方法,其特征在于,包括以下步驟a.獲取條空邊界點(diǎn)和條碼方向,計(jì)算掃描邊界;b.根據(jù)所述掃描邊界選取掃描起點(diǎn)和與掃描起點(diǎn)對(duì)應(yīng)的掃描終點(diǎn),計(jì)算所述掃描起點(diǎn) 與所述掃描終點(diǎn)之間的直線上的像素點(diǎn)的坐標(biāo)。
7.根據(jù)權(quán)利要求6所述的條空邊界像素點(diǎn)的計(jì)算方法,其特征在于,所述a步驟包括以 所述條空邊界點(diǎn)為中心,依據(jù)所述條碼方向向外擴(kuò)展,獲取邊界區(qū)域,所述邊界區(qū)域包括所 述條碼邊界點(diǎn)及所述條碼邊界點(diǎn)附近的像素點(diǎn)的集合。
8.根據(jù)權(quán)利要求7所述的條空邊界像素點(diǎn)的計(jì)算方法,其特征在于,所述a步驟還包括 通過(guò)霍夫運(yùn)算獲取所述邊界區(qū)域所對(duì)應(yīng)的邊界直線。
9.根據(jù)權(quán)利要求8所述的條空邊界像素點(diǎn)的計(jì)算方法,其特征在于,所述a步驟還包括 依據(jù)所述條碼方向,將所述邊界直線向條碼區(qū)域外平移預(yù)定距離以獲得所述掃描邊界。
10.根據(jù)權(quán)利要求6所述的條空邊界像素點(diǎn)的計(jì)算方法,其特征在于,所述b步驟包括 通過(guò)Breshem算法計(jì)算所述掃描起點(diǎn)與所述掃描終點(diǎn)之間的直線上的像素點(diǎn)的坐標(biāo)。
11.根據(jù)權(quán)利要求6所述的條空邊界像素點(diǎn)的計(jì)算方法,其特征在于,所述條碼邊界處 理方法還包括c.根據(jù)所述掃描邊界選取多個(gè)所述掃描起點(diǎn)和與所述掃描起點(diǎn)對(duì)應(yīng)的多個(gè)所述掃描 終點(diǎn),計(jì)算多個(gè)所述掃描起點(diǎn)與多個(gè)所述掃描終點(diǎn)之間的直線上的多組像素點(diǎn)的坐標(biāo)。
12.一種條空邊界像素點(diǎn)的計(jì)算方法,其特征在于,包括以下步驟a.獲取條碼邊界、條碼方向和碼詞寬度;b.根據(jù)所述條碼邊界、所述條碼方向和所述碼詞寬度,獲取兩個(gè)相距至少一個(gè)所述碼 詞寬度的列分界線;c.以所述兩個(gè)列分界線為中心,依據(jù)所述條碼方向向外擴(kuò)展,分別獲取所述列分界線 區(qū)域;d.在所述邊界區(qū)域內(nèi)進(jìn)行直線計(jì)算,以獲取列分界線直線;e.依據(jù)所述列分界線直線沿所述條碼方向向外平移以獲取掃描邊界;f.在一側(cè)的所述掃描邊界上選取掃描起點(diǎn),在另一側(cè)的所述掃描邊界上獲取與所述掃 描起點(diǎn)對(duì)應(yīng)的掃描終點(diǎn),對(duì)所述掃描起點(diǎn)和所述掃描終點(diǎn)之間的條碼圖像進(jìn)行坐標(biāo)計(jì)算, 獲取所述掃描起點(diǎn)和所述掃描終點(diǎn)之間的像素點(diǎn)的坐標(biāo)。
全文摘要
本發(fā)明提供一種條空邊界像素點(diǎn)計(jì)算模塊,包括掃描邊界獲取單元,獲取條空邊界點(diǎn)和條碼方向,計(jì)算掃描邊界;直線掃描單元,根據(jù)掃描邊界選取掃描起點(diǎn)和與掃描起點(diǎn)對(duì)應(yīng)的掃描終點(diǎn),計(jì)算掃描起點(diǎn)與掃描終點(diǎn)之間的直線上的像素點(diǎn)的坐標(biāo)。本發(fā)明還提供一種條空邊界像素點(diǎn)的計(jì)算方法。本發(fā)明的條空邊界像素點(diǎn)計(jì)算模塊能夠根據(jù)條碼方向調(diào)整解碼方向,獲取條碼邊界的精確坐標(biāo)值,提高了解碼成功率。
文檔編號(hào)G06K7/10GK101833640SQ20101018881
公開(kāi)日2010年9月15日 申請(qǐng)日期2010年6月1日 優(yōu)先權(quán)日2010年6月1日
發(fā)明者王賢福, 胡倫育, 陳再輝, 陳育卿 申請(qǐng)人:福建新大陸電腦股份有限公司