国产精品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>

      一種DataMatrix二維碼的識(shí)別方法與流程

      文檔序號(hào):12305909閱讀:2580來(lái)源:國(guó)知局
      本發(fā)明屬于圖像處理與識(shí)別領(lǐng)域,涉及一種二維碼的定位識(shí)別方法,特別涉及一種datamatrix二維碼的識(shí)別方法。
      背景技術(shù)
      ::datamatrix二維碼(dm碼)是二維碼的主要成員之一,廣泛應(yīng)用于工業(yè)制造領(lǐng)域以及民用領(lǐng)域。dm碼由美國(guó)國(guó)際資料公司(idmatrix)發(fā)明,是一種矩陣式二維條碼,它是現(xiàn)有二維條碼中尺寸最小,密度最大,25mm2的面積可以編碼30個(gè)數(shù)字,尤其適合于小零件的標(biāo)識(shí)與直接印刷在實(shí)體上。dm碼廣泛使用于商品的防偽、統(tǒng)籌標(biāo)識(shí),雖然dm碼的標(biāo)準(zhǔn)已經(jīng)公開(kāi),但在國(guó)內(nèi)研究的并不多。目前國(guó)內(nèi)使用的dm碼識(shí)別底層算法主要還是從國(guó)外進(jìn)口,國(guó)外的產(chǎn)品識(shí)別率雖然高,但價(jià)格比較昂貴,且識(shí)別的原理沒(méi)有公開(kāi),因此有必要自主研發(fā)一種dm碼識(shí)別算法,以解決目前國(guó)內(nèi)dm碼識(shí)別依賴進(jìn)口的現(xiàn)狀,具有很高現(xiàn)實(shí)意義。在二維碼識(shí)別領(lǐng)域,條碼的定位與識(shí)別是難點(diǎn),也是重點(diǎn)。關(guān)于條碼的圖像處理與定位,國(guó)內(nèi)有些學(xué)者已經(jīng)做過(guò)一些有益的研究,有采用紋理特征區(qū)域篩選的,有直接采用霍夫直線檢測(cè)的,有采用神經(jīng)網(wǎng)絡(luò)方法的,他們有各自的適用范圍及優(yōu)缺點(diǎn)。目前國(guó)內(nèi)現(xiàn)有的dm碼識(shí)別技術(shù)的適用范圍受限,對(duì)于某些背景復(fù)雜,有噪聲的圖像,識(shí)別率不高,或者時(shí)間消耗較長(zhǎng),不能滿足實(shí)際應(yīng)用的實(shí)時(shí)性,特別在嵌入式dm碼識(shí)別的實(shí)時(shí)性要求。技術(shù)實(shí)現(xiàn)要素:本發(fā)明要解決的技術(shù)問(wèn)題在于,針對(duì)現(xiàn)有技術(shù)的上述缺陷,提出一種datamatrix二維碼的識(shí)別方法,圖像適應(yīng)能力較強(qiáng),識(shí)別率高,并且速度快。本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是:提供一種datamatrix二維碼的識(shí)別方法,包括:dm碼粗定位的步驟,其具體包括圖像邊緣計(jì)算處理、二值化處理、池化處理、濾波處理、連通域標(biāo)記處理以及候選圖案切割處理;dm碼精定位的步驟,其具體包括迭代法二值化處理、robert算子邊緣計(jì)算處理、霍夫直線檢測(cè)處理、“l(fā)”邊直線篩選處理、虛邊定位處理、虛邊標(biāo)志與模塊計(jì)算處理;以及dm碼識(shí)別的步驟,其具體包括網(wǎng)格數(shù)據(jù)獲取處理和數(shù)據(jù)解碼處理。其中,所述的圖像邊緣計(jì)算處理是采用自定義邊緣檢測(cè)算子對(duì)原圖像進(jìn)行邊緣檢測(cè),自定義邊緣檢測(cè)算子為:其中,還包括:對(duì)原圖進(jìn)行金字塔變換,取第二層圖像作為dm碼粗定位的圖像輸入。其中,所述的池化處理是采用n×n的矩形區(qū)域,其中有大于等于t個(gè)白點(diǎn),該區(qū)域池化為255,否則為0。其中,所述的圖像濾波處理是求取當(dāng)前點(diǎn)的八個(gè)鄰域,如果有其中一個(gè)點(diǎn)為255,且當(dāng)前點(diǎn)為255時(shí),則置該當(dāng)前點(diǎn)為255,否者為0。其中,所述的霍夫直線檢測(cè)處理的核心計(jì)算代碼為r=(x*costable[θ]+y*sintable[θ])>>n,即通過(guò)查表、整型乘法與移位操作實(shí)現(xiàn),其中,r為極徑,θ為極角,x,y為坐標(biāo)值。其中,所述的網(wǎng)格數(shù)據(jù)獲取處理采用了把定位到的x,y坐標(biāo)分別在其左右、上下偏移1~2個(gè)像素,共有設(shè)定9個(gè)標(biāo)志×標(biāo)志的網(wǎng)格數(shù)據(jù)陣列送入解碼模塊解碼,一旦某個(gè)陣列能解碼就輸出結(jié)果。其中,所述的網(wǎng)格數(shù)據(jù)獲取處理是獲取網(wǎng)格數(shù)據(jù)之前是對(duì)粗定位的圖像進(jìn)行迭代法二值化的;并且,把用迭代法求得的二值化閾值基礎(chǔ)上加與減一個(gè)數(shù)值,作為不能解碼的候選閾值;進(jìn)一步地,把自適應(yīng)二值化法二值化圖像,作為不能解碼的另一候選閾值。其中,還包括:在當(dāng)前識(shí)別不成功時(shí),更換候選區(qū)域進(jìn)行再次嘗試,直到成功解碼或已經(jīng)切割設(shè)定個(gè)數(shù)。其中,所述候選圖案切割處理是切割下一個(gè)近似正方形且邊緣信息豐富的最大連通域。本發(fā)明的有益效果在于,首先通過(guò)圖像邊緣計(jì)算、二值化、池化、濾波、連通域標(biāo)記與候選圖案切割等處理,完成dm碼的粗定位;接著,通過(guò)對(duì)切割的圖案進(jìn)行迭代法二值化、robert算子邊緣計(jì)算、霍夫直線檢測(cè)、“l(fā)”邊直線篩選、虛邊定位以及虛邊標(biāo)志與模塊計(jì)算等處理,完成dm碼的精定位;然后,通過(guò)對(duì)精定位的dm碼進(jìn)行網(wǎng)格數(shù)據(jù)獲取與數(shù)據(jù)解碼等處理,完成dm碼的識(shí)別,圖像適應(yīng)能力較強(qiáng),識(shí)別率高,并且速度快。附圖說(shuō)明下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明,附圖中:圖1是本發(fā)明實(shí)施例的主流程圖。圖2是本發(fā)明實(shí)施例經(jīng)過(guò)池化濾波后的樣圖。圖3是本發(fā)明實(shí)施例經(jīng)過(guò)霍夫直線檢測(cè)后的樣圖。具體實(shí)施方式現(xiàn)結(jié)合附圖,對(duì)本發(fā)明的較佳實(shí)施例作詳細(xì)說(shuō)明。參見(jiàn)圖1,圖1是本發(fā)明實(shí)施例的主流程圖。本發(fā)明提出本發(fā)明一種datamatrix二維碼的識(shí)別方法,包括s1、s2、s3、s4四大步驟。其中,步驟s1是對(duì)dm碼進(jìn)行粗定位,具體包括:對(duì)獲取的圖像進(jìn)行自定義邊緣檢測(cè),然后采用自動(dòng)閾值二值化、圖像池化、圖像濾波、圖像連通域的計(jì)算、找到近似正方形且邊緣信息豐富的最大連通域,接著找到該連通域的上下左右四個(gè)頂點(diǎn),然后根據(jù)四個(gè)頂點(diǎn),把該矩形圖像從原圖中切割出來(lái)。步驟s2是對(duì)dm碼進(jìn)行精定位,具體包括:迭代法二值化粗定位圖像、robert算子邊緣檢測(cè)、霍夫直線檢測(cè)、l邊直線篩選、虛邊定位、符號(hào)(symbol)與模塊(module)計(jì)算、dm碼四個(gè)頂點(diǎn)坐標(biāo)計(jì)算。步驟s3是對(duì)dm碼進(jìn)行識(shí)別,具體包括:根據(jù)dm碼精定位的結(jié)果對(duì)它進(jìn)行網(wǎng)格數(shù)據(jù)獲取,然后把網(wǎng)格數(shù)據(jù)送入dm碼解碼模塊解碼。步驟s4是在當(dāng)前識(shí)別不成功時(shí),更換候選區(qū)域進(jìn)行再次嘗試,具體包括:如果解碼未成功,就切割下一個(gè)近似正方形且邊緣信息豐富的最大連通域(具體地,先求得連通域矩陣的直方圖,即得到最大的連通域到最小的連通域所有連通域數(shù)值表,然后根據(jù)連通域直方圖從大到小依次選擇候選連通域),再進(jìn)行精確定位,獲取dm碼網(wǎng)格數(shù)據(jù),把數(shù)據(jù)送入dm碼解碼模塊,直到成功解碼或已經(jīng)切割設(shè)定個(gè)數(shù)(例如:三個(gè),具體數(shù)量,根據(jù)實(shí)際應(yīng)用環(huán)境選擇)以上滿足條件的連通域才終止算法。在本實(shí)施例中,步驟s1具體包括以下六個(gè)子步驟。步驟s11、自定義邊緣算子計(jì)算圖像邊緣;也即,采用自定義邊緣檢測(cè)算子對(duì)原圖像進(jìn)行邊緣檢測(cè),其中,自定義邊緣檢測(cè)算子如下所示:用g1,g2算子分別對(duì)原圖像進(jìn)行計(jì)算,且一并計(jì)算邊緣檢測(cè)后的直方圖。值得一提的是,如果原始圖像分辨率較大時(shí)(該參數(shù)可以讀圖像文件獲取或直接作為參數(shù)輸入),可以對(duì)原圖進(jìn)行金字塔變換,取第二層圖像作為dm碼粗定位的圖像輸入,以加快粗定位速度。步驟s12、二值化閾值求取與二值化;也即,通過(guò)步驟s11獲得的直方圖,求取經(jīng)過(guò)邊緣檢測(cè)后圖像的二值化閾值,根據(jù)二值化閾值二值化經(jīng)過(guò)步驟s11處理的邊緣圖像。步驟s13、閾值法圖像池化;也即,對(duì)步驟s12處理后的圖像進(jìn)行池化。具體地,是采用n×n的矩形區(qū)域,其中有大于等于t個(gè)白點(diǎn),該區(qū)域池化為255,否則為0??梢岳斫獾氖?,采用n×n的矩形作為圖像池化尺寸,并選取t作為池化閾值,該參數(shù)對(duì)正常應(yīng)用的二維碼圖像具有較強(qiáng)的適應(yīng)性,池化后不僅能夠把dm碼中間空心的部分變成實(shí)心,還能大大加快粗定位速度。步驟s14、圖像濾波;也即,對(duì)步驟s13處理過(guò)后的圖像進(jìn)行濾波,消除孤立白點(diǎn)。具體地,是求取當(dāng)前點(diǎn)的八個(gè)鄰域,如果有其中一個(gè)點(diǎn)為255,且當(dāng)前點(diǎn)為255時(shí),則置該當(dāng)前點(diǎn)為255,否者為0,圖2示意出的一個(gè)經(jīng)過(guò)池化濾波后的樣圖,圖中最里層最大白色連通塊對(duì)應(yīng)于二維碼區(qū)域。步驟s15、圖像連通域標(biāo)記;也即,對(duì)步驟s14處理后的圖像進(jìn)行連通域標(biāo)注,把連通域的標(biāo)號(hào)放到一個(gè)標(biāo)記矩陣中。具體地,連通域標(biāo)注的具體步驟如下:e1)初始化一個(gè)標(biāo)記矩陣a,一個(gè)隊(duì)列q及標(biāo)記計(jì)數(shù)器n;e2)從左至右,從上至下順序掃描待標(biāo)記圖像,當(dāng)掃描到一個(gè)未標(biāo)記的前景像素p時(shí),n加1,在a中標(biāo)記為p,接著掃描p的八個(gè)鄰域,若存在未被標(biāo)記的前景像素,則在a中標(biāo)記,并放入隊(duì)列q中,作為區(qū)域生長(zhǎng)的種子;e3)當(dāng)隊(duì)列q不為空時(shí),從隊(duì)列中取出一個(gè)生長(zhǎng)種子s,掃描s的八個(gè)鄰域點(diǎn),若有未標(biāo)記的前景像素,則在a中標(biāo)記,并入隊(duì)列q;e4)檢測(cè)隊(duì)列q是否為空,非空轉(zhuǎn)移到步驟e3,否者轉(zhuǎn)移到步驟e5;e5)檢測(cè)待標(biāo)記圖像是否掃描完畢,如果未掃描完成,轉(zhuǎn)移到步驟e2,否則結(jié)束連通域標(biāo)記。步驟s16、檢測(cè)出近似正方形且邊緣信息豐富的連通域;也即,根據(jù)步驟s15處理后的連通域矩陣,找出其中上下左右四個(gè)邊界組成的矩形近似正方形、且內(nèi)部邊緣信息很豐富的最大連通域圖像塊。在本實(shí)施例中,步驟s2具體包括以下九個(gè)子步驟。步驟s21、從原圖中切割候選區(qū)域圖像;也即,根據(jù)步驟s16獲取到的四個(gè)邊界坐標(biāo),在原圖中切割該圖像塊。步驟s22、迭代法二值化切割圖像;也即,對(duì)步驟s21獲取的圖像塊,采用迭代法二值化。步驟s23、robert邊緣算子邊緣計(jì)算;也即,采用robert算子處理步驟s22處理后的圖像,具體地,robert算子如下所示:與求取|g(x,y)|=max(|f(x,y)-f(x+1,y+1)|,|f(x+1,y)-f(x,y+1|)做為結(jié)果。步驟s24、霍夫直線檢測(cè);也即,霍夫直線檢測(cè)經(jīng)過(guò)步驟s23處理后的圖像,圖3示意出dm碼經(jīng)過(guò)霍夫直線檢測(cè)記錄下來(lái)的10條直線樣圖,霍夫直線檢測(cè)的具體步驟如下:j1)對(duì)二值圖像進(jìn)行霍夫變換;j2)求出變換域中最大的點(diǎn)并記錄它們的極徑r與極角θ;j3)把滿足變換域中等于r與θ及其附近對(duì)應(yīng)的直角坐標(biāo)點(diǎn)記錄下來(lái),直線記錄數(shù)量num加1;j4)將其變換域中等于r與θ及其附近的點(diǎn)清0;j5)如果num小于k,則表示還未記錄滿k條直線坐標(biāo),轉(zhuǎn)移到步驟j2,否者結(jié)束。值得一提的是,在本實(shí)施例中,霍夫直線變換核心計(jì)算代碼:r=x*cosθ+y*sinθ不是采用浮點(diǎn)數(shù)乘法,而是分別把cosθ與sinθ乘以2n取整后做成查找表,代碼變?yōu)閞=(x*costable[θ]+y*sintable[θ])>>n,所以核心計(jì)算公式由浮點(diǎn)數(shù)乘法變成整型乘法與移位操作,算法速度大大加快。步驟s25、“l(fā)”邊候選直線篩選;也即,初步篩選l邊直線及計(jì)算l邊直線斜率k與截距b,具體地,對(duì)k條直線進(jìn)行篩選,其篩選條件如下:k1)檢測(cè)這k條直線連續(xù)長(zhǎng)度是否大于40(單位:像素距離)以上;k2)檢測(cè)這k條直線兩兩直線相減的角度絕對(duì)值是否在90°附近(例如:85°~95°)與270°附近(例如:265°~275°);k3)檢測(cè)出這k條直線兩兩相交的交點(diǎn),其交點(diǎn)是否離直線的起點(diǎn)或終點(diǎn)比較近(例如:兩兩相交的交點(diǎn)坐標(biāo),離直線的起點(diǎn)或終點(diǎn)坐標(biāo)只差十幾個(gè)像素距離);步驟s26、兩條實(shí)邊三個(gè)頂點(diǎn)坐標(biāo)定位;也即,綜合上述三個(gè)篩選條件,初步篩選出“l(fā)”邊直線,從篩選的“l(fā)”邊抽取其線上的點(diǎn),采用最小二乘法進(jìn)行直線擬合,求出直線斜率k與截距b。步驟s27、兩條虛邊定位;也即,定位dm碼虛邊坐標(biāo)。步驟s28、計(jì)算dm碼虛邊symbol與module。步驟s29、根據(jù)兩實(shí)邊兩虛邊計(jì)算四個(gè)頂點(diǎn)。在本實(shí)施例中,步驟s3具體包括以下兩個(gè)子步驟。步驟s31、二維碼網(wǎng)格數(shù)據(jù)獲??;也即,計(jì)算dm碼的四個(gè)頂點(diǎn)坐標(biāo)及l(fā)邊直線方程、步驟s29計(jì)算得到的symbol與module,獲取dm碼網(wǎng)格數(shù)據(jù),其具體步驟如下所述:m1)找到“l(fā)”邊的三個(gè)頂點(diǎn);m2)確定三個(gè)頂點(diǎn)的方位,按dm碼的“l(fā)”邊在左下方為基準(zhǔn)進(jìn)行網(wǎng)格數(shù)據(jù)劃分與獲取;m3)把定位到的“l(fā)”邊的頂點(diǎn)及其它坐標(biāo)分別在其左右、上下偏移一個(gè)約數(shù)值為1.0到2.0值(算法坐標(biāo)計(jì)算是浮點(diǎn)數(shù),取圖像數(shù)據(jù)時(shí)會(huì)插值取整計(jì)算),進(jìn)行網(wǎng)格數(shù)據(jù)獲取,所以本實(shí)施例,共獲取9個(gè)symbol×symbol的網(wǎng)格數(shù)據(jù)。值得一提的是,由于圖像的光照原因或圖像本身質(zhì)量不是太理想,dm碼精定位可能存在誤差,為了使得到的網(wǎng)格數(shù)據(jù)能正確解碼,本發(fā)明采用了把定位到的x,y坐標(biāo)分別在其左右、上下偏移1~2個(gè)像素,所以本發(fā)明共有9個(gè)symbol×symbol的網(wǎng)格數(shù)據(jù)陣列送入解碼模塊解碼,一旦某個(gè)陣列能解碼就輸出結(jié)果。值得一提的是,在具體實(shí)施獲取網(wǎng)格數(shù)據(jù)之前,獲取網(wǎng)格數(shù)據(jù)之前是對(duì)粗定位的圖像進(jìn)行迭代法二值化的,二值化閾值的選取受圖像光照、對(duì)比度的影響,可能采用迭代法或其他閾值選取方法,二值化效果不是最佳,所以在本實(shí)施例中,把用迭代法求得的二值化閾值基礎(chǔ)上加與減一個(gè)數(shù)值,作為不能解碼的候選閾值。為了進(jìn)一步減少光照對(duì)二值化的影響,在本實(shí)施例中,還采用了自適應(yīng)二值化法二值化圖像,作為不能解碼的另一候選閾值。這種的采用迭代法、迭代法基礎(chǔ)上加減某一數(shù)值、自適應(yīng)二值化方法共四次二值化目標(biāo)圖像,能夠減少由于二值化閾值不是最優(yōu)而不能解碼的幾率,提高dm碼的識(shí)別性能。步驟s32、datamatrix二維碼解碼;也即,根據(jù)步驟s31獲得的網(wǎng)格數(shù)據(jù)送入dm碼解碼模塊進(jìn)行解碼。在本實(shí)施例中,步驟s4是對(duì)是否成功解碼或已經(jīng)切割三個(gè)以上進(jìn)行判斷,是的話,就結(jié)束算法,否則轉(zhuǎn)到步驟s2中的起始子步驟s21處。在一個(gè)具體實(shí)施中,是將實(shí)現(xiàn)上述方法的代碼,移植到嵌入式處理器dspc66xx平臺(tái),測(cè)試200萬(wàn)像素圖像。經(jīng)實(shí)驗(yàn)測(cè)試,在圖像背景較復(fù)雜時(shí),算法最長(zhǎng)耗時(shí)約233毫秒,能夠滿足工業(yè)、民用等領(lǐng)域dm碼實(shí)時(shí)性識(shí)讀要求。綜上,本發(fā)明的datamatrix二維碼的識(shí)別方法,首先,通過(guò)圖像邊緣計(jì)算、二值化、池化、濾波、連通域標(biāo)記與候選圖案切割等處理,完成dm碼的粗定位;接著,通過(guò)對(duì)切割的圖案進(jìn)行迭代法二值化、robert算子邊緣計(jì)算、霍夫直線檢測(cè)、“l(fā)”邊直線篩選、虛邊定位以及虛邊標(biāo)志與模塊計(jì)算等處理,完成dm碼的精定位;然后,通過(guò)對(duì)精定位的dm碼進(jìn)行網(wǎng)格數(shù)據(jù)獲取與數(shù)據(jù)解碼等處理,完成dm碼的識(shí)別,圖像適應(yīng)能力較強(qiáng),識(shí)別率高,并且速度快。另外,借助精心設(shè)計(jì)的圖像池化、多個(gè)粗定位候選區(qū)域切割、精確定位誤差消除與基于多閾值二值網(wǎng)格數(shù)據(jù)的獲取,有利于改善識(shí)別率與速度性能,很好地適用于工業(yè)制造機(jī)器視覺(jué)、民用等領(lǐng)域應(yīng)用。應(yīng)當(dāng)理解的是,以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制,對(duì)本領(lǐng)域技術(shù)人員來(lái)說(shuō),可以對(duì)上述實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改和替換,都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護(hù)范圍。當(dāng)前第1頁(yè)12當(dāng)前第1頁(yè)12
      當(dāng)前第1頁(yè)1 2 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1