本發(fā)明涉及一種DM碼定位及識(shí)別的方法與系統(tǒng),屬于數(shù)字圖像處理與編碼、譯碼領(lǐng)域。
背景技術(shù):
:DirectPartMarking(直接零件標(biāo)識(shí),以下簡(jiǎn)稱DPM)方法可在產(chǎn)品上記錄永久性的標(biāo)識(shí)。在工業(yè)領(lǐng)域,通常利用DPM方法將一維條碼或二維條碼標(biāo)記在產(chǎn)品表面,并通過(guò)圖像定位、識(shí)別技術(shù)與編、解碼技術(shù)以提取條碼信息,用于在生產(chǎn)環(huán)節(jié)中實(shí)現(xiàn)產(chǎn)品的生產(chǎn)追蹤、裝配管理、生命周期維護(hù)等,進(jìn)一步實(shí)現(xiàn)動(dòng)態(tài)編號(hào)管理、裝配排序、產(chǎn)品統(tǒng)計(jì)等功能。另外,這些技術(shù)的結(jié)合還能在產(chǎn)品的返修和維護(hù)過(guò)程中充當(dāng)串號(hào)讀取、維修記錄追溯等重要角色,大大加速產(chǎn)品的生產(chǎn)、流通、管理以及維護(hù)的效率。DataMatrix(以下簡(jiǎn)稱DM碼)是二維矩陣圖像,由探測(cè)圖形和數(shù)據(jù)區(qū)組成。其中探測(cè)圖形是一個(gè)模塊的寬度,是數(shù)據(jù)區(qū)的邊界,其中全部由深色模塊組成的兩條鄰邊構(gòu)成了“L”形實(shí)線的兩條查找模式邊,“L”對(duì)面由交替的深淺模塊組成的鄰邊構(gòu)成了兩條切換模式邊。探測(cè)圖形主要用于限定符號(hào)的單元結(jié)構(gòu),也可用于確定符號(hào)的物理尺寸,以及解決符號(hào)定位和失真等問(wèn)題。數(shù)據(jù)區(qū)是由多個(gè)正方形深淺模塊所組成的正方形區(qū)域,信息儲(chǔ)存方式是深淺模塊的不同排列組合,以二進(jìn)制碼方式來(lái)編碼數(shù)據(jù),因此計(jì)算機(jī)可直接讀取。DM碼是目前所有條碼中尺寸最小的,容易標(biāo)記在細(xì)小零件上,特別適用于小零件的標(biāo)記與識(shí)別,進(jìn)一步便于產(chǎn)品的工業(yè)串號(hào)管理和產(chǎn)品追蹤等。此外,DM碼用于定位和搜尋的查找模式邊在直線檢測(cè)操作中較為容易被檢測(cè),故DM碼被廣泛應(yīng)用于DPM方法中的工業(yè)產(chǎn)品直接部件標(biāo)示。但這類應(yīng)用通過(guò)化學(xué)或物理碰撞方法在工業(yè)產(chǎn)品表面直接生成,因此與常規(guī)印刷二維碼不同,工業(yè)DM碼的定位和識(shí)別存在以下難題:(1)工業(yè)DM碼通常直接印刷在工件表面,如金屬、塑料、玻璃等,然后通過(guò)光學(xué)手段讀取印刷在此類表面上的DM碼,但由于光照、角度等原因,容易使畫面局部過(guò)曝或欠曝,使DM碼無(wú)法正常讀?。?2)工業(yè)DM碼貫穿產(chǎn)品的整個(gè)生命周期,在經(jīng)過(guò)長(zhǎng)時(shí)間的工作和使用后,標(biāo)記在產(chǎn)品表面的DM碼會(huì)產(chǎn)生磨損、殘缺、劃痕等物理缺陷,這些關(guān)鍵部位的缺陷將直接導(dǎo)致無(wú)法有效定位DM碼區(qū)域以及DM碼讀取失敗。發(fā)明專利CN201010564851.0改進(jìn)了傳統(tǒng)的霍夫變換,利用加鄰域模板遍歷霍夫域,對(duì)于檢測(cè)鋸齒狀的DM碼邊緣能取得很好的效果。并且其使用所有的網(wǎng)格劃分方式來(lái)對(duì)實(shí)際的DM碼進(jìn)行一一匹配,以匹配度最大的網(wǎng)格劃分方式作為DM碼實(shí)際的網(wǎng)格劃分方式。然而,由于上述的DM碼缺陷可知,DM碼根據(jù)受損程序不同,還可能出現(xiàn)DM碼探測(cè)圖形和數(shù)據(jù)區(qū)中某些模塊的缺失,從而導(dǎo)致DM碼探測(cè)圖形的定位錯(cuò)誤以及在對(duì)DM碼進(jìn)行網(wǎng)格劃分時(shí)數(shù)據(jù)塊的單位長(zhǎng)度出現(xiàn)錯(cuò)誤。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺陷,提供一種DM碼定位及識(shí)別的方法與系統(tǒng)。為了實(shí)現(xiàn)上述目的,本發(fā)明采用以下的技術(shù)方案:根據(jù)本發(fā)明的第一方面,提供一種DM碼定位及識(shí)別的方法,包括如下步驟:S1、獲取原圖像的二值化圖像;S2、從二值化圖像中提取包含DM碼的有效區(qū)域;S3、對(duì)有效區(qū)域進(jìn)行單邊緣提取,得到DM碼的置信單邊緣圖像;S4、通過(guò)置信單邊緣圖像得到有效單邊緣圖像,并對(duì)有效單邊緣圖像進(jìn)行霍夫變換,在霍夫變換域的參數(shù)空間里尋找到第一條查找模式邊所對(duì)應(yīng)的響應(yīng)點(diǎn)后建立角度屏蔽區(qū),尋找到角度屏蔽區(qū)之外的第二條查找模式邊所對(duì)應(yīng)的響應(yīng)點(diǎn),進(jìn)而定位DM碼的兩條查找模式邊,并獲取DM碼第一、第二條查找模式邊端點(diǎn)處的三個(gè)定位點(diǎn);S5、通過(guò)旋轉(zhuǎn)帶方向的像素累加器獲取DM碼的兩條切換模式邊,并求解這兩條切換模式邊交點(diǎn)處的第四個(gè)定位點(diǎn);S6、根據(jù)DM碼的四個(gè)定位點(diǎn),對(duì)DM碼進(jìn)行反透視變換,還原得到標(biāo)準(zhǔn)DM碼圖像,并對(duì)標(biāo)準(zhǔn)DM碼圖像進(jìn)行網(wǎng)格劃分;S7、對(duì)網(wǎng)格劃分后的DM碼進(jìn)行碼字提取,還原碼字信息。進(jìn)一步,優(yōu)選地,步驟S2可使用基于“核”查找器的區(qū)域生長(zhǎng)法從二值化圖像中提取包含DM碼的有效區(qū)域,所述基于“核”查找器的區(qū)域生長(zhǎng)法僅對(duì)角點(diǎn)信息響應(yīng),并設(shè)置為包括如下步驟:S21、提取二值化圖像的角點(diǎn);S22、定位角點(diǎn)的最大響應(yīng)區(qū)域,所述最大響應(yīng)區(qū)域?yàn)檎叫危⑶掖瞬襟E中的最大響應(yīng)區(qū)域?yàn)镈M碼的有效區(qū)域的一部分;S23、最大響應(yīng)區(qū)域的各條邊分別朝著背離最大響應(yīng)區(qū)域的方向以生長(zhǎng)半徑為步長(zhǎng)獨(dú)立繪制對(duì)應(yīng)邊的矩形,所述生長(zhǎng)半徑的值大于等于5個(gè)像素長(zhǎng)度且小于等于50個(gè)像素長(zhǎng)度;S24、設(shè)定第一閾值,若某一個(gè)或幾個(gè)矩形范圍內(nèi)包含的角點(diǎn)數(shù)量大于第一閾值,則將對(duì)應(yīng)的矩形作為DM碼的有效區(qū)域的一部分后更新最大響應(yīng)區(qū)域的邊長(zhǎng),并繼續(xù)沿對(duì)應(yīng)方向以生長(zhǎng)半徑為步長(zhǎng)獨(dú)立繪制對(duì)應(yīng)邊的矩形,否則終止對(duì)應(yīng)方向有效區(qū)域的生長(zhǎng),所述第一閾值的大小為大于等于10且小于等于100。進(jìn)一步,優(yōu)選地,步驟S2可使用行統(tǒng)計(jì)法從二值化圖像中提取包含DM碼的有效區(qū)域,所述行統(tǒng)計(jì)法僅對(duì)角點(diǎn)信息響應(yīng),并設(shè)置為包括如下步驟:S21、提取二值化圖像的角點(diǎn);S22、對(duì)二值化圖像進(jìn)行區(qū)域劃分,不同區(qū)域的大小相同所述區(qū)域的邊長(zhǎng)長(zhǎng)度為大于等于8個(gè)像素且小于等于32個(gè)像素長(zhǎng)度;S23、統(tǒng)計(jì)每個(gè)區(qū)域內(nèi)的角點(diǎn)數(shù)量,以角點(diǎn)最密集的區(qū)域作為起點(diǎn)區(qū)域,并設(shè)定第二閾值,此步驟中起點(diǎn)區(qū)域?yàn)镈M碼的有效區(qū)域的一部分,所述第二閾值的大小為大于等于10且小于等于100;S24、將起點(diǎn)區(qū)域所在行作為搜索行,在起點(diǎn)區(qū)域的左、右方向上獨(dú)立進(jìn)行搜索,若鄰接區(qū)域的角點(diǎn)數(shù)量大于第二閾值,則將相應(yīng)的鄰接區(qū)域作為DM碼的有效區(qū)域的一部分,并繼續(xù)沿對(duì)應(yīng)方向搜索判斷,否則終止對(duì)應(yīng)方向有效區(qū)域的搜索;S25、將搜索行不斷上移一行,并將上一搜索行中有效區(qū)域的兩個(gè)端點(diǎn)區(qū)域與一個(gè)中點(diǎn)區(qū)域獨(dú)立作為新的起點(diǎn)區(qū)域,重復(fù)步驟S24,直到新的起點(diǎn)區(qū)域的角點(diǎn)數(shù)量均小于第二閾值;S26、將步驟S24中搜索行不斷下移一行,并將上一搜索行中有效區(qū)域的兩個(gè)端點(diǎn)區(qū)域與一個(gè)中點(diǎn)區(qū)域獨(dú)立作為新的起點(diǎn)區(qū)域,重復(fù)步驟S24,直到新的起點(diǎn)區(qū)域的角點(diǎn)數(shù)量均小于第二閾值。進(jìn)一步,優(yōu)選地,步驟S2可使用坐標(biāo)投影法從二值化圖像中提取包含DM碼的有效區(qū)域,所述坐標(biāo)投影法僅對(duì)角點(diǎn)信息響應(yīng),并設(shè)置為包括如下步驟:S21、提取二值化圖像的角點(diǎn);S22、統(tǒng)計(jì)所有角點(diǎn)對(duì)應(yīng)的橫、縱坐標(biāo)值;S23、設(shè)定一個(gè)第三閾值,并對(duì)所有的坐標(biāo)值進(jìn)行一維膨脹操作,當(dāng)最大連通域的長(zhǎng)度大于其它連通域長(zhǎng)度的第三閾值倍時(shí)停止膨脹操作;S24、對(duì)所有膨脹后的橫、縱坐標(biāo)值的重疊區(qū)域進(jìn)行提取,得到DM碼的有效區(qū)域。進(jìn)一步,優(yōu)選地,在步驟S2之后,可以對(duì)DM碼的有效區(qū)域進(jìn)行濾波預(yù)處理,以濾出噪聲。進(jìn)一步,優(yōu)選地,步驟S3可使用canny邊緣檢測(cè)算子對(duì)有效區(qū)域進(jìn)行單邊緣提取,得到DM碼的置信單邊緣圖像。進(jìn)一步,步驟S4包括如下步驟:S41、獲取DM碼有效區(qū)域的寬度和高度,若寬度與高度的比值基本滿足正方形條件,則對(duì)置信單邊緣圖像進(jìn)行挖空操作,以排除DM碼中遠(yuǎn)離探測(cè)圖形的數(shù)據(jù)區(qū),否則不進(jìn)行挖空操作,最終得到有效單邊緣圖像;S42、對(duì)有效單邊緣圖像進(jìn)行霍夫變換,得到霍夫變換域的參數(shù)空間;S43、對(duì)霍夫變換域的參數(shù)空間進(jìn)行最大值檢測(cè),獲取最大響應(yīng)點(diǎn)對(duì)應(yīng)的中心像素值,中心像素值所對(duì)應(yīng)的參數(shù)即為第一條查找模式邊的直線參數(shù);S44、在霍夫變換域的參數(shù)空間建立角度屏蔽區(qū);S45、在角度屏蔽區(qū)之外對(duì)霍夫變換域的參數(shù)空間進(jìn)行最大值檢測(cè),獲取最大響應(yīng)點(diǎn)對(duì)應(yīng)的中心像素值,中心像素值所對(duì)應(yīng)的參數(shù)即為第二條查找模式邊的直線參數(shù);S46、獲取DM碼第一、第二條查找模式邊端點(diǎn)處的三個(gè)定位點(diǎn),所述三個(gè)定位點(diǎn)包括第一、第二條查找模式邊的交點(diǎn)與第一、第二條查找模式邊的另外兩個(gè)端點(diǎn)。進(jìn)一步,優(yōu)選地,步驟S43和/或步驟S45中對(duì)霍夫變換域的參數(shù)空間進(jìn)行最大值檢測(cè)時(shí),可使用霍夫變換投票查找方法,其設(shè)置為:首先,搜尋霍夫變換域的參數(shù)空間,并通過(guò)模板對(duì)參數(shù)空間進(jìn)行加權(quán),獲取最大響應(yīng)點(diǎn)對(duì)應(yīng)的中心像素值坐標(biāo);其次,以該坐標(biāo)為中心,建立參數(shù)空間距離方向的搜索區(qū),所述搜索區(qū)半徑為r,所述半徑r的值為3°~10°;再次,在搜索區(qū)內(nèi)檢索M-1個(gè)次大響應(yīng)點(diǎn)并記錄其坐標(biāo);再次,在有效單邊緣圖像中搜索獲取的M個(gè)響應(yīng)點(diǎn)所對(duì)應(yīng)的直線,并計(jì)算這M條直線上分別包含的邊緣像素?cái)?shù)量,所述M的值為大于等于5且小于等于10;最后,選取包含邊緣像素?cái)?shù)量最多的直線作為查找模式邊所在的直線,并以此直線所定義的參數(shù)作為最大響應(yīng)點(diǎn)的參數(shù)。進(jìn)一步,步驟S5包括如下步驟:S51、使用旋轉(zhuǎn)帶方向的像素累加器尋找到第一條切換模式邊,所述旋轉(zhuǎn)帶方向的像素累加器設(shè)置為以第一條查找模式邊的端點(diǎn)為頂點(diǎn),以具有固定半徑的第一旋轉(zhuǎn)線段從第一條查找模式邊開(kāi)始繞著頂點(diǎn)在有效區(qū)域旋轉(zhuǎn),當(dāng)?shù)谝恍D(zhuǎn)線段上各像素點(diǎn)的累加值為0時(shí),此時(shí)的第一旋轉(zhuǎn)線段為第一條切換模式邊的外邊緣的一部分或部分重合,所述固定半徑為第一/第二切換模式邊長(zhǎng)度的一半;S52、使用旋轉(zhuǎn)帶方向的像素累加器尋找到第二條切換模式邊,所述旋轉(zhuǎn)帶方向的像素累加器設(shè)置為以第二條查找模式邊的端點(diǎn)為頂點(diǎn),以具有固定半徑的第二旋轉(zhuǎn)線段從第二條查找模式邊開(kāi)始繞著頂點(diǎn)在有效區(qū)域旋轉(zhuǎn),當(dāng)?shù)诙D(zhuǎn)線段上各像素點(diǎn)的累加值為0時(shí),此時(shí)的第二旋轉(zhuǎn)線段為第二條切換模式邊的外邊緣的一部分或部分重合;S53、將第一旋轉(zhuǎn)線段與第二旋轉(zhuǎn)線段的交點(diǎn)或延長(zhǎng)線的交點(diǎn)作為DM碼的第四個(gè)定位點(diǎn)。進(jìn)一步,步驟S6包括如下步驟:S61、根據(jù)DM碼的四個(gè)定位點(diǎn),對(duì)DM碼進(jìn)行反透視變換,還原得到標(biāo)準(zhǔn)DM碼圖像;S62、通過(guò)標(biāo)準(zhǔn)DM碼圖像的切換模式邊,得到標(biāo)準(zhǔn)DM碼圖像的穩(wěn)定分段長(zhǎng)度;S63、根據(jù)分段長(zhǎng)度,對(duì)標(biāo)準(zhǔn)DM碼圖像進(jìn)行網(wǎng)格劃分。進(jìn)一步,步驟S62包括如下步驟:S621、以第一條切換模式邊的外邊緣所在直線為初始搜索線;S622、記錄像素值從0到1或從1到0的切換次數(shù),且引入一個(gè)延遲計(jì)數(shù)器用于記錄相同像素值的個(gè)數(shù),并定義一個(gè)待寫入?yún)^(qū)flag,若像素值發(fā)生變化則將flag置高位,且延遲記錄器記錄的相同像素值的個(gè)數(shù)大于第四閾值時(shí),則此時(shí)已經(jīng)滿足切換條件,記錄分段坐標(biāo),所述第四閾值為記錄器中出現(xiàn)相同像素值的個(gè)數(shù)為最大時(shí)的長(zhǎng)度;S623、以固定的像素?cái)?shù)量為步長(zhǎng)不斷平行移動(dòng)搜索線,方向?yàn)槌阉骶€對(duì)面的查找模式邊,重復(fù)步驟S622獲取并記錄n次模塊切換次數(shù),其中n等于搜索邊平行移動(dòng)的次數(shù);S624、在平行移動(dòng)次數(shù)n大于或等于采樣次數(shù)N時(shí),比較記錄的n次模塊切換次數(shù),若n個(gè)模塊切換次數(shù)均相同,認(rèn)為模塊切換次數(shù)已經(jīng)穩(wěn)定,否則替換較早的模塊切換次數(shù),以當(dāng)前搜索線為初始位置,重復(fù)上述步驟,得到第一條切換模式邊上所有數(shù)據(jù)區(qū)的切換次數(shù),即所有黑白模塊的數(shù)量;S625、根據(jù)步驟S624中得到的模塊切換次數(shù),記錄模塊發(fā)生切換的中點(diǎn),進(jìn)而得到標(biāo)準(zhǔn)DM碼圖像平行于第一條切換模式邊的所有數(shù)據(jù)區(qū)的穩(wěn)定分段長(zhǎng)度;S626、以第二條切換模式邊的外邊緣所在直線為初始搜索線,重復(fù)上述步驟,標(biāo)準(zhǔn)DM碼圖像平行于第二條切換模式邊的所有數(shù)據(jù)區(qū)的穩(wěn)定分段長(zhǎng)度。進(jìn)一步,優(yōu)選地,步驟S625和/或步驟S626中得到標(biāo)準(zhǔn)DM碼圖像的穩(wěn)定分段長(zhǎng)度,可通過(guò)對(duì)模塊切換坐標(biāo)位置的對(duì)應(yīng)長(zhǎng)度進(jìn)行頻率統(tǒng)計(jì),將出現(xiàn)頻率最高的長(zhǎng)度作為分段長(zhǎng)度。根據(jù)本發(fā)明的第二方面,提供一種DM碼定位及識(shí)別的系統(tǒng),包括:第一模塊,設(shè)置為獲取原圖像的二值化圖像;第二模塊,設(shè)置為從二值化圖像中提取包含DM碼的有效區(qū)域;第三模塊,設(shè)置為對(duì)有效區(qū)域進(jìn)行單邊緣提取,得到DM碼的置信單邊緣圖像;第四模塊,設(shè)置為通過(guò)置信單邊緣圖像得到有效邊緣圖像,并對(duì)有效單邊緣圖像進(jìn)行霍夫變換,在霍夫變換域的參數(shù)空間里尋找到第一條查找模式邊所對(duì)應(yīng)的響應(yīng)點(diǎn)后建立角度屏蔽區(qū),尋找到角度屏蔽區(qū)之外的第二條查找模式邊所對(duì)應(yīng)的響應(yīng)點(diǎn),進(jìn)而定位DM碼的兩條查找模式邊,并獲取DM碼第一、第二條查找模式邊端點(diǎn)處的三個(gè)定位點(diǎn);第五模塊,設(shè)置為通過(guò)旋轉(zhuǎn)帶方向的像素累加器獲取DM碼的兩條切換模式邊,并求解這兩條切換模式邊交點(diǎn)處的第四個(gè)定位點(diǎn);第六模塊,設(shè)置為根據(jù)DM碼的四個(gè)定位點(diǎn),對(duì)DM碼進(jìn)行反透視變換,還原得到標(biāo)準(zhǔn)DM碼圖像,并對(duì)標(biāo)準(zhǔn)DM碼圖像進(jìn)行網(wǎng)格劃分;第七模塊,設(shè)置為對(duì)網(wǎng)格劃分后的DM碼進(jìn)行碼字提取,還原碼字信息。根據(jù)本發(fā)明的第三方面,提供一種DM定位及識(shí)別的系統(tǒng),其特征在于,包括:圖像采集裝置、處理器、存儲(chǔ)器、顯示器,所述圖像采集裝置采集包含DM碼的原圖像,所述處理器發(fā)出的指令用于執(zhí)行上述任一項(xiàng)所述的方法,所述存儲(chǔ)器用于存儲(chǔ)上述任一項(xiàng)所述的方法的數(shù)據(jù)或中間數(shù)據(jù)以及用于執(zhí)行上述任一項(xiàng)所述的方法的指令,所述顯示器用于顯示上述任一項(xiàng)所述的方法的結(jié)果。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下顯著優(yōu)點(diǎn)和有益效果:本發(fā)明利用角點(diǎn)信息從二值化圖像中提取包含DM碼的有效區(qū)域,再使用邊緣檢測(cè)算子對(duì)有效區(qū)域進(jìn)行單邊緣提取,得到DM碼的置信單邊緣圖像,能夠有效縮小檢測(cè)區(qū)域并降低DM碼提取的時(shí)間損耗及復(fù)雜度;本發(fā)明在有效區(qū)域的霍夫變換域里尋找到第一條查找模式邊所對(duì)應(yīng)的響應(yīng)點(diǎn)后建立角度屏蔽區(qū),尋找到角度屏蔽區(qū)之外的第二條查找模式邊所對(duì)應(yīng)的響應(yīng)點(diǎn),進(jìn)而定位DM碼的兩條查找模式邊,能夠提高定位質(zhì)量并有效排除無(wú)效區(qū)域的搜索;本發(fā)明通過(guò)對(duì)DM碼有效區(qū)域的霍夫變換域的參數(shù)空間加權(quán),對(duì)加權(quán)后的參數(shù)空間進(jìn)行最大值檢測(cè),能有效避免局部最大值導(dǎo)致的直線檢測(cè)干擾;本發(fā)明對(duì)霍夫變換域的參數(shù)空間進(jìn)行最大值檢測(cè)時(shí),針對(duì)DM碼存在嚴(yán)重污損的情況,提出使用一種霍夫變換投票查找方法,選取包含邊緣像素?cái)?shù)量最多的直線作為查找模式邊所在的直線,其結(jié)合了霍夫變換域與單邊緣,能夠有效避免將查找模式邊定位在數(shù)據(jù)區(qū)的錯(cuò)誤;本發(fā)明通過(guò)旋轉(zhuǎn)帶方向的像素累加器獲取DM碼的兩條切換模式邊并定位DM碼的第四個(gè)定位點(diǎn),能夠提高定位切換模式邊的精確度;本發(fā)明針對(duì)當(dāng)DM碼的切換模式邊受到損毀或污染而導(dǎo)致某些模塊為非矩形時(shí),通過(guò)記錄切換模式邊上模塊的切換次數(shù)補(bǔ)正DM碼的分段長(zhǎng)度,屬于一種動(dòng)態(tài)切換模式邊統(tǒng)計(jì)方法,能夠?qū)崿F(xiàn)DM碼的高質(zhì)量還原;本發(fā)明通過(guò)對(duì)模塊切換坐標(biāo)位置的對(duì)應(yīng)長(zhǎng)度進(jìn)行頻率統(tǒng)計(jì),將出現(xiàn)頻率最高的長(zhǎng)度作為分段長(zhǎng)度,能夠有效解決因切換模式邊模塊間的粘連而產(chǎn)生的DM碼提取錯(cuò)誤。附圖說(shuō)明以下結(jié)合附圖,對(duì)本發(fā)明的實(shí)施例進(jìn)行詳細(xì)的描述,其中:圖1為本發(fā)明的流程圖;圖2為本發(fā)明的一個(gè)實(shí)施例步驟S2中基于“核”查找器的區(qū)域生長(zhǎng)法設(shè)置的步驟流程圖;圖3為本發(fā)明的一個(gè)實(shí)施例步驟S2中基于“核”查找器的區(qū)域生長(zhǎng)法的示意圖;圖4為本發(fā)明的一個(gè)實(shí)施例步驟S2中行統(tǒng)計(jì)法設(shè)置的步驟流程圖;圖5為本發(fā)明的一個(gè)實(shí)施例步驟S2中對(duì)二值化圖像進(jìn)行區(qū)域劃分的示意圖;圖6為本發(fā)明的一個(gè)實(shí)施例步驟S2中坐標(biāo)投影法設(shè)置的步驟流程圖;圖7為本發(fā)明的一個(gè)實(shí)施例步驟S2中對(duì)所有膨脹后的橫、縱坐標(biāo)值的重疊區(qū)域進(jìn)行提取的示意圖;圖8為本發(fā)明的步驟S4的流程圖;圖9為本發(fā)明的一個(gè)實(shí)施例步驟S43中的加權(quán)模版的一個(gè)優(yōu)選實(shí)施例;圖10為DM碼存在嚴(yán)重污損情況的示意圖;圖11為DM碼存在嚴(yán)重污損情況下查找模式邊檢測(cè)錯(cuò)誤示意圖;圖12為本發(fā)明的一個(gè)實(shí)施例步驟S43和/或步驟S45中選取包含邊緣像素?cái)?shù)量最多的直線作為查找模式邊所在的直線的示意圖;圖13本發(fā)明的步驟S5的流程圖;圖14為本發(fā)明的一個(gè)實(shí)施例步驟S5中使用旋轉(zhuǎn)帶方向的像素累加器尋找切換模式邊的示意圖;圖15為本發(fā)明的步驟S6的流程圖;圖16為本發(fā)明的步驟S62的流程圖;圖17為本發(fā)明根據(jù)步驟S62得到正確的DM碼分段長(zhǎng)度再對(duì)DM進(jìn)行網(wǎng)格劃分的一個(gè)實(shí)施例的結(jié)果示意圖;圖18為本發(fā)明步驟S622中判斷像素值從0到1或從1到0時(shí)是否為一次切換時(shí)引入一個(gè)延遲計(jì)數(shù)器用于記錄相同像素值的個(gè)數(shù)的流程示意圖;圖19為當(dāng)切換模式邊在流通過(guò)程中被污損從而切換模式邊的模塊間產(chǎn)生粘連的示意圖;圖20為本發(fā)明步驟S625和/或步驟S626中通過(guò)對(duì)模塊切換坐標(biāo)位置的對(duì)應(yīng)長(zhǎng)度進(jìn)行頻率統(tǒng)計(jì),將出現(xiàn)頻率最高的長(zhǎng)度作為分段長(zhǎng)度,然后根據(jù)補(bǔ)正后的分段長(zhǎng)度對(duì)DM進(jìn)行還原的示意圖;圖21為本發(fā)明的一種DM定位及識(shí)別的系統(tǒng)的結(jié)構(gòu)圖。具體實(shí)施方式在實(shí)施本發(fā)明之前,首先需要使用圖像采集裝置采集包含DM碼的原圖像。根據(jù)本發(fā)明的第一方面,提供一種DM碼定位及識(shí)別的方法。圖1所示為根據(jù)本發(fā)明的一種DM碼定位及識(shí)別的方法的一個(gè)實(shí)施例,包括如下步驟:S1、獲取原圖像的二值化圖像。通常攝像機(jī)采集的原圖像為8位灰度圖像,即使采集原圖像為8位彩色圖像,通常也需將8位彩色圖像轉(zhuǎn)換為8位灰度圖像。在灰度圖像中進(jìn)行二值化操作,即將灰度劃分為0~255共256級(jí)灰度,并選擇灰度閾值,將灰度圖像中灰度值大于灰度閾值的置1,將灰度圖像中灰度值小于灰度閾值的置0,從而獲取原圖像的二值化圖像。S2、從二值化圖像中提取包含DM碼的有效區(qū)域。所述有效區(qū)域?yàn)镈M碼的粗定位區(qū)域,其中可以包含一個(gè)或一個(gè)以上的DM碼。S3、對(duì)有效區(qū)域進(jìn)行單邊緣提取,得到DM碼的置信單邊緣圖像。S4、通過(guò)置信單邊緣圖像得到有效單邊緣圖像,并對(duì)有效單邊緣圖像進(jìn)行霍夫變換,在霍夫變換域的參數(shù)空間里尋找到第一條查找模式邊所對(duì)應(yīng)的響應(yīng)點(diǎn)后建立角度屏蔽區(qū),尋找到角度屏蔽區(qū)之外的第二條查找模式邊所對(duì)應(yīng)的響應(yīng)點(diǎn),進(jìn)而定位DM碼的兩條查找模式邊,并獲取DM碼第一、第二條查找模式邊端點(diǎn)處的三個(gè)定位點(diǎn)。S5、通過(guò)旋轉(zhuǎn)帶方向的像素累加器獲取DM碼的兩條切換模式邊,并求解這兩條切換模式邊交點(diǎn)處的第四個(gè)定位點(diǎn)。S6、根據(jù)DM碼的四個(gè)定位點(diǎn),對(duì)DM碼進(jìn)行反透視變換,還原得到標(biāo)準(zhǔn)DM碼圖像,并對(duì)標(biāo)準(zhǔn)DM碼圖像進(jìn)行網(wǎng)格劃分。S7、對(duì)網(wǎng)格劃分后的DM碼進(jìn)行碼字提取,還原碼字信息。根據(jù)本發(fā)明的一種DM碼定位及識(shí)別的方法的一個(gè)實(shí)施例,步驟S1可使用OTSU算子獲取原圖像的二值化圖像。根據(jù)本發(fā)明的一種DM碼定位及識(shí)別的方法的一個(gè)實(shí)施例,步驟S1可使用分塊OTSU算子獲取原圖像的二值化圖像。所述分塊OTSU算子設(shè)置為先將灰度圖像分成許多子塊,再分別計(jì)算每個(gè)子塊的閾值,其可在一定程序上提高原圖像光照不均時(shí)的二值化效果。根據(jù)本發(fā)明的一種DM碼定位及識(shí)別的方法的一個(gè)實(shí)施例,步驟S1可使用改進(jìn)的Wellner自適應(yīng)二值化算子獲取原圖像的二值化圖像。所述改進(jìn)的Wellner自適應(yīng)二值化算子用統(tǒng)計(jì)方形區(qū)域代替Wellner二值化方法的統(tǒng)計(jì)單行,所述方形區(qū)域邊長(zhǎng)為3個(gè)像素。為了本發(fā)明以下實(shí)施例的描述更清楚,附圖中的一部分二值化DM碼使用了灰度顯示,以便于突出顯示在二值化DM碼上所進(jìn)行的操作。根據(jù)本發(fā)明的一種DM碼定位及識(shí)別的方法的一個(gè)實(shí)施例,步驟S2可使用基于“核”查找器的區(qū)域生長(zhǎng)法從二值化圖像中提取包含DM碼的有效區(qū)域,所述基于“核”查找器的區(qū)域生長(zhǎng)法僅對(duì)角點(diǎn)信息響應(yīng),如圖2所示,其設(shè)置為包括如下步驟:S21、提取二值化圖像的角點(diǎn)。其中,可使用SUSAN算子或Harris算子提取二值化圖像的角點(diǎn)。優(yōu)選地,使用Harris算子提取二值化圖像的角點(diǎn)。S22、定位角點(diǎn)的最大響應(yīng)區(qū)域。如圖3所示,角點(diǎn)的最大響應(yīng)區(qū)域落在以O(shè)為中心、originRadius為初始半徑包含大量角點(diǎn)信息的正方形內(nèi),并定義正方形的左邊、上邊、右邊和下邊分別為a、b、c、d邊。此步驟中的最大響應(yīng)區(qū)域?yàn)镈M碼的有效區(qū)域的一部分。S23、最大響應(yīng)區(qū)域的各條邊a、b、c、d分別朝著背離最大響應(yīng)區(qū)域的方向以生長(zhǎng)半徑Ra、Rb、Rc、Rd為步長(zhǎng)獨(dú)立繪制對(duì)應(yīng)邊的矩形,所述生長(zhǎng)半徑的值大于等于5個(gè)像素長(zhǎng)度且小于等于50個(gè)像素長(zhǎng)度。S24、設(shè)定第一閾值,若某一個(gè)或幾個(gè)矩形范圍內(nèi)包含的角點(diǎn)數(shù)量大于第一閾值,則將對(duì)應(yīng)的矩形作為DM碼的有效區(qū)域的一部分后更新最大響應(yīng)區(qū)域的邊長(zhǎng),并繼續(xù)沿對(duì)應(yīng)方向以生長(zhǎng)半徑為步長(zhǎng)獨(dú)立繪制對(duì)應(yīng)邊的矩形,否則終止對(duì)應(yīng)方向有效區(qū)域的生長(zhǎng),直到搜尋結(jié)束或生長(zhǎng)區(qū)域觸碰圖片邊界,所述第一閾值的大小為大于等于10且小于等于100。進(jìn)一步,優(yōu)選地,上述實(shí)施例中最大響應(yīng)區(qū)域各條邊的生長(zhǎng)半徑的值可以相同或者各不相同。進(jìn)一步,優(yōu)選地,上述實(shí)施例步驟S23中生長(zhǎng)半徑的值為10個(gè)像素長(zhǎng)度。進(jìn)一步,優(yōu)選地,上述實(shí)施例步驟S24中第一閾值的大小設(shè)定與生長(zhǎng)半徑有關(guān),生長(zhǎng)半徑越小則第一閾值越小。優(yōu)選地,在生長(zhǎng)半徑的值設(shè)定為10個(gè)像素長(zhǎng)度時(shí),第一閾值的大小優(yōu)選地設(shè)定為20。根據(jù)本發(fā)明的一種DM碼定位及識(shí)別的方法的一個(gè)實(shí)施例,步驟S2可使用行統(tǒng)計(jì)法從二值化圖像中提取包含DM碼的有效區(qū)域,所述行統(tǒng)計(jì)法僅對(duì)角點(diǎn)信息響應(yīng),如圖4所示,其設(shè)置為包括如下步驟:S21、提取二值化圖像的角點(diǎn)。其中,可使用SUSAN算子或Harris算子提取二值化圖像的角點(diǎn)。優(yōu)選地,使用Harris算子提取二值化圖像的角點(diǎn)。S22、對(duì)二值化圖像進(jìn)行區(qū)域劃分,如圖5所示,不同區(qū)域的大小相同所述區(qū)域的邊長(zhǎng)長(zhǎng)度為大于等于8個(gè)像素且小于等于32個(gè)像素長(zhǎng)度。S23、統(tǒng)計(jì)每個(gè)區(qū)域內(nèi)的角點(diǎn)數(shù)量,以圖5中角點(diǎn)最密集的區(qū)域作為起點(diǎn)區(qū)域,并設(shè)定第二閾值,此步驟中起點(diǎn)區(qū)域?yàn)镈M碼的有效區(qū)域的一部分,所述第二閾值的大小為大于等于10且小于等于100;S24、將起點(diǎn)區(qū)域所在行作為搜索行,在起點(diǎn)區(qū)域X軸的左、右方向上獨(dú)立進(jìn)行搜索,若鄰接區(qū)域的角點(diǎn)數(shù)量大于第二閾值,則將相應(yīng)的鄰接區(qū)域作為DM碼的有效區(qū)域的一部分,并繼續(xù)沿對(duì)應(yīng)方向搜索判斷,否則終止對(duì)應(yīng)方向有效區(qū)域的搜索;S25、將搜索行不斷上移一行,即沿Y軸的負(fù)方向搜索,并將上一搜索行中有效區(qū)域的兩個(gè)端點(diǎn)區(qū)域與一個(gè)中點(diǎn)區(qū)域獨(dú)立作為新的起點(diǎn)區(qū)域,重復(fù)步驟S24,直到新的起點(diǎn)區(qū)域的角點(diǎn)數(shù)量均小于第二閾值;S26、將步驟S24中搜索行不斷下移一行,即沿Y軸的正方向搜索,并將上一搜索行中有效區(qū)域的兩個(gè)端點(diǎn)區(qū)域與一個(gè)中點(diǎn)區(qū)域獨(dú)立作為新的起點(diǎn)區(qū)域,重復(fù)步驟S24,直到新的起點(diǎn)區(qū)域的角點(diǎn)數(shù)量均小于第二閾值。進(jìn)一步,優(yōu)選地,上述實(shí)施例步驟S22中所述區(qū)域的邊長(zhǎng)長(zhǎng)度為8個(gè)像素長(zhǎng)度。進(jìn)一步,優(yōu)選地,上述實(shí)施例步驟S23中所述第二閾值的大小為20。根據(jù)本發(fā)明的一種DM碼定位及識(shí)別的方法的一個(gè)實(shí)施例,步驟S2可使用坐標(biāo)投影法從二值化圖像中提取包含DM碼的有效區(qū)域,所述坐標(biāo)投影法僅對(duì)角點(diǎn)信息響應(yīng),如圖6所示,其設(shè)置為包括如下步驟:S21、提取二值化圖像的角點(diǎn)。其中,可使用SUSAN算子或Harris算子提取二值化圖像的角點(diǎn)。優(yōu)選地,使用Harris算子提取二值化圖像的角點(diǎn)。S22、統(tǒng)計(jì)所有角點(diǎn)對(duì)應(yīng)的X、Y坐標(biāo)值。S23、設(shè)定第三閾值,并對(duì)所有的坐標(biāo)值進(jìn)行一維膨脹操作,當(dāng)最大連通域的長(zhǎng)度大于其它連通域長(zhǎng)度的第三閾值倍時(shí)停止膨脹操作。所述第三閾值,優(yōu)選地,為0.5。S24、對(duì)所有膨脹后的橫、縱坐標(biāo)值的重疊區(qū)域進(jìn)行提取,如圖7所示,得到DM碼的有效區(qū)域。根據(jù)本發(fā)明的一種DM碼定位及識(shí)別的方法的一個(gè)實(shí)施例,在步驟S2之后,可以對(duì)DM碼的有效區(qū)域進(jìn)行濾波預(yù)處理,以濾出噪聲。所述濾波預(yù)處理,優(yōu)選地,使用中值濾波器對(duì)有效區(qū)域進(jìn)行預(yù)處理。根據(jù)本發(fā)明的一種DM碼定位及識(shí)別的方法的一個(gè)實(shí)施例,步驟S3可使用canny邊緣檢測(cè)算子對(duì)有效區(qū)域進(jìn)行單邊緣提取,得到DM碼的置信單邊緣圖像。根據(jù)本發(fā)明的一種DM碼定位及識(shí)別的方法的一個(gè)實(shí)施例,如圖8所示,步驟S4包括如下步驟:S41、獲取DM碼有效區(qū)域的寬度和高度,若寬度與高度的比值基本滿足正方形條件,則對(duì)置信單邊緣圖像進(jìn)行挖空操作,以排除DM碼中遠(yuǎn)離探測(cè)圖形的數(shù)據(jù)區(qū),否則不進(jìn)行挖空操作,最終得到有效單邊緣圖像。所述基本滿足正方形條件在本方法中是指寬度與高度的比值在1~1.3之間。S42、對(duì)有效單邊緣圖像進(jìn)行霍夫變換,得到霍夫變換域的參數(shù)空間。進(jìn)行霍夫變換時(shí)優(yōu)選的角度步長(zhǎng)為1°,優(yōu)選的角度范圍為-90°~180°。S43、對(duì)霍夫變換域的參數(shù)空間進(jìn)行最大值檢測(cè),獲取最大響應(yīng)點(diǎn)對(duì)應(yīng)的中心像素值,中心像素值所對(duì)應(yīng)的參數(shù)即為第一條查找模式邊的直線參數(shù);S44、在霍夫變換域的參數(shù)空間建立角度屏蔽區(qū)。優(yōu)選地,角度屏蔽區(qū)為以第一條查找模式邊的角度為中心、半徑為30°的范圍,并且與第一條查找模式邊的角度互補(bǔ)的角度也包括在內(nèi),如直線a對(duì)應(yīng)的角度為-30°,則150°附近不存在第二條查找模式邊對(duì)應(yīng)的角度。S45、在角度屏蔽區(qū)之外對(duì)霍夫變換域的參數(shù)空間進(jìn)行最大值檢測(cè),獲取最大響應(yīng)點(diǎn)對(duì)應(yīng)的中心像素值,中心像素值所對(duì)應(yīng)的參數(shù)即為第二條查找模式邊的直線參數(shù);S46、獲取DM碼第一、第二條查找模式邊端點(diǎn)處的三個(gè)定位點(diǎn),所述三個(gè)定位點(diǎn)包括第一、第二條查找模式邊的交點(diǎn)與第一、第二條查找模式邊的另外兩個(gè)端點(diǎn)。根據(jù)本發(fā)明的一種DM碼定位及識(shí)別的方法的一個(gè)實(shí)施例,步驟S43和/或步驟S45中對(duì)霍夫變換域的參數(shù)空間進(jìn)行最大值檢測(cè)時(shí),若DM碼如圖9所示存在嚴(yán)重污損,可使用霍夫變換投票查找方法來(lái)避免如圖10所示的查找模式邊檢測(cè)錯(cuò)誤,其設(shè)置為:首先,搜尋霍夫變換域的參數(shù)空間,若DM碼出現(xiàn)嚴(yán)重污損則通過(guò)模板對(duì)參數(shù)空間進(jìn)行加權(quán),以有效避免局部最大值導(dǎo)致的直線檢測(cè)干擾,優(yōu)選地,加權(quán)模板如圖11所示,在加權(quán)后的參數(shù)空間進(jìn)行最大值檢測(cè),獲取最大響應(yīng)點(diǎn)對(duì)應(yīng)的中心像素值坐標(biāo);其次,以該坐標(biāo)為中心,建立參數(shù)空間距離方向的搜索區(qū),所述搜索區(qū)半徑為r,所述半徑r的值為3°~10°;再次,在搜索區(qū)內(nèi)檢索M-1個(gè)次大響應(yīng)點(diǎn)并記錄其坐標(biāo),所述M的值為大于等于5且小于等于10;再次,在有效單邊緣圖像中搜索獲取的M個(gè)響應(yīng)點(diǎn)所對(duì)應(yīng)的直線,并計(jì)算這M條直線上分別包含的邊緣像素?cái)?shù)量;最后,選取包含邊緣像素?cái)?shù)量最多的直線作為查找模式邊所在的直線,如圖12所示,并以此直線所定義的參數(shù)作為最大響應(yīng)點(diǎn)的參數(shù)。進(jìn)一步,優(yōu)選地,上述實(shí)施例步驟S43和/或步驟S45中所述半徑r的值為5°。進(jìn)一步,優(yōu)選地,上述實(shí)施例步驟S43和/或步驟S45中所述M的值為5。根據(jù)本發(fā)明的一種DM碼定位及識(shí)別的方法的一個(gè)實(shí)施例,如圖13所示,步驟S5包括如下步驟:S51、使用旋轉(zhuǎn)帶方向的像素累加器尋找到第一條切換模式邊,所述旋轉(zhuǎn)帶方向的像素累加器設(shè)置為以第一條查找模式邊的端點(diǎn)為頂點(diǎn)B,以具有固定半徑的第一旋轉(zhuǎn)線段從第一條查找模式邊開(kāi)始繞著頂點(diǎn)B在有效區(qū)域旋轉(zhuǎn),方向如圖14a所示,當(dāng)?shù)谝恍D(zhuǎn)線段旋轉(zhuǎn)到BD1的位置上時(shí)其上各像素點(diǎn)的累加值為0,此時(shí)的第一旋轉(zhuǎn)線段為第一條切換模式邊的外邊緣的一部分或部分重合,優(yōu)選地所述固定半徑為第一/第二切換模式邊長(zhǎng)度的一半或?yàn)锽、C兩個(gè)端點(diǎn)連線距離的1/1.414倍的一半。S52、使用旋轉(zhuǎn)帶方向的像素累加器尋找到第二條切換模式邊,所述旋轉(zhuǎn)帶方向的像素累加器設(shè)置為以第二條查找模式邊的端點(diǎn)為頂點(diǎn)C,方向如圖14b,所示以具有固定半徑的第二旋轉(zhuǎn)線段從第二條查找模式邊開(kāi)始繞著頂點(diǎn)C在有效區(qū)域旋轉(zhuǎn),當(dāng)?shù)诙D(zhuǎn)線段旋轉(zhuǎn)到CD2的位置上時(shí)其上各像素點(diǎn)的累加值為0,此時(shí)的第二旋轉(zhuǎn)線段為第二條切換模式邊的外邊緣的一部分或部分重合;S53、將第一旋轉(zhuǎn)線段與第二旋轉(zhuǎn)線段的交點(diǎn)或延長(zhǎng)線的交點(diǎn)D作為DM碼的第四個(gè)定位點(diǎn),如圖14c所示。根據(jù)本發(fā)明的一種DM碼定位及識(shí)別的方法的一個(gè)實(shí)施例,如圖15所示,步驟S6包括如下步驟:S61、根據(jù)DM碼的四個(gè)定位點(diǎn),對(duì)DM碼進(jìn)行反透視變換,還原得到標(biāo)準(zhǔn)DM碼圖像;S62、通過(guò)標(biāo)準(zhǔn)DM碼圖像的切換模式邊,得到標(biāo)準(zhǔn)DM碼圖像的穩(wěn)定分段長(zhǎng)度,如圖16的流程圖所示,步驟S622中判斷像素值從0到1或從1到0時(shí)是否為一次切換時(shí),可引入一個(gè)延遲計(jì)數(shù)器用于記錄相同像素值的個(gè)數(shù),并定義一個(gè)待寫入?yún)^(qū)flag,若像素值發(fā)生變化則將flag置高位,且延遲記錄器記錄的相同像素值的個(gè)數(shù)大于第四閾值T4時(shí),則此時(shí)已經(jīng)滿足切換條件,記錄分段坐標(biāo),所述第四閾值為記錄器中出現(xiàn)相同像素值的個(gè)數(shù)為最大時(shí)的長(zhǎng)度。此時(shí)因?yàn)橐蜒舆t第四閾值T4個(gè)像素,故寫入坐標(biāo)位置需要調(diào)整第四閾值T4個(gè)像素位置;S63、根據(jù)分段長(zhǎng)度,對(duì)標(biāo)準(zhǔn)DM碼圖像進(jìn)行網(wǎng)格劃分。當(dāng)DM碼的切換模式邊受到損毀或污染而導(dǎo)致某些模塊為非矩形時(shí),若根據(jù)DM碼圖像的切換模式邊,直接得到它的分段長(zhǎng)度容易導(dǎo)致錯(cuò)誤。因此根據(jù)本發(fā)明的一種DM碼定位及識(shí)別的方法的一個(gè)實(shí)施例,如圖17所示,步驟S62包括如下步驟:S621、以第一條切換模式邊的外邊緣所在直線為初始搜索線;S622、記錄像素值從0到1或從1到0的切換次數(shù);S623、以固定的像素?cái)?shù)量為步長(zhǎng)不斷平行移動(dòng)搜索線,方向?yàn)槌阉骶€對(duì)面的查找模式邊,重復(fù)步驟S622獲取并記錄n次模塊切換次數(shù),其中n等于搜索邊平行移動(dòng)的次數(shù);S624、在平行移動(dòng)次數(shù)n大于或等于采樣次數(shù)N時(shí),比較記錄的n次模塊切換次數(shù),若n個(gè)模塊切換次數(shù)均相同,認(rèn)為模塊切換次數(shù)已經(jīng)穩(wěn)定,否則替換較早的模塊切換次數(shù),以當(dāng)前搜索線為初始位置,重復(fù)上述步驟,得到第一條切換模式邊上所有數(shù)據(jù)區(qū)的切換次數(shù),即所有黑白模塊的數(shù)量;S625、根據(jù)步驟S624中得到的模塊切換次數(shù),記錄模塊發(fā)生切換的中點(diǎn),進(jìn)而得到標(biāo)準(zhǔn)DM碼圖像平行于第一條切換模式邊的所有數(shù)據(jù)區(qū)的穩(wěn)定分段長(zhǎng)度;S626、以第二條切換模式邊的外邊緣所在直線為初始搜索線,重復(fù)上述步驟,標(biāo)準(zhǔn)DM碼圖像平行于第二條切換模式邊的所有數(shù)據(jù)區(qū)的穩(wěn)定分段長(zhǎng)度。當(dāng)DM碼的切換模式邊受到損毀或污染而導(dǎo)致某些模塊為非矩形時(shí),通過(guò)上述步驟得到正確的DM碼分段長(zhǎng)度再對(duì)DM進(jìn)行網(wǎng)格劃分的結(jié)果如圖18所示。如圖19所視為當(dāng)切換模式邊在流通過(guò)程中被污損從而切換模式邊的模塊間產(chǎn)生粘連,例如被污損的切換模式邊BD有5個(gè)模塊粘連在一起,CD邊有三個(gè)模塊粘連在一起,這將導(dǎo)致記錄的DM碼分段長(zhǎng)度產(chǎn)生錯(cuò)誤,如表1和表2所示。其中模塊序號(hào)方向如圖19所示。表1BD切換模式邊分段長(zhǎng)度數(shù)據(jù)模塊序號(hào)0123456789101112模塊長(zhǎng)度01224354759708092103115173185模塊序號(hào)13141516171819202122232425模塊長(zhǎng)度196208220231243255265279289299表2CD切換模式邊分段長(zhǎng)度數(shù)據(jù)模塊序號(hào)0123456789101112模塊長(zhǎng)度299287274265252240229194183172160149138模塊序號(hào)13141516171819202122232425模塊長(zhǎng)度1251141039180675844322190表1顯示DM碼的BD切換模式邊的模塊劃分個(gè)數(shù)為23,平均每個(gè)模塊的分段長(zhǎng)度為12個(gè)像素單位,第10~11個(gè)模塊因模塊粘連導(dǎo)致兩個(gè)劃分?jǐn)?shù)據(jù)跨越5個(gè)模塊單元。同理,表2顯示DM碼的CD切換模式邊的模塊劃分個(gè)數(shù)為25,第6~7個(gè)模塊跨越3個(gè)模塊單元。上述分段數(shù)據(jù)將導(dǎo)致碼字提取錯(cuò)誤,且BD切換模式邊與CD切換模式邊的模塊劃分個(gè)數(shù)不相同,最終導(dǎo)致DM碼提取失敗。因此根據(jù)本發(fā)明的一種DM碼定位及識(shí)別的方法的一個(gè)實(shí)施例,步驟S625和/或步驟S626中得到標(biāo)準(zhǔn)DM碼圖像的穩(wěn)定分段長(zhǎng)度,可通過(guò)對(duì)模塊切換坐標(biāo)位置的對(duì)應(yīng)長(zhǎng)度進(jìn)行頻率統(tǒng)計(jì),將出現(xiàn)頻率最高的長(zhǎng)度作為分段長(zhǎng)度。表3為上述BD切換模式邊的模塊分段長(zhǎng)度和頻數(shù)的統(tǒng)計(jì)表,如表所示,長(zhǎng)度為12個(gè)像素的模塊出現(xiàn)次數(shù)最多,則認(rèn)為該模塊長(zhǎng)度占用的像素個(gè)數(shù)12為基準(zhǔn)模塊長(zhǎng)度。并設(shè)定閾值T5,優(yōu)選地,T5設(shè)置為1.5,即模塊最大長(zhǎng)度為12*1.5=18,并將大于18個(gè)像素單位的模塊進(jìn)行劃分操作,劃分次數(shù)為當(dāng)前模塊長(zhǎng)度除以基準(zhǔn)模塊長(zhǎng)度。例如某個(gè)模塊長(zhǎng)度為58個(gè)像素,58>18,58/12=4.83≈5,則將其進(jìn)行5等分劃分,劃分的平均長(zhǎng)度為12個(gè)像素。依照上述方法,將上述BD切換模式邊重新進(jìn)行分段,其分段長(zhǎng)度數(shù)據(jù)如表4所示。對(duì)CD邊進(jìn)行上述相同步驟的劃分操作,計(jì)算得到CD邊的分段數(shù)據(jù),并根據(jù)分段數(shù)據(jù)進(jìn)行劃分操作,得到還原的標(biāo)準(zhǔn)DM碼,如圖20所示。表3長(zhǎng)度1011121458頻數(shù)441011表4模塊序號(hào)0123456789101112模塊長(zhǎng)度01224354759708092103115127139模塊序號(hào)13141516171819202122232425模塊長(zhǎng)度151163173185196208220231243255265279289模塊序號(hào)26272829303132333435363738模塊長(zhǎng)度299根據(jù)本發(fā)明的第二方面,提供一種DM碼定位及識(shí)別的系統(tǒng),包括:第一模塊,設(shè)置為獲取原圖像的二值化圖像;第二模塊,設(shè)置為從二值化圖像中提取包含DM碼的有效區(qū)域;第三模塊,設(shè)置為對(duì)有效區(qū)域進(jìn)行單邊緣提取,得到DM碼的置信單邊緣圖像;第四模塊,設(shè)置為通過(guò)置信單邊緣圖像得到有效邊緣圖像,并對(duì)有效單邊緣圖像進(jìn)行霍夫變換,在霍夫變換域的參數(shù)空間里尋找到第一條查找模式邊所對(duì)應(yīng)的響應(yīng)點(diǎn)后建立角度屏蔽區(qū),尋找到角度屏蔽區(qū)之外的第二條查找模式邊所對(duì)應(yīng)的響應(yīng)點(diǎn),進(jìn)而定位DM碼的兩條查找模式邊,并獲取DM碼第一、第二條查找模式邊端點(diǎn)處的三個(gè)定位點(diǎn);第五模塊,設(shè)置為通過(guò)旋轉(zhuǎn)帶方向的像素累加器獲取DM碼的兩條切換模式邊,并求解這兩條切換模式邊交點(diǎn)處的第四個(gè)定位點(diǎn);第六模塊,設(shè)置為根據(jù)DM碼的四個(gè)定位點(diǎn),對(duì)DM碼進(jìn)行反透視變換,還原得到標(biāo)準(zhǔn)DM碼圖像,并對(duì)標(biāo)準(zhǔn)DM碼圖像進(jìn)行網(wǎng)格劃分;第七模塊,設(shè)置為對(duì)網(wǎng)格劃分后的DM碼進(jìn)行碼字提取,還原碼字信息。圖21所示為根據(jù)本發(fā)明的第三方面,提供一種DM定位及識(shí)別的系統(tǒng),其特征在于,包括:圖像采集裝置、處理器、存儲(chǔ)器、顯示器,所述圖像采集裝置采集包含DM碼的原圖像,所述處理器發(fā)出的指令用于上述任一項(xiàng)所述的方法,所述存儲(chǔ)器用于存儲(chǔ)上述任一項(xiàng)所述的方法的數(shù)據(jù)或中間數(shù)據(jù)以及用于執(zhí)行上述任一項(xiàng)所述的方法的指令,所述顯示器用于顯示上述任一項(xiàng)所述的方法的結(jié)果。以上所述,只是本發(fā)明的較佳實(shí)施例而已,本發(fā)明并不局限于上述實(shí)施方式,只要其以相同的手段達(dá)到本發(fā)明的技術(shù)效果,都應(yīng)屬于本發(fā)明的保護(hù)范圍。在本發(fā)明的保護(hù)范圍內(nèi)其技術(shù)方案和/或?qū)嵤┓绞娇梢杂懈鞣N不同的修改和變化。即使個(gè)別的技術(shù)特征在不同的權(quán)利要求中引用,本發(fā)明還可包含共有這些特征的實(shí)施例。當(dāng)前第1頁(yè)1 2 3