国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      數(shù)據(jù)矩陣碼的識別方法

      文檔序號:6555931閱讀:483來源:國知局
      專利名稱:數(shù)據(jù)矩陣碼的識別方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及數(shù)據(jù)識別領(lǐng)域,尤其涉及一種數(shù)據(jù)矩陣碼的識別方法。
      背景技術(shù)
      隨著社會的發(fā)展,類似于條形碼的一維代碼在諸如商業(yè)、藥品、后勤運輸?shù)雀鞣N領(lǐng)域都得到了廣泛的應(yīng)用,條形碼所代表的商品信息在商品管理以及對商品信息的加密等多個方面都有重要的意義。一般的條形碼都只能在一個水平方向表達信息,其在垂直方向則不表達任何信息,因此,表達的信息量較小。隨著信息量的增大及存儲要求的不斷提高,條形碼因信息容量小而使其應(yīng)用受到了的限制。于是,業(yè)界開始采用一種二維代碼,即數(shù)據(jù)矩陣碼(data matrix code),其信息存儲原理是在一個矩形空間內(nèi),通過黑、白像素在矩陣中的不同分布進行編碼。國際標(biāo)準化組織于2000年將數(shù)據(jù)矩陣碼命名為ISO/IEC 16022∶2000并予以頒布,自此,數(shù)據(jù)矩陣碼得到了廣泛的應(yīng)用。
      圖1揭示了一種常見的標(biāo)準數(shù)據(jù)矩陣碼1的結(jié)構(gòu),其包括特征邊10、校正模塊11以及數(shù)據(jù)區(qū)12,特征邊10呈“L”形,其位于數(shù)據(jù)矩陣碼1的兩個相鄰邊緣,包括垂直特征邊101和水平特征邊102;校正模塊11位于數(shù)據(jù)矩陣碼1的另外兩個相鄰邊緣(分別與特征邊10相對),其包括多個間隔排列的黑色模塊110和白色模塊111;數(shù)據(jù)區(qū)12位于由特征邊10和校正模塊11圍成的矩形區(qū)域之內(nèi),其包含若干個黑色碼元120和白色碼元121,這些黑色碼元120和白色碼元121即包含了特定的編碼信息,通過識別黑色碼元120和白色碼元121,可以讀取出數(shù)據(jù)矩陣碼1所包含的特定信息。
      根據(jù)ISO/IEC 16022∶2000標(biāo)準,現(xiàn)有的數(shù)據(jù)矩陣碼識別方法包括以下幾個主要步驟(為了簡單起見,以下步驟中未包括一些糾錯處理等過程,詳盡的識別過程可以參見ISO/IEC 16022∶2000標(biāo)準)步驟1用區(qū)域合并分裂法搜尋數(shù)據(jù)矩陣碼1的輪廓;步驟2對輪廓上的點進行直線擬合,最終確定“L”形特征邊10;步驟3找到虛線邊(即校正模塊11)上每個黑色模塊110和白色模塊111的中心點,并從這些中心點出發(fā)畫垂直相對垂直特征邊101或者水平特征邊102的網(wǎng)格線;步驟4根據(jù)網(wǎng)格線提取比特圖案,即得到數(shù)據(jù)矩陣碼1的編碼信息。
      上述數(shù)據(jù)矩陣碼識別方法中,步驟1中所述的區(qū)域合并分裂法是一種迭代方法,其原理是先找到具有封閉連續(xù)邊界的所有候選區(qū)域,然后反復(fù)進行合并和分裂的操作,直至搜尋到步驟二中所需要的L特征邊區(qū)域(這種方法在ISO/IEC 16022∶2000標(biāo)準中有詳盡的描述,在此不做贅述),這種區(qū)域合并分裂法的存儲量和運算量比較大;另一方面,步驟3采用了先逐一尋找中心點,然后逐一做垂線的方法來確定網(wǎng)格線,這種方法運算量也比較大,在一些處理器性能并不太高的場合,此種方法會使得數(shù)據(jù)處理十分緩慢,不能達到快速識別的要求,而且,如果虛線邊(校正模塊11)受到污損,那么中心點的尋找可能會不準確,導(dǎo)致識別錯誤。
      因此,提供一種高效、快速的數(shù)據(jù)矩陣碼的識別方法實為必要。

      發(fā)明內(nèi)容
      本發(fā)明的主要目的是提供一種高效、快速的數(shù)據(jù)矩陣碼的識別方法;本發(fā)明的另一目的是提供一種降低對數(shù)據(jù)矩陣碼識別硬件要求的識別方法。
      為實現(xiàn)上述目的,本發(fā)明提供的數(shù)據(jù)矩陣碼的識別方法包括以下步驟步驟一,使用輪廓跟蹤法搜尋數(shù)據(jù)矩陣碼的輪廓;步驟二,對輪廓上的點進行直線擬合,搜尋“L”形特征邊所在直線;步驟三,計算輪廓上的點到特征邊所在直線的距離,分別得到垂直特征邊(201)和水平特征邊(202)的長度,并通過垂直特征邊(201)和水平特征邊(202)的長度計算出識別模塊中單個模塊在垂直方向與水平方向的兩個平均邊長(M1、M2);步驟四,作一組與垂直特征邊(201)平行的直線,相鄰平行直線之間的間距為其中一個邊長(M1),且垂直特征邊(201)與其相鄰直線之間的間距為1.5倍此邊長(M1);作另一組與水平特征邊(202)平行的直線,相鄰平行直線之間的間距為另一個邊長(M2),且水平特征邊(201)與其相鄰直線之間的間距為1.5倍此邊長(M2);步驟五,根據(jù)兩組直線的交點確定黑色碼元和白色碼元的坐標(biāo),并提取比特矩陣。
      本發(fā)明所提供的數(shù)據(jù)矩陣碼的識別方法是根據(jù)特征邊20的長度計算邊長M1和M2,然后直接作平行線得到比特矩陣,摒棄了現(xiàn)有技術(shù)中先確定校正模塊的中心點,再確定網(wǎng)格線交點的做法,減小了運算量;此外,本發(fā)明所述的數(shù)據(jù)矩陣碼的識別方法采用輪廓跟蹤法代替現(xiàn)有技術(shù)中的區(qū)域合并分裂法,也減小了運算量和存儲量,達到了高效、快速識別的目的,同時也降低了對數(shù)據(jù)矩陣碼進行識別的硬件要求。


      圖1是常見的標(biāo)準數(shù)據(jù)矩陣碼的結(jié)構(gòu)圖;圖2是將圖像信息二值化處理后得到的數(shù)據(jù)矩陣碼;圖3是采用輪廓跟蹤法搜尋數(shù)據(jù)矩陣碼的輪廓的示意圖;圖4是輪廓跟蹤法的示意圖;圖5是對圖3中所得到的輪廓進行直線擬合的示意圖;圖6是提取數(shù)據(jù)矩陣的示意圖;圖7是單個黑色模塊的放大示意圖;圖8是本發(fā)明所述的數(shù)據(jù)矩陣碼識別方法應(yīng)用在整個識別過程中的流程圖。
      以下結(jié)合實施例及其附圖作進一步的詳細說明。
      具體實施例方式
      為了清楚的說明本發(fā)明所涉及的數(shù)據(jù)矩陣碼的識別方法,以下實施例從實際應(yīng)用的角度出發(fā),從圖像二值化階段開始介紹數(shù)據(jù)矩陣碼的識別過程。
      參見圖2所示,使用類似于CMOS(互補型金屬氧化物半導(dǎo)體)或CCD(電荷耦合裝置)之類的感光成像裝置將標(biāo)志于產(chǎn)品上的數(shù)據(jù)矩陣碼標(biāo)記進行取像操作后得到圖像信息(圖未示),將此圖像信息通過眾所周知的二值化處理后即可得到圖2中所示的數(shù)據(jù)矩陣碼2。
      類似于圖1中所示的數(shù)據(jù)矩陣碼1,圖2中所示數(shù)據(jù)矩陣碼2包括特征邊20、校正模塊21以及數(shù)據(jù)區(qū)22,特征邊20呈“L”形,其位于數(shù)據(jù)矩陣碼2的兩個相鄰邊緣,包括垂直特征邊201和水平特征邊202;校正模塊21位于數(shù)據(jù)矩陣碼1的另外兩個相鄰邊緣(分別與特征邊20相對),其包括多個間隔排列的黑色模塊210和白色模塊211;數(shù)據(jù)區(qū)22位于由特征邊20和校正模塊21圍成的矩形區(qū)域之內(nèi),其包含若干個黑色碼元220和白色碼元221。
      由于圖2中所示的數(shù)據(jù)矩陣碼2是對圖像信息經(jīng)過取像、二值化之后得到的,導(dǎo)致其邊緣并不規(guī)則,這是因為在感光成像裝置的取向過程中,像素密度、拍攝焦距、拍攝角度以及圖像信息本身的污損等諸多因素都會對二值化過程產(chǎn)生影響,導(dǎo)致數(shù)據(jù)矩陣碼2的形狀不能達到最理想的狀況。然而,只要這種形狀上的誤差不超出一定的范圍,數(shù)據(jù)矩陣碼2仍然是可以被識別的,本發(fā)明也正是要在校正模塊11存在一定誤差的情況下,還能夠準確地對數(shù)據(jù)矩陣碼2進行高效、快速的識別。
      圖2中所示的是一個12×12規(guī)格的數(shù)據(jù)矩陣碼2,即,校正模塊21包括黑色模塊210和白色模塊211共計22個(每條邊11個),加上垂直特征邊201和水平特征邊202的頂端,即組成12x12規(guī)格的數(shù)據(jù)矩陣碼2。
      圖3中是采用輪廓跟蹤法搜尋數(shù)據(jù)矩陣碼2的輪廓。輪廓跟蹤法的基本思路是先根據(jù)探測準則找到目標(biāo)輪廓的一個點,再以此為起始點,用跟蹤準則找出目標(biāo)輪廓上的其他點。所謂探測準則是指按從左到右,從上到下的順序搜索,在數(shù)據(jù)矩陣碼2中找到第一個黑點,如果此黑點位于前面找到的非目標(biāo)輪廓內(nèi),則繼續(xù)搜索,直至找到位于前面已經(jīng)搜索到的輪廓外的第一個黑點,把它作為起始點。
      結(jié)合圖4所示,所謂跟蹤準則是指從上述起始點開始,定義初始的搜索方向為沿左下方即圖4中的0方向(每個點的四周有八個相鄰點,故每個點周圍劃分為0~7八個方向),觀測像素,若是白點,則逆時針旋轉(zhuǎn)45度,觀測其1方向的像素,依次類推,直至找到黑點。當(dāng)前點為黑點時,即找到一邊緣點,此時掃描方向退回2格(即圖4中順時針轉(zhuǎn)90度),以保證搜索到的是最外邊的黑色點。直至邊緣搜索過程回到起始點,就得到了一個物體的輪廓。
      圖5中對圖3中所得到的輪廓進行直線擬合(采用最小二乘法),并得到“L”型特征邊20所在的直線L1和L2,需要說明的是,由于上述成像過程中的各種可能存在的誤差,特征邊20并不是理想的“L”形狀,因此直線擬合過程是必需的,由于采用最小二乘法對直線進行擬合是公知的現(xiàn)有技術(shù),在此不做贅述。
      得到直線L1和L2之后,計算輪廓上的點到兩條直線的距離,到其中一條直線的最大距離即為另一條直線所對應(yīng)的特征邊的長度。例如,假設(shè)輪廓上到直線L2距離最遠的點為點A,二者之間的距離為max1,則L1所對應(yīng)的特征邊(水平特征邊202)的長度為max1;同理,假設(shè)輪廓上到直線L1距離最遠的點為點B,二者之間的距離為max2,則L2所對應(yīng)的特征邊(垂直特征邊201)的長度為max2。
      得到垂直特征邊201和水平特征邊202的長度后,計算校正模塊21所包含的單個模塊(每一個黑色模塊210或白色模塊211均可稱之為單個模塊,而且黑色模塊210和白色模塊211在理論上是大小相等的)在垂直方向與水平方向的兩個平均邊長,如圖6和圖7所示,假設(shè)圖6中某一個黑色模塊210a的兩個平均邊長為M1、M2,則M1=max1/12,M2=max2/12。為清楚起見,圖7中給出了黑色模塊210a的放大示意圖。
      如圖6所示,在計算出邊長M1、M2后,作10條平行于直線L1的直線v1、v2、v3......v10(為簡單起見,圖6中只標(biāo)示直線v1、v2、v3、v10),其中直線v1與直線L1之間的間距為1.5M1,v2與v1之間的間距為M1,v3與v2之間的間距也為M1,以此類推,即,v1至v10中任意兩條相鄰直線之間的間距均為M1。同樣的,作10條平行于直線L2的直線h1、h2、h3......h10(為簡單起見,圖6中只標(biāo)示直線h1、h2、h3、h10),其中直線h1與直線L2之間的間距為1.5M2,h2與h1之間的間距為M2,h3與h2之間的間距也為M2,以此類推,即,h1至h10中任意兩條相鄰直線之間的間距均為M2。
      顯然,直線v1、v2、v3......v10分別平分了其所對應(yīng)的黑色模塊210或白色模塊211,而直線h1、h2、h3......h10也分別平分了其所對應(yīng)的黑色模塊210或白色模塊211。直線v1、v2、v3......v10與直線h1、h2、h3......h10的各交點即為數(shù)據(jù)區(qū)22中的黑色碼元220或白色碼元221的中心點,若中心點為黑色,則其對應(yīng)的比特值為1,反之為0。為了更加準確的判斷每個點的比特值,可以檢測每個中心點鄰域中黑白像素的個數(shù),若黑色像素個數(shù)大于閾值,則認為該點的比特值為1,反之為0,由此獲取數(shù)據(jù)區(qū)22的比特矩陣。
      在獲取數(shù)據(jù)區(qū)22的比特矩陣后,即完成了數(shù)據(jù)矩陣碼2的識別工作。后續(xù)按照ISO/IEC 16022∶2000標(biāo)準中的相關(guān)規(guī)則進行處理,即可得到最終的編碼信息,這些后續(xù)處理與本發(fā)明的發(fā)明目的無關(guān),在此不做贅述。
      以上描述實質(zhì)上揭示出了本發(fā)明所述的數(shù)據(jù)矩陣碼的識別過程中的幾個主要步驟,為了更系統(tǒng)、完整的描述本發(fā)明,以下再結(jié)合圖8中的流程圖,進一步說明本發(fā)明所述的數(shù)據(jù)矩陣碼識別方法應(yīng)用在整個識別過程中的詳細流程
      首先,在步驟81中對需要識別的對象進行取像,并得到圖像信息9,在步驟82中將圖像信息9進行二值化處理,得到數(shù)據(jù)矩陣碼2,在步驟83中運用輪廓跟蹤法搜尋數(shù)據(jù)矩陣碼2的輪廓,在步驟84中判斷輪廓搜尋是否成功,如果輪廓搜尋不成功,則可能是由于取像過程中的干擾和誤差較大,因此重新執(zhí)行步驟81,重新對需要識別的對象進行取像;如果輪廓搜尋成功,則執(zhí)行步驟85,搜尋“L”形特征邊20所在直線,如果搜尋“L”形特征邊20所在直線不成功,則可能是輪廓搜尋錯誤,因此重新執(zhí)行步驟83,再次搜尋數(shù)據(jù)矩陣碼2的輪廓;如果搜尋“L”形特征邊20所在直線成功,則執(zhí)行步驟87,確定特征邊20的邊長及校正模塊21所包含模塊(黑色模塊210和白色模塊211)的邊長M1和M2,在步驟88中判斷邊長M1和M2的長度差是否小于預(yù)定的閾值,如果大于或等于預(yù)定的閾值,則重新執(zhí)行步驟83,如果小于預(yù)定的閾值,則執(zhí)行步驟89,確定數(shù)據(jù)區(qū)22的碼元坐標(biāo)(包括黑色碼元220和白色碼元221)并提取比特矩陣,關(guān)于確定數(shù)據(jù)區(qū)22的碼元坐標(biāo)的確定方法,上述對圖6的描述中已經(jīng)詳細作了介紹,再次簡要說明如下作一組與垂直特征邊201平行的直線v1、v2、v3......v10,相鄰平行直線之間的間距為M1,且垂直特征邊201與其相鄰直線之間的間距為1.5M1;作另一組與水平特征邊202平行的直線h1、h2、h3......h10,相鄰平行直線之間的間距為M2,且水平特征邊201與其相鄰直線之間的間距為1.5M2。
      通過上述描述可知,本發(fā)明所述的數(shù)據(jù)矩陣碼的識別方法根據(jù)特征邊20的長度計算邊長M1和M2,然后直接作平行線得到比特矩陣,摒棄了現(xiàn)有技術(shù)中先確定校正模塊的中心點,再確定網(wǎng)格線交點的做法,減小了運算量;此外,本發(fā)明所述的數(shù)據(jù)矩陣碼的識別方法采用輪廓跟蹤法代替現(xiàn)有技術(shù)中的區(qū)域合并分裂法,也減小了運算量和存儲量,達到了高效、快速識別的目的,同時也降低了對數(shù)據(jù)矩陣碼進行識別的硬件要求。
      顯然,上述步驟中,步驟81和步驟82是進行矩陣識別前的準備工作,并不是本發(fā)明所述的數(shù)據(jù)矩陣碼的識別方法的必要步驟,而步驟84、步驟86與步驟88是為了更加準確地進行識別,避免可能出現(xiàn)的誤差,因此也不是本發(fā)明所述的數(shù)據(jù)矩陣碼的識別方法的必要步驟,基于上述考慮的微小改變以及等效變換均應(yīng)包含在本發(fā)明權(quán)利要求所保護的范圍之內(nèi)。
      權(quán)利要求
      1.數(shù)據(jù)矩陣碼的識別方法,所述數(shù)據(jù)矩陣碼包括“L”形特征邊、校正模塊以及數(shù)據(jù)區(qū),“L”形特征邊位于數(shù)據(jù)矩陣碼的兩個相鄰邊緣,包括垂直特征邊(201)和水平特征邊(202);校正模塊位于數(shù)據(jù)矩陣碼的另外兩個相鄰邊緣,其包括多個間隔排列的黑色模塊和白色模塊;數(shù)據(jù)區(qū)位于由特征邊和校正模塊圍成的矩形區(qū)域之內(nèi),其包含若干個黑色碼元和白色碼元,所述數(shù)據(jù)矩陣碼的識別方法包括以下步驟步驟一,使用輪廓跟蹤法搜尋數(shù)據(jù)矩陣碼的輪廓;步驟二,對輪廓上的點進行直線擬合,搜尋“L”形特征邊所在直線;步驟三,計算輪廓上的點到特征邊所在直線的距離,分別得到垂直特征邊(201)和水平特征邊(202)的長度,并通過垂直特征邊(201)和水平特征邊(202)的長度計算出識別模塊中單個模塊在垂直方向與水平方向的兩個平均邊長(M1、M2);步驟四,作一組與垂直特征邊(201)平行的直線,相鄰平行直線之間的間距為其中一個邊長(M1),且垂直特征邊(201)與其相鄰直線之間的間距為1.5倍此邊長(M1);作另一組與水平特征邊(202)平行的直線,相鄰平行直線之間的間距為另一個邊長(M2),且水平特征邊(201)與其相鄰直線之間的間距為1.5倍此邊長(M2);步驟五,根據(jù)兩組直線的交點確定黑色碼元和白色碼元的坐標(biāo),并提取比特矩陣。
      2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)矩陣碼的識別方法,其特征在于在進行步驟一之前,首先對需要識別的對象進行取像操作和二值化處理。
      3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)矩陣碼的識別方法,其特征在于在執(zhí)行完步驟一之后,判斷輪廓搜尋是否成功,如果輪廓搜尋不成功,則重新對需要識別的對象進行取像操作;如果輪廓搜尋成功,則執(zhí)行步驟二。
      4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)矩陣碼的識別方法,其特征在于在執(zhí)行步驟二之后,判斷搜尋“L”形特征邊所在直線是否成功,如果不成功,則重新執(zhí)行步驟一;如果搜尋“L”形特征邊所在直線成功,則執(zhí)行步驟三。
      5.根據(jù)權(quán)利要求1所述的數(shù)據(jù)矩陣碼的識別方法,其特征在于執(zhí)行所述步驟三之后,判斷兩個平均邊長(M1、M2)之間的長度差是否小于預(yù)定的閾值,如果大于或等于預(yù)定的閾值,則重新執(zhí)行步驟一,如果小于預(yù)定的閾值,則執(zhí)行步驟四。
      6.根據(jù)權(quán)利要求1至5中任一項所述的數(shù)據(jù)矩陣碼的識別方法,其特征在于所述步驟五包括檢測每個交點的鄰域中黑白像素個數(shù)的過程,若黑色像素個數(shù)大于閾值,則認為該點的比特值為1,反之為0。
      全文摘要
      數(shù)據(jù)矩陣碼的識別方法,包括使用輪廓跟蹤法搜尋數(shù)據(jù)矩陣碼的輪廓;搜尋“L”形特征邊所在直線;計算識別模塊中單個模塊在垂直方向與水平方向的兩個平均邊長;根據(jù)上述邊長作一組與垂直特征邊平行的相應(yīng)直線,作另一組與水平特征邊平行的直線;根據(jù)兩組直線的交點確定黑色碼元和白色碼元的坐標(biāo),并提取比特矩陣。本發(fā)明采用輪廓跟蹤法代替現(xiàn)有技術(shù)中的區(qū)域合并分裂法,同時通過計算特征邊的長度計算識別模塊中單個模塊的邊長,然后直接作平行線得到比特矩陣,摒棄了現(xiàn)有技術(shù)中先確定校正模塊的中心點,再確定網(wǎng)格線交點的做法,減小了運算量和存儲量,達到了高效、快速識別的目的,同時也降低了對數(shù)據(jù)矩陣碼進行識別的硬件要求。
      文檔編號G06K9/36GK101017527SQ200610035088
      公開日2007年8月15日 申請日期2006年4月18日 優(yōu)先權(quán)日2006年4月18日
      發(fā)明者陸勇, 方偉 申請人:珠海炬力集成電路設(shè)計有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1