專利名稱::一種基于亞像素邊緣檢測的四一七條碼識別方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種條碼自動識別方法,特別是高效的基于亞像素邊緣檢測的四一七條碼識別方法,它能夠快速、準確、高效地識別四一七條碼,特別是在四一七條碼圖像分辨率低的情況下,該方法的識別效果十分顯著。當在四一七條碼圖像模糊或打印質(zhì)量差的情況下,該方法對提高四一七條碼的識別率也有一定的效果。
背景技術(shù):
:自動化數(shù)據(jù)采集技術(shù)是信息采集和處理的關(guān)鍵技術(shù),條碼識別技術(shù)在自動化數(shù)據(jù)采集中占有重要地位。二維條碼是在傳統(tǒng)的一維條碼基礎上發(fā)展起來的。傳統(tǒng)的一維條碼由于受信息容量的限制,必須依賴數(shù)據(jù)庫的支持;二維條碼的信息密度高,信息容量大,可以不依賴于數(shù)據(jù)庫,具有可移動性等諸多優(yōu)點。四一七條碼是二維條碼家族中的一員,被稱為便攜式數(shù)據(jù)文件(PortableDataFile,也稱“PDF417條碼”),它是一種多層、可變長的二維條碼,具有信息容量高、可編碼范圍廣,保密、防偽性好,譯碼可靠性高,錯誤糾正能力強、制作成本低等特點。可以廣泛地應用在國防、公共安全、交通運輸、醫(yī)療保健、工業(yè)、商業(yè)、金融、海關(guān)及政府管理等領(lǐng)域。特別是隨著手機等嵌入式智能終端設備的大量普及,四一七條碼將在信息采集、金融票據(jù)、社會人員管理、現(xiàn)代物流和產(chǎn)業(yè)鏈管理等方面有著極大的應用前景。通過手機或相機攝像頭拍攝包含四一七條碼的圖像,利用數(shù)字圖像處理技術(shù)進行識別,是國內(nèi)外對四一七條碼的主要研究方向。由于獲取四一七條碼圖像過程中會出現(xiàn)條碼傾斜,條碼圖像分辨率低,模糊、打印質(zhì)量差等情況。如何對圖像中的四一七條碼區(qū)域進行定位,如何計算四一七條碼的功能信息參數(shù)(四一七條碼的行數(shù)、數(shù)據(jù)區(qū)的列數(shù)和糾錯等級)及如何準確提取四一七條碼的符號字符,是四一七條碼圖像識別中的關(guān)鍵步驟。其中,能否準確提取符號字符,是四一七條碼正確識別的關(guān)鍵,要想得到準確的符號字符,必須有理想的邊緣來完成對四一七條碼符號字符的分割。因此如何準確提取符號字符也是一個邊緣檢測的問題。對于這些關(guān)鍵步驟,傳統(tǒng)的處理方法是首先,將四一七條碼旋轉(zhuǎn)至水平。其次,對旋轉(zhuǎn)水平后的四一七條碼圖像進行邊緣檢測和利用投影算法,來計算功能信息參數(shù)。最后,對四一七條碼的每一行在垂直方向投影,根據(jù)投影后的峰值之間的距離提取符號字符或者根據(jù)求取的四一七條碼最小模塊的寬度來提取符號字符。傳統(tǒng)處理方法的缺點是1、將四一七條碼旋轉(zhuǎn)至水平方向。若采用基于直線擬合的方法,在有噪聲干擾的情況下得到的直線不一定是四一七條碼的邊界則在此基礎上的旋轉(zhuǎn)必定會有較大誤差。若采用基于Hough變換的方法,則花費時間較多;2、利用邊緣檢測和投影的思想計算功能信息參數(shù),2.1一方面邊緣檢測對噪聲敏感,抗噪聲能力差。如若采用濾波,則濾波操作優(yōu)化花費一定的時間。2.2基于水平和垂直方向的投影計算比較花費時間,另一方面在得到的峰值后利用控制誤差限的方法計算功能信息參數(shù),誤差大;3、符號字符對于四一七條碼能否正確識別至關(guān)重要,傳統(tǒng)的方法是利用傳統(tǒng)邊緣檢測算法進行邊緣檢測后在垂直方向上的投影或利用最小模塊寬度提取符號字符,由于不能很好的分割四一七條碼符號字符對應的模塊,特別是在四一七條碼圖像分辨率低、存在污損,打印質(zhì)量差的情況下,提取符號字符的成功率很低,造成四一七條碼不能正確被識別??傊?,傳統(tǒng)的四一七條碼處理方法處理速度慢、耗時、誤差大、識別率低,效率也低,難以達到實時性及在各行各業(yè)的廣泛應用和普及。
發(fā)明內(nèi)容本發(fā)明的目的是提供一種高效的基于亞像素邊緣檢測的四一七條碼識別方法,以達到實時性、識別率高。特別是在四一七條碼圖像分辨率低的情況下,提高對四一七條碼的識別率效果;在四一七條碼圖像模糊、打印質(zhì)量差的情況下,提高對四一七條碼的識別率。本發(fā)明的目的是這樣實現(xiàn)的一種基于亞像素邊緣檢測的四一七條碼識別方法,包括以下步驟1.1)對采集的四一七條碼圖像進行灰度化處理,采用類似折半查找的思想,分別在水平方向上從左到右和從右到左進行光柵掃描,掃描過程中,若發(fā)現(xiàn)相鄰像素的像素值發(fā)生明顯變化,則稱為一次跳變;利用跳變的次數(shù),結(jié)合起始符和終止符的紋理信息,確定最后兩次符合起始符紋理信息和最后兩次符合終止符紋理信息時的開始和結(jié)束共八個點A、B、C、D、E、F、G、H;1.2)利用八個點中的從左向右掃描得到的起始符最左邊的兩個點A、C所確定的直線與八個點中最下方的兩個點D、G所確定的直線的交點,確定四一七條碼最左下角的點P;利用八個點中的從右向左掃描得到的終止符最右邊兩點E、G所確定的直線與八個點中最上方的兩個點A、F所確定的直線的交點,確定四一七條碼最右上角的點Q,自此完成四一七條碼的定位;1.3)根據(jù)八個點中的點B、D所在的直線與點A、F所在直線的交點M確定四一七條碼第一行左提示符的起始點,利用點F、H所在的直線與點D、G所在的直線的交點N確定最后一行右提示符的終止點;分別由點M開始沿著點A、F所在的直線向右掃描和由點D開始沿著點D、G所在的直線向右掃描,根據(jù)左行提示符的紋理信息和跳變的次數(shù),確定第一行和最后一行的左行提示符對應的兩個符號字符,進而查找其對應的碼字;分別由點F開始沿著點A、F所在的直線向左掃描和由點N開始沿著點D、G所在直線向左掃描,根據(jù)右行提示符的紋理信息和跳變的次數(shù),確定第一行和最后一行的右行提示符對應的兩個符號字符,進而查找其對應的兩個碼字;根據(jù)得到的第一行和最后一行的左、右行提示符所對應的四個碼字,按照四一七條碼的編碼規(guī)則確定四一七條碼的如下功能信息參數(shù)四一七條碼的行數(shù)、列數(shù)和糾錯等級;1.4)對在步驟1.1)和步驟1.3)確定的第一行左提示符開始點M和最后一行左提示符開始點D所確定的線段MD進行按四一七條碼的行數(shù)等分;其中,等分點離線段MD的端點M、D的距離分別為其他各相鄰等分點之間距離的二分之一;對第一行右提示符的結(jié)束點F和最后一行右提示符的結(jié)束點N確定的線段FN進行按四一七條碼的行數(shù)等分,等分點離線段FN的端點F、N的距離分別為其它各相鄰等分點之間距離的二分之一;然后,依次完成兩線段之間所對應的等分點之間的線段按行進行光柵掃描得到其對應的像素值,自此完成了四一七條碼每一行的采樣;1.5)基于亞像素邊緣檢測的思想,將光柵掃描所得到的每一行線段上的像素值在一維方向放大一定的倍數(shù)并用一定的插值方法完成插值處理;對插值后的像素值利用局部二值化的思想,對其完成二值化處理;從而完成四一七條碼每一行上的符號字符的分割;1.6)將分割后的四一七條碼的每一行符號字符按照符號字符的特征將其對應的連續(xù)相同像素的個數(shù)規(guī)范化為標準的符號字符;上述符號字符的特征是以條開始,以空結(jié)束,條空相間排列,共四個條和四個空;1.7)由步驟1.6)得到的符號字符查找其對應的碼字,根據(jù)糾錯等級進行譯碼和糾錯。上述步驟1.1)中采用類似折半查找的思想,利用跳變的次數(shù),結(jié)合起始符和終止符的紋理信息,確定最后兩次符合起始符紋理信息和最后兩次符合終止符紋理信息時的開始和結(jié)束共八個點A、B、C、D、E、F、G、H步驟如下a)在包含四一七條碼圖像的整幅圖像高的二分之一處,在水平方向上按行從左到右掃描,根據(jù)像素值的跳變次數(shù)和四一七條碼起始符的紋理信息,獲得一段像素值;b)若所得的像素值規(guī)范化為符號字符后符合起始符的符號字符特征,則記錄該段像素值的起始點和終止點;c)如果所得的像素值規(guī)范化為符號字符后不符合起始符的符號字符特征,則繼續(xù)在包括四一七條碼整幅圖像的上半部分和下半部分分別重復步驟a)、b)、c),每次均在按上一步查找的圖像高度范圍內(nèi)的二分之一處繼續(xù)查找,直到找到最后兩次符合四一七條碼起始符紋理信息的兩條線段的四個端點A、B、C、D;d)在包含四一七條碼圖像的整幅圖像高的二分之一處,在水平方向上按行從右到左掃描,根據(jù)像素值的跳變次數(shù)和四一七條碼終止符的紋理信息,獲得一段像素值;e)若所得的像素值規(guī)范化為符號字符后符合終止符的符號字符特征,則記錄該段像素值的起始點和終止點;f)如果所得的像素值規(guī)范化為符號字符后不符合終止符的符號字符特征,則繼續(xù)在包括四一七條碼整幅圖像的上半部分和下半部分分別重復步驟d)、e)、f),每次均在按上一步查找的圖像高度范圍內(nèi)的二分之一處繼續(xù)查找,直到找到最后兩次符合四一七條碼終止符紋理信息的兩條線段的四個端點E、F、G、H;如果在水平方向上,按照上述方法,進行了若干次數(shù)后沒有出現(xiàn)一次是符合起始符紋理信息或終止符紋理信息的情況,則在垂直方向進行和在水平方向類似的查找。上述步驟1.2)中確定四一七條碼最左下角的點P和最右上角的點Q采用如下步驟由于存在可能的誤差,利用如1.2)步驟中所描述的點A、C所在的直線和點D、G所在的直線的交點,然后在該交點附近沿著直線AC和直線DG方向搜索,結(jié)合四一七條碼起始符,判斷一個較準確的點作為點P;利用如1.2)步驟中所描述的點E、G所在的直線和點A、F所在的直線的交點,然后在該交點附近沿著直線EG和直線AF搜索,結(jié)合四一七條碼終止符,判斷一個較準確的點作為點Q。上述步驟1.3)中所述的利用第一行和最后一行的左行提示符、右行提示符信息計算四一七條碼功能信息參數(shù)失效或截斷四一七條碼的情況下,則采用從點M沿線段MD向下,朝平行于直線AF的方向根據(jù)四一七條碼的左提示符的紋理信息和跳變的次數(shù),確定任意三個連續(xù)的左行提示符所對應的碼字,或者從點D沿線段MD向上,朝平行于直線DG的方向根據(jù)四一七條碼的左行提示符的紋理信息和跳變次數(shù),確定任意三個連續(xù)的左行提示符所對應的碼字;根據(jù)四一七條碼的編碼規(guī)則,計算出四一七條碼的功能信息參數(shù)。上述步驟1.4)中,在對線段MD和線段FN進行按四一七條碼的行數(shù)等分過程中,由于考慮到求取點M、D、F、N這四個點過程中可能存在誤差,則將點M和點D分別沿直線AF和直線DG向四一七條碼的內(nèi)部移動1或2個像素,同樣將點F、N沿直線AF和直線DG向四一七條碼的內(nèi)部移動1或2個像素。上述對于截斷四一七條碼的情況,則確定六個點A、B、C、D、Fl、Gl;其中點A、B、C、D四個點的確定方法與上述點A、B、C、D的確定方法相同;點F1、G1的確定方法為從上到下依次從左向右掃描,確定第一次和最后一次符合截斷四一七條碼結(jié)尾紋理信息和跳變次數(shù)的兩個點為點Fl、點Gl。上述對于截斷四一七條碼的情況,四一七條碼最左下角點Pl的確定方法同上述點P的確定方法。上述對于截斷四一七條碼的情況,將線段FlGl按四一七條碼的行數(shù)等分過程中,首先將點Fl沿直線AFl向四一七條碼內(nèi)部移動若干個像素到與其相鄰的四一七條碼空的結(jié)束處,將點Gl沿直線DGl向四一七條碼內(nèi)部移動若干個像素到與其相鄰的四一七條碼空的結(jié)束處,然后將其按四一七條碼的行數(shù)等分,等分點離線段FlGl的端點F1、G1的距離分別為其他各相鄰等分點之間距離的二分之一。與傳統(tǒng)方法的對比及總結(jié),本發(fā)明方法主要具有以下優(yōu)點1、能快速定位四一七條碼。傳統(tǒng)的處理方法是基于Hough變換還是采用直線擬合的方法,均存在花費時間大、抗干擾、抗污損能力弱的缺點。本發(fā)明方法,充分利用四一七條碼的紋理信息采用折半查找的思想,能快速完成四一七條碼的定位,而且在定位時,只利用起始符和終止符的紋理信息,而不關(guān)心四一七條碼的其他區(qū)域。因此本發(fā)明方法,在四一七條碼定位方面具有處理速度快,抗干擾能力強,實時性好的優(yōu)點。2、能快速、準確計算四一七條碼的功能信息參數(shù)。傳統(tǒng)的處理方法是基于邊緣檢測和投影算法的思想,一方面,傳統(tǒng)的邊緣檢測算法對噪聲敏感,存在偽邊緣的情況。另一方面,利用投影算法和控制誤差限的方法,來計算功能能信息參數(shù)存在的誤差較大。本發(fā)明方法,從分利用提示符的紋理信息,能快速計算出四一七條碼的功能信息參數(shù),同時可利用多個提示符對應的碼字,完成對其驗證。特別是在截斷四一七條碼和數(shù)據(jù)區(qū)污損嚴重的四一七條碼的識別過程中,本發(fā)明方法有較好魯棒性好。因此,本發(fā)明方法在求取四一七條碼功能信息方面,具有速度快,魯棒性好的優(yōu)點。3、能很好的分割四一七條碼的符號字符,條碼識別率高。傳統(tǒng)的處理方法是利用傳統(tǒng)的邊緣檢測算法,然后利用投影算法的思想或者利用最小模塊寬度去分割符號字符對于的模塊。其缺點很明顯由于條到空的變化中存在過渡,傳統(tǒng)的邊緣檢測算法不能很好的分割四一七條碼的符號字符,而用最小模塊去分割符號字符誤差大。傳統(tǒng)的處理方法不能很好的分割四一七條碼的符號字符,這是造成使用傳統(tǒng)處理方法四一七條碼識別率低的主要原因,特別是在四一七條碼圖片分辨率的情況下。本發(fā)明方法,采用基于亞像素邊緣檢測的思想對采樣的一行進行處理,能很好的分割四一七條碼的符號字符,特別是在四一七條碼圖片分辨率的情況下。因此,本發(fā)明方法,分割四一七條碼符號字符的效果好,四一七條碼的識別率高。4、本發(fā)明方法不僅適用于標準四一七條碼和截斷四一七條碼,而且對于部分污損較嚴重的情況下也能正確識別。圖1、圖2、圖3(圖3在圖2基礎上的采樣示意)為非截斷四一七條碼(具備起始符、左行提示符、數(shù)據(jù)區(qū)、右行提示符、終止符)的識別示意圖。圖4、圖5、圖6(圖6在圖5基礎上的采樣示意)為截斷四一七條碼的識別示意圖。具體實施例方式本基于亞像素邊緣檢測的四一七條碼識別方法,包括以下步驟1.1)對采集的四一七條碼圖像進行灰度化處理,采用類似折半查找的思想,分別在水平方向上從左到右和從右到左進行光柵掃描,掃描過程中,若發(fā)現(xiàn)相鄰像素的像素值發(fā)生明顯變化,則稱為一次跳變。利用跳變的次數(shù),結(jié)合起始符和終止符的紋理信息,確定最后兩次符合起始符紋理信息和最后兩次符合終止符紋理信息時的開始和結(jié)束共八個點A、B、C、D、E、F、G、H(見示意圖1);1.2)利用八個點中的從左向右掃描得到的起始符最左邊的兩個點A、C所確定的直線與八個點中最下方的兩個點D、G所確定的直線的交點,確定四一七條碼最左下角的點P。利用八個點中的從右向左掃描得到的終止符最右邊兩點E、G所確定的直線與八個點中最上方的兩個點A、F所確定的直線的交點,確定四一七條碼最右上角的點Q,自此完成四一七條碼的定位(見示意圖2);1.3)根據(jù)八個點中的點B、D所在的直線與點A、F所在直線的交點確定四一七條碼第一行左提示符的起始點M,利用點F、H所在的直線與點D、G所在的直線的交點確定最后一行右提示符的終止點N(見示意圖2)。分別由點M開始沿著點A、F所在的直線向右掃描和由點D開始沿著點D、G所在的直線向右掃描,根據(jù)左行提示符的紋理信息和跳變的次數(shù),確定第一行和最后一行的左行提示符對應的兩個符號字符,進而查找其對應的碼字;分別由點F開始沿著點A、F所在的直線向左掃描和由點N開始沿著點D、G所在直線向左掃描,根據(jù)右行提示符的紋理信息和跳變的次數(shù),確定第一行和最后一行的右行提示符對應的兩個符號字符,進而查找其對應的兩個碼字。根據(jù)得到的第一行和最后一行的左行提示符、右行提示符所對應的四個碼字,按照四一七條碼的編碼規(guī)則確定四一七條碼的功能信息參數(shù)(四一七條碼的行數(shù)、列數(shù)和糾錯等級);1.4)對在步驟1.1)和步驟1.3)確定的第一行左提示符開始點M和最后一行左提示符開始點D所確定的線段MD進行按四一七條碼的行數(shù)等分。其中,等分點離線段MD的端點M、D的距離分別為其他各相鄰等分點之間距離的二分之一。對第一行右提示符的結(jié)束點F和最后一行右提示符的結(jié)束點N確定的線段FN進行按四一七條碼的行數(shù)等分,等分點離線段FN的端點F、N的距離分別為其他各相鄰等分點之間距離的二分之一。然后,依次完成兩線段之間所對應的等分點之間的線段按行進行光柵掃描得到其對應的像素值,自此完成了四一七條碼每一行的采樣(見示意圖3、示意圖6);1.5)基于亞像素邊緣檢測的思想,將光柵掃描所得到的每一行線段上的像素值在一維方向放大一定的倍數(shù)并用一定的插值方法完成插值處理。對插值后的像素值利用局部二值化的思想,對其完成二值化處理。此完成了四一七條碼每一行上的符號字符的分割。1.6)將分割后的四一七條碼的每一行符號字符按照符號字符的特征(以條開始,以空結(jié)束,條空相間排列,共四個條和四個空)將其對應的連續(xù)相同像素的個數(shù)規(guī)范化為標準的符號字符。1.7)由步驟1.6)得到的符號字符查找其對應的碼字,根據(jù)糾錯等級進行譯碼和糾T曰O步驟1.1)中采用類似折半查找的思想,利用跳變的次數(shù),結(jié)合起始符和終止符的紋理信息,確定最后兩次符合起始符紋理信息和最后兩次符合終止符紋理信息時的開始和結(jié)束共八個點A、B、C、D、E、F、G、H步驟如下a)在包含四一七條碼圖像的整幅圖像高的二分之一處,在水平方向上按行從左到右掃描,根據(jù)像素值的跳變次數(shù)和四一七條碼起始符的紋理信息,獲得一段像素值。b)若所得的像素值規(guī)范化為符號字符后符合起始符的符號字符特征,則記錄該段像素值的起始點和終止點。c)如果所得的像素值規(guī)范化為符號字符后不符合起始符的符號字符特征,則繼續(xù)在包括四一七條碼整幅圖像的上半部分和下半部分分別重復步驟a)、b)、c),每次均在按上一步查找的圖像高度范圍內(nèi)的二分之一處繼續(xù)查找,直到找到最后兩次符合四一七條碼起始符紋理信息的兩條線段的四個端點A、B、C、D。d)在包含四一七條碼圖像的整幅圖像高的二分之一處,在水平方向上按行從右到左掃描,根據(jù)像素值的跳變次數(shù)和四一七條碼終止符的紋理信息,獲得一段像素值。e)若所得的像素值規(guī)范化為符號字符后符合終止符的符號字符特征,則記錄該段像素值的起始點和終止點。f)如果所得的像素值規(guī)范化為符號字符后不符合終止符的符號字符特征,則繼續(xù)在包括四一七條碼整幅圖像的上半部分和下半部分分別重復步驟d)、e)、f),每次均在按上一步查找的圖像高度范圍內(nèi)的二分之一處繼續(xù)查找,直到找到最后兩次符合四一七條碼終止符紋理信息的兩條線段的四個端點E、F、G、H。如果在水平方向上,按照上述方法,進行了若干次數(shù)后沒有出現(xiàn)一次是符合起始符紋理信息或終止符紋理信息的情況,則在垂直方向進行和在水平方向類似的查找。對于截斷四一七條碼的情況,可以確定六個點A、B、C、D、F1、G1(示意圖4)。其中點A、B、C、D四個點的確定步驟與示意圖1中的點A、B、C、D的確定步驟相同。點Fl、Gl的確定方法為從上到下依次從左向右掃描,確定第一次和最后一次符合截斷四一七條碼結(jié)尾紋理信息和跳變次數(shù)的兩個點Fl、Gl。步驟1.2)中確定四一七條碼最左下角的點P和最右上角的點Q采用如下步驟由于存在可能的誤差,利用如1.2)步驟中所描述的點A、C所在的直線和點D、G所在的直線的交點,然后在該交點附近沿著直線AC和直線DG搜索,結(jié)合四一七條碼起始符,判斷一個較準確的點作為點P。利用如1.2)步驟中所描述的點E、G所在的直線和點A、F所在的直線的交點,然后在該交點附近沿著直線EG和直線AF搜索,結(jié)合四一七條碼終止符,判斷一個較準確的點作為點Q。對于截斷四一七條碼的情況,四一七條碼最左下角點Pl的確定方法同上述點P的確定方法(示意圖5)。步驟1.3)中所述的利用第一行和最后一行的左、右行提示符信息計算四一七條碼功能信息參數(shù)失效或截斷四一七條碼的情況下,可采用從點M沿線段MD向下,朝平行于直線AF的方向根據(jù)四一七條碼的左提示符的紋理信息和跳變的次數(shù),確定任意三個連續(xù)的左行提示符所對應的碼字,或者從點D沿線段MD向上,朝平行于直線DG的方向根據(jù)四一七條碼的左行提示符的紋理信息和跳變次數(shù),確定任意三個連續(xù)的左行提示符所對應的碼字(示意圖2、示意圖5)。根據(jù)四一七條碼的編碼規(guī)則,可計算出四一七條碼的功能信息參數(shù)。步驟1.4)中,在對線段MD和線段FN進行按四一七條碼的行數(shù)等分過程中,由于考慮到求取點M、D、F、N這四個點過程中可能存在誤差,則將點M和點D分別沿直線AF和直線DG向四一七條碼的內(nèi)部移動1或2個像素,同樣將點F、N沿直線AF和直線DG向四一七條碼的內(nèi)部移動1或2個像素。對于截斷四一七條碼的情況,將線段FlGl按四一七條碼的行數(shù)等分過程中,首先將點Fl沿直線AFl向四一七條碼內(nèi)部移動若干個像素到與其相鄰的四一七條碼空的結(jié)束出處,將點Gl沿直線DGl向四一七條碼內(nèi)部移動若干個像素到與其相鄰的四一七條碼空的結(jié)束處,然后將其按四一七條碼的行數(shù)等分,等分點離線段FlGl的端點F1、G1的距離分別為其他各相鄰等分點之間距離的二分之一。權(quán)利要求1.一種基于亞像素邊緣檢測的四一七條碼識別方法,其特征是包括以下步驟1.1)對采集的四一七條碼圖像進行灰度化處理,采用類似折半查找的思想,分別在水平方向上從左到右和從右到左進行光柵掃描,掃描過程中,若發(fā)現(xiàn)相鄰像素的像素值發(fā)生明顯變化,則稱為一次跳變;利用跳變的次數(shù),結(jié)合起始符和終止符的紋理信息,確定最后兩次符合起始符紋理信息和最后兩次符合終止符紋理信息時的開始和結(jié)束共八個點A、B、C、D、E、F、G、H;1.2)利用八個點中的從左向右掃描得到的起始符最左邊的兩個點A、C所確定的直線與八個點中最下方的兩個點D、G所確定的直線的交點,確定四一七條碼最左下角的點P;利用八個點中的從右向左掃描得到的終止符最右邊兩點E、G所確定的直線與八個點中最上方的兩個點A、F所確定的直線的交點,確定四一七條碼最右上角的點Q,自此完成四一七條碼的定位;1.3)根據(jù)八個點中的點B、D所在的直線與點A、F所在直線的交點M確定四一七條碼第一行左提示符的起始點,利用點F、H所在的直線與點D、G所在的直線的交點N確定最后一行右提示符的終止點;分別由點M開始沿著點A、F所在的直線向右掃描和由點D開始沿著點D、G所在的直線向右掃描,根據(jù)左行提示符的紋理信息和跳變的次數(shù),確定第一行和最后一行的左行提示符對應的兩個符號字符,進而查找其對應的碼字;分別由點F開始沿著點A、F所在的直線向左掃描和由點N開始沿著點D、G所在直線向左掃描,根據(jù)右行提示符的紋理信息和跳變的次數(shù),確定第一行和最后一行的右行提示符對應的兩個符號字符,進而查找其對應的兩個碼字;根據(jù)得到的第一行和最后一行的左、右行提示符所對應的四個碼字,按照四一七條碼的編碼規(guī)則確定四一七條碼的如下功能信息參數(shù)四一七條碼的行數(shù)、列數(shù)和糾錯等級;1.4)對在步驟1.1)和步驟1.3)確定的第一行左提示符開始點M和最后一行左提示符開始點D所確定的線段MD進行按四一七條碼的行數(shù)等分;其中,等分點離線段MD的端點M、D的距離分別為其他各相鄰等分點之間距離的二分之一;對第一行右提示符的結(jié)束點F和最后一行右提示符的結(jié)束點N確定的線段FN進行按四一七條碼的行數(shù)等分,等分點離線段FN的端點F、N的距離分別為其它各相鄰等分點之間距離的二分之一;然后,依次完成兩線段之間所對應的等分點之間的線段按行進行光柵掃描得到其對應的像素值,自此完成了四一七條碼每一行的采樣;1.5)基于亞像素邊緣檢測的思想,將光柵掃描所得到的每一行線段上的像素值在一維方向放大一定的倍數(shù)并用一定的插值方法完成插值處理;對插值后的像素值利用局部二值化的思想,對其完成二值化處理;從而完成四一七條碼每一行上的符號字符的分割;1.6)將分割后的四一七條碼的每一行符號字符按照符號字符的特征將其對應的連續(xù)相同像素的個數(shù)規(guī)范化為標準的符號字符;上述符號字符的特征是以條開始,以空結(jié)束,條空相間排列,共四個條和四個空;1.7)由步驟1.6)得到的符號字符查找其對應的碼字,根據(jù)糾錯等級進行譯碼和糾錯。2.根據(jù)權(quán)利所要求1所述的一種基于亞像素邊緣檢測的四一七條碼識別方法,其特征是所述步驟1.1)中采用類似折半查找的思想,利用跳變的次數(shù),結(jié)合起始符和終止符的紋理信息,確定最后兩次符合起始符紋理信息和最后兩次符合終止符紋理信息時的開始和結(jié)束共八個點A、B、C、D、E、F、G、H步驟如下a)在包含四一七條碼圖像的整幅圖像高的二分之一處,在水平方向上按行從左到右掃描,根據(jù)像素值的跳變次數(shù)和四一七條碼起始符的紋理信息,獲得一段像素值;b)若所得的像素值規(guī)范化為符號字符后符合起始符的符號字符特征,則記錄該段像素值的起始點和終止點;c)如果所得的像素值規(guī)范化為符號字符后不符合起始符的符號字符特征,則繼續(xù)在包括四一七條碼整幅圖像的上半部分和下半部分分別重復步驟a)、b)、c),每次均在按上一步查找的圖像高度范圍內(nèi)的二分之一處繼續(xù)查找,直到找到最后兩次符合四一七條碼起始符紋理信息的兩條線段的四個端點A、B、C、D;d)在包含四一七條碼圖像的整幅圖像高的二分之一處,在水平方向上按行從右到左掃描,根據(jù)像素值的跳變次數(shù)和四一七條碼終止符的紋理信息,獲得一段像素值;e)若所得的像素值規(guī)范化為符號字符后符合終止符的符號字符特征,則記錄該段像素值的起始點和終止點;f)如果所得的像素值規(guī)范化為符號字符后不符合終止符的符號字符特征,則繼續(xù)在包括四一七條碼整幅圖像的上半部分和下半部分分別重復步驟d)、e)、f),每次均在按上一步查找的圖像高度范圍內(nèi)的二分之一處繼續(xù)查找,直到找到最后兩次符合四一七條碼終止符紋理信息的兩條線段的四個端點E、F、G、H;如果在水平方向上,按照上述方法,進行了若干次數(shù)后沒有出現(xiàn)一次是符合起始符紋理信息或終止符紋理信息的情況,則在垂直方向進行和在水平方向類似的查找。3.根據(jù)權(quán)利所要求1所述的一種基于亞像素邊緣檢測的四一七條碼識別方法,其特征是所述步驟1.2)中確定四一七條碼最左下角的點P和最右上角的點Q采用如下步驟由于存在可能的誤差,利用如1.2)步驟中所描述的點A、C所在的直線和點D、G所在的直線的交點,然后在該交點附近沿著直線AC和直線DG方向搜索,結(jié)合四一七條碼起始符,判斷一個較準確的點作為點P;利用如1.2)步驟中所描述的點E、G所在的直線和點A、F所在的直線的交點,然后在該交點附近沿著直線EG和直線AF搜索,結(jié)合四一七條碼終止符,判斷一個較準確的點作為點Q。4.根據(jù)權(quán)利所要求1所述的一種基于亞像素邊緣檢測的四一七條碼識別方法,其特征是所述步驟1.3)中所述的利用第一行和最后一行的左行提示符、右行提示符信息計算四一七條碼功能信息參數(shù)失效或截斷四一七條碼的情況下,則采用從點M沿線段MD向下,朝平行于直線AF的方向根據(jù)四一七條碼的左提示符的紋理信息和跳變的次數(shù),確定任意三個連續(xù)的左行提示符所對應的碼字,或者從點D沿線段MD向上,朝平行于直線DG的方向根據(jù)四一七條碼的左行提示符的紋理信息和跳變次數(shù),確定任意三個連續(xù)的左行提示符所對應的碼字;根據(jù)四一七條碼的編碼規(guī)則,計算出四一七條碼的功能信息參數(shù)。5.根據(jù)權(quán)利所要求1所述的一種基于亞像素邊緣檢測的四一七條碼識別方法,其特征是所述步驟1.4)中,在對線段MD和線段FN進行按四一七條碼的行數(shù)等分過程中,由于考慮到求取點M、D、F、N這四個點過程中可能存在誤差,則將點M和點D分別沿直線AF和直線DG向四一七條碼的內(nèi)部移動1或2個像素,同樣將點F、N沿直線AF和直線DG向四一七條碼的內(nèi)部移動1或2個像素。6.根據(jù)權(quán)利所要求2所述的一種基于亞像素邊緣檢測的四一七條碼識別方法,其特征是所述對于截斷四一七條碼的情況,則確定六個點A、B、C、D、FUGl;其中點A、B、C、D四個點的確定方法與上述點A、B、C、D的確定方法相同;點F1、G1的確定方法為從上到下依次從左向右掃描,確定第一次和最后一次符合截斷四一七條碼結(jié)尾紋理信息和跳變次數(shù)的兩個點為點Fl、點Gl。7.根據(jù)權(quán)利所要求3所述的一種基于亞像素邊緣檢測的四一七條碼識別方法,其特征是所述對于截斷四一七條碼的情況,四一七條碼最左下角點Pi的確定方法同上述點P的確定方法。8.根據(jù)權(quán)利所要求5所述的一種基于亞像素邊緣檢測的四一七條碼識別方法,其特征是所述對于截斷四一七條碼的情況,將線段FlGl按四一七條碼的行數(shù)等分過程中,首先將點Fl沿直線AFl向四一七條碼內(nèi)部移動若干個像素到與其相鄰的四一七條碼空的結(jié)束處,將點Gl沿直線DGl向四一七條碼內(nèi)部移動若干個像素到與其相鄰的四一七條碼空的結(jié)束處,然后將其按四一七條碼的行數(shù)等分,等分點離線段FlGl的端點Fl、Gl的距離分別為其他各相鄰等分點之間距離的二分之一。全文摘要本發(fā)明公開了一種高效的基于亞像素邊緣檢測的四一七條碼識別方法。針對傳統(tǒng)四一條碼識別方法處理速度慢、抗干擾性能差、誤差大等缺點,本發(fā)明引入基于亞像素邊緣檢測的識別方法。本發(fā)明能夠快速、準確、高效地識別四一七條碼,特別是在四一七條碼圖像分辨率低的情況下,該方法的識別效果十分顯著。當四一七條碼圖像模糊或打印質(zhì)量差的情況下,該方法對提高四一七條碼的識別率也有一定的效果。本方法也適用于截斷四一七條碼的情況。本發(fā)明四一七條碼識別方法具有很好的實時性,抗污損能力強,識別效率高,可廣泛應用于智能手機等終端嵌入式設備中。文檔編號G06K7/10GK102521559SQ201110392408公開日2012年6月27日申請日期2011年12月1日優(yōu)先權(quán)日2011年12月1日發(fā)明者唐鵬,王俊峰,袁軍,陳懿,高琳申請人:四川大學