專利名稱:一種條碼識別方法及裝置的制作方法
一種條碼識別方法及裝置技術(shù)領(lǐng)域
本發(fā)明屬于條碼識別技術(shù)領(lǐng)域,尤其涉及一種條碼識別方法及裝置。
技術(shù)背景
條碼技術(shù)是在信息技術(shù)和計(jì)算機(jī)技術(shù)基礎(chǔ)上發(fā)展起來的一門集編碼、印刷、識別、 數(shù)據(jù)采集和處理于一身的新興技術(shù)。由于其識別快速、準(zhǔn)確、可靠以及成本低等優(yōu)點(diǎn),被廣泛應(yīng)用于商業(yè)、圖書管理、倉庫、郵電、交通和工業(yè)控制等領(lǐng)域,并且勢必在逐漸興起的“物聯(lián)網(wǎng)”應(yīng)用中發(fā)揮重大的作用。
常見電子條碼為廣泛采用的一維條碼,國際上對其進(jìn)行的編碼標(biāo)準(zhǔn)有EAN-8, EAN-13,UPC-A及UPC-E等各種編碼標(biāo)準(zhǔn),這些標(biāo)準(zhǔn)應(yīng)用已經(jīng)相當(dāng)廣泛,然而,其內(nèi)含的信息量相當(dāng)少,其只限于使用數(shù)字,在這信息爆炸的時(shí)代已不再使用。隨著信息技術(shù)及硬件發(fā)展的進(jìn)步,使我們得以擴(kuò)展電子條碼的容量,因而產(chǎn)生了二維條碼的標(biāo)準(zhǔn)及技術(shù),常見的二維條碼的國際標(biāo)準(zhǔn)有PDF417、Data Matrix、MaxiCode及QR Code等各種標(biāo)準(zhǔn),除了數(shù)字及符號外,有些編碼方式還可以加入各國語言文字集。目前,世界上約有225種以上的一維條形碼,每種一維條碼都有自己的一套編碼規(guī)格,以規(guī)定每個(gè)字母(可能是文字或數(shù)字)是由幾個(gè)線條(Bar)及幾個(gè)空白(Space)組成,以及字母的排列。一般較流行的一維條碼有39碼, EAN碼,UPC碼,1 碼,以及專門用于書刊管理的ISBN,ISSN等。
現(xiàn)有條碼識別方法一般只能對已知是一維或者二維的條碼進(jìn)行識別,或者只對一維或者二維條碼的一、二種類型條碼進(jìn)行識別判斷,而且識別性能不高。發(fā)明內(nèi)容
本發(fā)明實(shí)施例的目的在于提供一種條碼識別方法及裝置,旨在解決由于現(xiàn)有技術(shù)沒有實(shí)現(xiàn)對未知維數(shù)的條碼進(jìn)行識別判斷,且識別性能不高的問題。
本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,一種條碼識別方法,所述方法包括下述步驟
獲取二值化處理后的待識別條碼圖像及所述圖像的多個(gè)掃描起始點(diǎn)坐標(biāo);
按照預(yù)設(shè)的所述多個(gè)掃描起始點(diǎn)的順序,依次從每一個(gè)掃描起始點(diǎn)開始,向上、 下、左、右四個(gè)方向分別對該圖像進(jìn)行逐行與逐列掃描,獲取所述圖像中條碼的外接矩形;
根據(jù)所述外接矩形的特征和/或所述外接矩形中條碼的特征信息,判斷獲取所述條碼的維數(shù)。
本發(fā)明實(shí)施例的另一目的在于提供一種條碼識別裝置,所述裝置包括
掃描起始點(diǎn)獲取單元,用于獲取二值化處理后的待識別條碼圖像及所述圖像的多個(gè)掃描起始點(diǎn)坐標(biāo);
外接矩形獲取單元,用于按照預(yù)設(shè)的所述多個(gè)掃描起始點(diǎn)的順序,依次從每一個(gè)掃描起始點(diǎn)開始,向上、下、左、右四個(gè)方向分別對該圖像進(jìn)行逐行與逐列掃描,獲取所述圖像中條碼的外接矩形;以及
維數(shù)獲取單元,用于根據(jù)所述外接矩形的特征和/或所述外接矩形中條碼的特征信息,判斷獲取所述條碼的維數(shù)。
本發(fā)明實(shí)施例通過獲取二值化處理后的待識別條碼圖像及該圖像的多個(gè)掃描起始點(diǎn)坐標(biāo),按照預(yù)設(shè)的該多個(gè)掃描起始點(diǎn)的順序,依次從每一個(gè)掃描起始點(diǎn)開始,向上、下、 左、右四個(gè)方向分別對該圖像進(jìn)行逐行與逐列掃描,獲取該圖像中條碼的外接矩形;根據(jù)該外接矩形的特征和/或該外接矩形中條碼的特征信息,判斷獲取該條碼的維數(shù),解決了由于現(xiàn)有技術(shù)沒有實(shí)現(xiàn)對未知維數(shù)的條碼進(jìn)行識別判斷,且識別性能不高的問題,從而能夠自動識別條碼維數(shù),識別性能也得到提高。
圖1是本發(fā)明第一實(shí)施例提供的條碼識別方法的實(shí)現(xiàn)流程圖2是本發(fā)明第一實(shí)施例提供的條碼識別方法的實(shí)現(xiàn)流程圖3是本發(fā)明實(shí)施例提供的一維條碼的示意圖4a、4b分別是本發(fā)明實(shí)施例提供的一維條碼與二維條碼的示意圖5是本發(fā)明第一實(shí)施例提供的條碼識別方法的實(shí)現(xiàn)流程圖6是本發(fā)明第二實(shí)施例提供的條碼識別方法中最佳亮度值的獲取流程圖7是本發(fā)明第三實(shí)施例提供的條碼識別方法的實(shí)現(xiàn)流程圖8是本發(fā)明第四實(shí)施例提供的條碼識別裝置的結(jié)構(gòu)圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明實(shí)施例通過獲取待識別圖像的外接矩形,根據(jù)該外接矩形和/或該外接矩形中條碼的特征信息來獲取該圖像中條碼的維數(shù),實(shí)現(xiàn)了對未知維數(shù)的條碼進(jìn)行識別判斷以及對一幅圖像所包含的多個(gè)條碼的識別判斷,也使得識別性能得到提高。
本發(fā)明實(shí)施例提供了一種條碼識別方法,所述方法包括下述步驟
獲取二值化處理后的待識別條碼圖像及所述圖像的多個(gè)掃描起始點(diǎn)坐標(biāo);
按照預(yù)設(shè)的所述多個(gè)掃描起始點(diǎn)的順序,依次從每一個(gè)掃描起始點(diǎn)開始,向上、 下、左、右四個(gè)方向分別對該圖像進(jìn)行逐行與逐列掃描,獲取所述圖像中條碼的外接矩形;
根據(jù)所述外接矩形的特征和/或所述外接矩形中條碼的特征信息,判斷獲取所述條碼的維數(shù)。
本發(fā)明實(shí)施例還提供了一種條碼識別裝置,所述裝置包括
掃描起始點(diǎn)獲取單元,用于獲取二值化處理后的待識別條碼圖像及所述圖像的多個(gè)掃描起始點(diǎn)坐標(biāo);
外接矩形獲取單元,用于按照預(yù)設(shè)的所述多個(gè)掃描起始點(diǎn)的順序,依次從每一個(gè)掃描起始點(diǎn)開始,向上、下、左、右四個(gè)方向分別對該圖像進(jìn)行逐行與逐列掃描,獲取所述圖像中條碼的外接矩形;以及
維數(shù)獲取單元,用于根據(jù)所述外接矩形的特征和/或所述外接矩形中條碼的特征信息,判斷獲取所述條碼的維數(shù)。
本發(fā)明實(shí)施例通過獲取二值化處理后的待識別條碼圖像以及該圖像的多個(gè)掃描起始點(diǎn)坐標(biāo),按照預(yù)設(shè)的該多個(gè)掃描起始點(diǎn)的順序,依次從每一個(gè)掃描起始點(diǎn)開始,向上、 下、左、右四個(gè)方向分別對該圖像進(jìn)行逐行與逐列掃描,獲取該圖像中條碼的外接矩形;根據(jù)該外接矩形的特征和/或該外接矩形中條碼的特征信息,判斷獲取該條碼的維數(shù),實(shí)現(xiàn)了對未知維數(shù)的條碼進(jìn)行識別判斷以及對一幅圖像所包含的多個(gè)條碼的識別判斷,也提高了識別性能的目的。
以下結(jié)合具體實(shí)施例對本發(fā)明的具體實(shí)現(xiàn)進(jìn)行詳細(xì)描述
一維條碼又稱線形條碼,是由平行排列的多個(gè)“條”和“空”單元組成,條碼信息依靠條和空的不同寬度和位置來表達(dá)。二維條碼是由按一定規(guī)律在二維方向上分布的黑白相間的特定幾何圖形組成,其可以在二維方向上表達(dá)信息。二維條碼可以分為行列式二維條碼和矩陣式二維條碼。行列式二維條碼是由多行短截的一維條碼堆疊而成,代表性的行列式二維條碼包括PDF417、C0de49、C0de 16k等。行列式二維條碼信息表示方法與一維條碼類似,也是依靠條和空的不同寬度和位置來表達(dá)。矩陣式二維條碼是由按預(yù)定規(guī)則分布于矩陣中的黑、白模塊組成,代表性的矩陣式二維條碼包括QR碼、Data Matrix碼、Maxi碼、 htec碼、漢信碼等。
實(shí)施例一
圖1示出了本發(fā)明第一實(shí)施例提供的條碼識別方法的實(shí)現(xiàn)流程,詳述如下
在步驟SlOl中,獲取二值化處理后的待識別條碼圖像以及該圖像的多個(gè)掃描起始點(diǎn)坐標(biāo)。
在具體實(shí)施過程中,首先從攝像頭獲取待識別的彩色條碼圖像,并將該彩色條碼圖像進(jìn)行灰度化處理,接著獲取灰度化處理后的該圖像,計(jì)算該圖像的直方圖,由于條碼一般是黑色亮度和白色亮度組成,則在該直方圖中將出現(xiàn)靠近黑色亮度區(qū)域的波峰和一個(gè)靠近白色亮度區(qū)域的波峰,因此可以確定兩個(gè)波峰之間的一個(gè)最佳亮度值,對該圖像進(jìn)行分割,若兩個(gè)峰值的距離比較接近,小于預(yù)設(shè)的距離值,則認(rèn)為該圖像的對比度不夠,不存在條碼的條件;兩個(gè)峰值比較遠(yuǎn),則認(rèn)為存在條碼,獲取該兩個(gè)峰值中間的某個(gè)最佳亮度值, 以該值作為圖像二值化的判斷閾值,將圖像中大于閾值的灰度值設(shè)為1,否則為0,從而獲取二值化處理后的待識別圖像,進(jìn)而可以獲取該圖像的多個(gè)掃描起始點(diǎn)坐標(biāo),該圖像的多個(gè)掃描起始點(diǎn)坐標(biāo)包括所述圖像的中心點(diǎn)坐標(biāo)等,例如以(Xe,Yc)表示該中心點(diǎn)的坐標(biāo)。 具體地,首先需要對待識別條碼圖像進(jìn)行預(yù)設(shè)個(gè)數(shù)的分塊,獲取分塊后每一塊圖像的中心點(diǎn),則分塊后每一塊圖像的中心點(diǎn)即為該圖像的掃描起始點(diǎn),則獲取了該圖像的多個(gè)掃描起始點(diǎn),在實(shí)際識別過程中,可以將該待識別條碼圖像分成四塊,獲取分塊后該四塊分塊圖像的中心點(diǎn),加上該整幅待識別圖像的中心點(diǎn),可以獲取5個(gè)掃描起始點(diǎn)。
具體地,獲取該作為圖像二值化的最佳亮度值或者閾值的具體過程如下實(shí)施例二所述,但不限于該實(shí)施例的獲取過程,在此不再贅述。
在本發(fā)明實(shí)施例中,由于現(xiàn)有的一維或者二維條碼是由灰度值為0的黑色和灰度值為1的白色組成,對圖像進(jìn)行二值化處理后,再進(jìn)行條碼的獲取及維數(shù)的判斷,使得結(jié)果更準(zhǔn)確。
在步驟S102中,按照預(yù)設(shè)的該多個(gè)掃描起始點(diǎn)的順序,依次從每一個(gè)掃描起始點(diǎn)開始,向上、下、左、右四個(gè)方向分別對該圖像進(jìn)行逐行與逐列掃描,獲取該圖像中條碼的外接矩形。
其中,該預(yù)設(shè)的該多個(gè)掃描起始點(diǎn)的順序可以根據(jù)用戶需要預(yù)先設(shè)定,比如可以將該多個(gè)掃描起始點(diǎn)所包括的該待識別圖像的中心點(diǎn)作為第一掃描起始點(diǎn),其他按照圖像的左上、右上、左下、右下的順序?qū)κS嗟膾呙杵鹗键c(diǎn)排序。
該步驟S102具體包括以下步驟,該待識別圖像的中心點(diǎn)坐標(biāo)為(Xc,Yc),如圖2所示
步驟S221中,獲取該多個(gè)掃描起始點(diǎn)的第一掃描起始點(diǎn)。
步驟S222中,從該掃描起始點(diǎn)開始,對該條碼圖像進(jìn)行逐行掃描,確定最小縱坐標(biāo)和最大縱坐標(biāo)。
具體地,以圖像的左上角為坐標(biāo)系X-Y的原點(diǎn)(0,0),水平向右為X方向,橫坐標(biāo)值從左至右逐漸增加,垂直方向?yàn)閅方向,縱坐標(biāo)從上到下逐漸增加。則從掃描起始點(diǎn)開始往下逐行掃描(水平掃描)該圖像,縱坐標(biāo)值逐漸增大,逐行加1,按照掃描順序,計(jì)算掃描方向上每一行圖像中出現(xiàn)像素值連續(xù)為1(表示白色)的個(gè)數(shù),若該個(gè)數(shù)大于預(yù)設(shè)的像素閾值,該預(yù)設(shè)的像素閾值可以為該條碼圖像每一行像素總個(gè)數(shù)的1/4,則認(rèn)為是條碼的邊界,條碼周圍是白色區(qū)域,此時(shí)該行對應(yīng)的縱坐標(biāo)即為最大的縱坐標(biāo)Ymax值,否則繼續(xù)掃描,獲取該Ymax。同樣,從掃描起始點(diǎn)開始往上逐行掃描該圖像,縱坐標(biāo)值逐漸較小,逐行減1,則按照掃描順序,計(jì)算掃描方向上每一行圖像中,出現(xiàn)像素值連續(xù)為1(表示白色)的個(gè)數(shù),若該個(gè)數(shù)大于預(yù)設(shè)的像素閾值,該預(yù)設(shè)的像素閾值可以為圖像每一行的像素總個(gè)數(shù)的1/4,則認(rèn)為是條碼的邊界,條碼周圍是白色區(qū)域,此時(shí)該行的縱坐標(biāo)即為最小的縱坐標(biāo) Ymin 值。
在具體實(shí)施過程中,對于條碼類型為一維的橫向水平條碼,此時(shí)獲取的Ymax值與 Ymin值范圍較小,而對于一維的豎向垂直條碼或者二維條碼,此時(shí)獲取的Ymax值與Ymin值范圍較大。
步驟S223中,從該掃描起始點(diǎn)開始,對該圖像進(jìn)行逐列掃描,確定最小橫坐標(biāo)和最大橫坐標(biāo)。
具體地,從該掃描起始點(diǎn)開始往左逐列掃描(垂直掃描)該圖像,橫坐標(biāo)值逐漸減小,逐列減1,按照掃描順序,計(jì)算掃描方向上每一列圖像中,出現(xiàn)像素值連續(xù)為1(表示白色)的個(gè)數(shù),若該個(gè)數(shù)大于預(yù)設(shè)的像素閾值,該預(yù)設(shè)的像素閾值可以為圖像每一列的像素總個(gè)數(shù)的1/4,則認(rèn)為是條碼的邊界,條碼周圍是白色區(qū)域,此時(shí)該列的橫坐標(biāo)即為最小的橫坐標(biāo)Xmin。同樣,從該掃描起始點(diǎn)開始往右逐列掃描(垂直掃描)該圖像,橫坐標(biāo)值逐漸增加,逐列加1,按照上述條件,可以獲取最大的橫坐標(biāo)值Xmax。
在具體實(shí)施過程中,對于條碼類型為一維的豎向垂直條碼,此時(shí)獲取的Xmax值與 Xmin值范圍較小,而對于一維的橫向水平條碼或者二維條碼,此時(shí)獲取的Xmax值與Xmin值范圍較大。
步驟S2M中,根據(jù)獲取的最大橫坐標(biāo)、最小橫坐標(biāo)、最大縱坐標(biāo)、最小縱坐標(biāo),獲取并保存該條碼的外接矩形。
具體地,以(Xmin,Ymin)、(Xmax, Ymin)、(Xmin、Ymax)、(Xmax, Ymax)為四邊形的四個(gè)頂點(diǎn),確定外接矩形。
步驟S225中,判斷該掃描起始點(diǎn)是否為該多個(gè)掃描起始點(diǎn)的最后一個(gè)掃描起始點(diǎn),是,則執(zhí)行步驟S227,退出,否,則執(zhí)行步驟S2^。
步驟中,獲取該多個(gè)掃描起始點(diǎn)的下一掃描起始點(diǎn),并返回執(zhí)行步驟S222。
在本發(fā)明實(shí)施例中,該條碼識別方法支持一幅圖像中多個(gè)條碼的識別,當(dāng)該圖像中存在多個(gè)條碼時(shí),利用上述步驟S221至S227可以獲取該圖像中每個(gè)條碼的外接矩形。另外,如果用戶只需要識別該待識別圖像中心附近的條碼,則可以設(shè)定以將該多個(gè)掃描起始點(diǎn)所包括的該待識別圖像的中心點(diǎn)作為第一掃描起始點(diǎn),從而在獲取第一個(gè)外接矩形后就直接退出,執(zhí)行下述步驟S103即可,同樣可以根據(jù)實(shí)際需要,獲取該待識別圖像其他部位附近的條碼的外接矩形,從而提高識別效率。
在步驟S103中,根據(jù)該外接矩形的特征和/或該外接矩形中條碼的特征信息,判斷獲取該條碼的維數(shù)。
在具體實(shí)施過程中,該外接矩形的特征包外接矩形的長、高等,該外接矩形的長是指外接矩形在χ方向上的長度或者是Xmax與Xmin之間的距離,外接矩形的高是指外接矩形在Y方向上的長度Ymax與Ymin之間的距離,在獲取條碼的外接矩形后,若該外接矩形的長(Xmax與Xmin之間的距離)小于預(yù)設(shè)的長度值,或該外接矩形的高(Ymax與Ymin之間的距離)小于預(yù)設(shè)的高度值時(shí),則認(rèn)為該條碼不是二維條碼,確定該條碼的維數(shù)是一;當(dāng)該外接矩形的長小于預(yù)設(shè)的長度值,且該外接矩形的高小于預(yù)設(shè)的高度值時(shí),則認(rèn)為不存在條碼;當(dāng)該外接矩形的長小于預(yù)設(shè)的長度值,而該外接矩形的高大于預(yù)設(shè)的高度值時(shí),則認(rèn)為該一維條碼為豎直型條碼,如圖3所示;當(dāng)該外接矩形的高小于預(yù)設(shè)的高度值,而該外接矩形的長大于預(yù)設(shè)的長度值時(shí),則認(rèn)為該一維條碼為水平型條碼,而不是二維條碼;若該外接矩形的長大于預(yù)設(shè)的長度值,且該外接矩形的高大于預(yù)設(shè)的高度值時(shí),則需要進(jìn)一步結(jié)合該條碼的特征信息來確定該條碼的維數(shù),該條碼的特征信息是指該條碼的條空寬度信息,包括條空寬度值,條空分布信息等,該條空分布信息是指任意2行或者多行的條空分布是否相同等。
具體地,若該外接矩形的長大于預(yù)設(shè)的長度值,且該外接矩形的高大于預(yù)設(shè)的高度值時(shí),可以隨機(jī)多次垂直或者水平掃描該外接矩形中任意2列或者2行條碼,若該2列條碼中存在相同的條空寬度信息或者該2行條碼中存在相同的條空寬度信息,則認(rèn)為該條碼為一維條碼,如圖如所示,且若各行條空寬度基本上相等,則認(rèn)為條碼是水平的;若各列條空寬度基本上相等,則認(rèn)為條碼是垂直的,否則認(rèn)為該條碼為二維條碼,如圖4b所示,該掃描的次數(shù)可以根據(jù)用戶需要設(shè)定,掃描次數(shù)越多,數(shù)據(jù)的可靠性越穩(wěn)定,判斷結(jié)果越準(zhǔn)確。
另外,在確定該條碼為一維條碼后,根據(jù)該2列或者2行條碼中相同的條空寬度的條空線的方向,若該條空線的方向?yàn)榇怪被蛘咂虼怪狈较颍瑒t在以后條碼種類判定時(shí), 可以只進(jìn)行垂直掃描,具體可以隔列進(jìn)行從上到下與從下到上垂直交替掃描,就可以確定該條碼的類型,同樣,若該條空線的方向?yàn)樗交蛘咂蛩椒较颍瑒t在以后條碼種類判定時(shí),可以只進(jìn)行水平掃描,具體可以隔行進(jìn)行從左到右與從右到左水平交替掃描,從而不管條碼順著放,倒著放,旋轉(zhuǎn)著放,都可以對其類型進(jìn)行識別,使得該確定該一維條碼的類型的方法具有較強(qiáng)的適應(yīng)性,且能夠提高條碼類型的識別速度。
在本發(fā)明實(shí)施例中,該條碼識別方法支持一幅圖像中多個(gè)條碼的識別,當(dāng)該圖像中存在多個(gè)條碼時(shí),按照檢測到該多個(gè)條碼的順序,判斷獲取該多個(gè)條碼的維數(shù),具體地, 首先需要對待識別條碼圖像進(jìn)行預(yù)設(shè)個(gè)數(shù)的分塊,比如分成五塊,獲取分塊后每一塊圖像8的中心點(diǎn),則在對待識別條碼圖像進(jìn)行二值化處理后,從每一塊圖像的中心點(diǎn)開始,也即從掃描起始點(diǎn)開始,向上、下、左、右四個(gè)方向分別對該圖像進(jìn)行逐行與逐列掃描,獲取該圖像中每個(gè)條碼的外接矩形,接著逐個(gè)獲取該每個(gè)條碼的外接矩形的特征和/或該外接矩形中條碼的特征信息,根據(jù)每個(gè)條碼的外接矩形的特征和/或該外接矩形中條碼的特征信息判斷獲取該條碼的維數(shù),由于在識別一幅圖像所包含的多個(gè)條碼時(shí),預(yù)先對條碼圖像進(jìn)行預(yù)設(shè)個(gè)數(shù)的分塊,再獲取分塊后每一塊圖像的中心點(diǎn)或者掃描起始點(diǎn),可以保證所獲取的掃描起始點(diǎn)落在該多個(gè)條碼中,從而可以進(jìn)行下一步的條碼維數(shù)識別,也使得該方法能夠適應(yīng)多種條碼的應(yīng)用場景,具有較強(qiáng)的自適應(yīng)性。
該條碼識別方法還包括以下步驟,如圖5所示
在S501中,當(dāng)判斷該條碼的維數(shù)為一維時(shí),根據(jù)該外接矩形中條碼的特征信息, 或者對該圖像進(jìn)行預(yù)處理后獲取的條空信息,判斷預(yù)設(shè)的多種條碼類型表中是否存在匹配的條空信息。
具體地,在確定該條碼為一維條碼后,根據(jù)已經(jīng)獲取的該外接矩形中條碼的特征信息,可以判斷預(yù)設(shè)的多種條碼類型表中是否存在匹配的條空信息,如無法判斷則在確定該條碼為一維條碼后,也可以采用1維圖像邊緣處理方法處理該條碼圖像及自動去噪功能等預(yù)處理操作,以更精確的獲取該一維條碼的條空信息,該條空信息為通過對該一維條碼按照條空線的方向進(jìn)行垂直或者水平掃描等獲取的多行條空的特征信息,也即進(jìn)一步獲取預(yù)處理后該條碼的條空寬度信息及條空線的方向。
其中,該預(yù)設(shè)的多種條碼類型表為在識別條碼之前預(yù)先配置,配置有多種類型的條碼及對應(yīng)的條碼特征,以方便在進(jìn)行條碼的識別時(shí)使用,且用戶可以根據(jù)需要隨時(shí)添加其他類型的條碼至該類型表中,具有較好的擴(kuò)展性。該表中各條碼類型放置根據(jù)使用的條碼類型的頻率排序,也即配置各條碼的檢測識別優(yōu)先級別,使得在當(dāng)前圖像中檢測到的條碼,其配置的優(yōu)先級最高時(shí),則在獲取該條碼的類型后,則不必繼續(xù)檢測后面的類型的條碼,從而提高了條碼識別速度。
在S502中,當(dāng)存在匹配的條空信息時(shí),獲取與該匹配的條空信息對應(yīng)的條碼類型。
在S503中,根據(jù)該條碼類型對該條碼進(jìn)行識別,并輸出識別結(jié)果。
在具體實(shí)施過程中,假如當(dāng)前圖像的條碼是eanl3,則進(jìn)行eanl3類型的條碼識別,圖3為eanl3類型條碼圖像。根據(jù)該條碼多行的條空寬度信息確定最終的類型結(jié)果,并將該結(jié)果輸出。
在本發(fā)明實(shí)施例中,該一維條碼類型的判斷方法通過先對條碼進(jìn)行預(yù)處理,如邊緣檢測、去噪等,再進(jìn)行按照條空線方向的多行掃描,獲取條空信息,結(jié)合該條空信息與預(yù)設(shè)的多種條碼類型表,得到條碼的類型結(jié)果,使得條碼識別精度得到提高,誤識率得到降低。
該條碼識別方法還包括對二維條碼的類型判斷步驟,其具體實(shí)現(xiàn)過程如下實(shí)施例三所述,在此不再贅述。
實(shí)施例二
圖6示出了本發(fā)明第二實(shí)施例提供的條碼識別方法中最佳亮度值的獲取流程,具體為對待識別的彩色圖像進(jìn)行灰度化處理,獲取該灰度圖像的直方圖后,對該圖像進(jìn)行二值化處理(二值為0、1),獲取作為二值化的最佳亮度值或者閾值的過程,但不限于該實(shí)施例的獲取過程,詳述如下
在步驟S601中,獲取該直方圖中的第一峰值以及該第一峰值對應(yīng)的第一灰度值。
具體地,該第一峰值為該灰度圖像中出現(xiàn)最多的某一灰度值的個(gè)數(shù),也即該直方圖中的最大值,以maxBucketCount表示,并獲取該最大值對應(yīng)的第一灰度值,也即該灰度圖像中出現(xiàn)最多的該某一灰度值,以firstPeak表示。另外,當(dāng)該灰度圖像中出現(xiàn)最多的灰度值不止一個(gè)時(shí),則可以取灰度值較小的灰度所對應(yīng)的峰值作為第一峰值。
在步驟S602中,獲取該直方圖中的第二峰值以及該第二峰值對應(yīng)的第二灰度值。
具體地,以i表示除灰度值firstPeak以外的其他灰度值,distanceToBiggest表示i到firstPeak的距離,也即灰度值差,hist0gram[i]表示該i對應(yīng)的直方圖值,也即該灰度圖像中出現(xiàn)灰度值i的個(gè)數(shù),則利用下述公式(1)獲取i對應(yīng)的峰值sCOre[i]
score [i] = histogram[i] ^distanceToBiggest A 2(1)
因而,利用公式(1)可以獲取除firstPeak以外的所有其他灰度值對應(yīng)的峰值, 則其中最大的峰值即為該直方圖中的第二峰值,且獲取該第二峰值對應(yīng)的第二灰度值,以 secondPeak 表不。
在步驟S603中,當(dāng)該第一灰度值大于該第二灰度值時(shí),交換該第一灰度值與該第二灰度值。
具體地,比較 firstPeak 和 secondPeak,如果 firstPeak 大于 secondPeak,則交換該兩個(gè)數(shù)據(jù),以確保firstPeak是小數(shù)據(jù),也即使得該firstPeak對應(yīng)的亮度值較小,靠近黑色,而secondPeak靠近白色區(qū)域。
在步驟S604中,判斷該第二灰度值與該第一灰度值的差值是否大于預(yù)設(shè)的距離值,是,則繼續(xù)執(zhí)行步驟S605,否則,執(zhí)行步驟S606,退出。
在本發(fā)明實(shí)施例中,根據(jù)實(shí)際試驗(yàn)獲取的數(shù)據(jù)可知,以numBuckets代表該灰度圖像的最大灰度值,若secondPeak減firstPeak的值小于等于(numBuckets/16),則說明該灰度圖像的對比度效果不好,圖像進(jìn)行二值化后所表示的內(nèi)容會與真實(shí)圖像的內(nèi)容有較大誤差,則說明該圖像中不存在條碼,也即若兩個(gè)峰值的距離比較接近,小于預(yù)設(shè)的距離值 numBuckets/16,則認(rèn)為該圖像的對比度不夠,不存在條碼的條件,此時(shí)則退出該條碼識別過程,否則繼續(xù)執(zhí)行步驟S605。
在步驟S605中,根據(jù)該第二灰度值與該第一灰度值,確定最佳二值化的閾值。
具體地,用j表示在該第二灰度值secondPeak與該第一灰度值firstPeak之間的灰度值,fromFirst代表j與firstPeak的距離,則利用下述公式(2)獲取j的波谷值 SCORE[j]
SCORE[j] = fromFirst Λ2氺(secondPeak—j)氺(maxBucketCount_histogram[j]) (2)
因而,利用公式(1)可以獲取在該第二灰度值secondPeak與該第一灰度值 firstPeak之間的灰度值所對應(yīng)的波谷值,從而確定其中最大的波谷值所對應(yīng)的灰度值即為所需要的用于圖像二值化的最佳亮度值或者閾值。
在本發(fā)明實(shí)施例中,該獲取最佳亮度值的方法使得該波谷更靠近白色區(qū)域,而不是靠近黑色區(qū)域,也即作為二值化的閾值更大,從而使得圖像二值化的效果更好,分割更為準(zhǔn)確,二值化后的待識別圖像更接近于真實(shí)的圖像所表示的內(nèi)容,進(jìn)而使得獲取圖像中的條碼以及條碼維數(shù)判斷的結(jié)果更準(zhǔn)確。
實(shí)施例三
圖7示出了本發(fā)明第三實(shí)施例提供的條碼識別方法中對二維條碼類型判斷的流程,詳述如下
在步驟S701中,當(dāng)判斷該條碼的維數(shù)為二維時(shí),判斷該外接矩形中是否存在與預(yù)設(shè)的多種條碼類型表中的一種類型的條碼特征相匹配的特征。
其中,該預(yù)設(shè)的多種條碼類型表為在識別條碼之前預(yù)先配置,配置有多種類型的條碼及對應(yīng)的條碼特征,以方便在進(jìn)行條碼的識別時(shí)使用,且用戶可以根據(jù)需要隨時(shí)添加或者其他類型的條碼至該類型表中,具有較好的擴(kuò)展性。該表中各條碼類型放置根據(jù)使用的條碼類型的頻率排序,也即配置各條碼的檢測識別優(yōu)先級別,使得在當(dāng)前圖像中檢測到的條碼,其配置的優(yōu)先級最高時(shí),則在獲取該條碼的類型后,則不必繼續(xù)檢測后面的類型的條碼,從而提高了條碼識別速度。
在步驟S702中,當(dāng)存在匹配的特征時(shí),獲取與該特征對應(yīng)的條碼類型。
在步驟S703中,根據(jù)該條碼類型對該條碼進(jìn)行識別,并輸出識別結(jié)果。
在具體實(shí)施過程中,當(dāng)該條碼為二維條碼時(shí),首先獲取該預(yù)設(shè)的多種條碼類型表中的第一種類型(優(yōu)先級最高)的條碼的特征,判斷在該外接矩形中是否存在匹配的該特征,是,則該預(yù)設(shè)的多種條碼類型表中的第一種類型(優(yōu)先級最高)的條碼即為該待識別條碼的類型,退出識別過程;否,則繼續(xù)獲取該預(yù)設(shè)的多種條碼類型表中的下一種類型條碼的特征,繼續(xù)重復(fù)上述步驟,直至存在匹配的特征時(shí)退出,或者該條碼外接矩形中不存在與預(yù)設(shè)的多種條碼類型表中的所有類型的二維條碼特征相匹配的特征時(shí)退出。
具體的,比如,首先獲取該預(yù)設(shè)的多種條碼類型表中的第一種類型(優(yōu)先級最高) 的條碼為QR碼,則該QR碼的條碼特征為定位探測器符號,則在條碼外接矩形4個(gè)點(diǎn)的周邊小分為區(qū)域里或者所有區(qū)域里,分別進(jìn)行定位探測器符號的搜索,若找不到,則搜索另一種二維條碼的條碼特征。
另外,也可以將預(yù)設(shè)的多種條碼類型表按照線性條碼和矩陣條碼進(jìn)行分類配置, 則在區(qū)分條碼類型的判斷過程中,可以層次進(jìn)行判斷,首先判斷該外接矩形中是否存在線性條碼的特征,是,則進(jìn)行具體的某一種線性條碼特征的判斷,否則,該條碼為矩陣條碼,同樣進(jìn)行具體的某一種矩陣條碼特征的判斷。在獲取條碼的類型以后,對該條碼按照現(xiàn)有技術(shù)進(jìn)行譯碼,以識別并輸出條碼所包含的信息。
在本發(fā)明實(shí)施例中,該對二維條碼類型判斷的方法結(jié)合了預(yù)設(shè)的多種條碼類型表以及外接矩形中條碼的特征,進(jìn)行條碼類型的判斷獲取,提高條碼識別速度。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,所述的程序可以存儲于一計(jì)算機(jī)可讀取存儲介質(zhì)中, 所述的存儲介質(zhì),如ROM/RAM、磁盤、光盤等。
實(shí)施例四
圖8示出了本發(fā)明第四實(shí)施例提供的條碼識別裝置的結(jié)構(gòu),為了便于說明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。
該條碼識別裝置包括掃描起始點(diǎn)獲取單元81、外接矩形獲取單元82以及維數(shù)獲取單元83,其中
掃描起始點(diǎn)獲取單元81,用于獲取二值化處理后的待識別條碼圖像及該圖像的多個(gè)掃描起始點(diǎn)坐標(biāo)。
在本發(fā)明實(shí)施例中,首先從攝像頭獲取待識別的彩色圖像,并將該彩色圖像進(jìn)行灰度化處理,接著獲取灰度化處理后的該圖像,計(jì)算該圖像的直方圖,由于條碼一般是黑色亮度和白色亮度組成,則在該直方圖中將出現(xiàn)靠近黑色亮度區(qū)域的波峰和一個(gè)靠近白色亮度區(qū)域的波峰,因此可以確定兩個(gè)波峰之間的一個(gè)最佳亮度值,對該圖像進(jìn)行分割,若兩個(gè)峰值的距離比較接近,小于預(yù)設(shè)的距離值,則認(rèn)為該圖像的對比度不夠,不存在條碼的條件;兩個(gè)峰值比較遠(yuǎn),則認(rèn)為存在條碼,獲取該兩個(gè)峰值中間的某個(gè)最佳亮度值,以該值作為圖像二值化的判斷閾值,將圖像中大于閾值的灰度值設(shè)為1,否則為0,從而利用掃描起始點(diǎn)獲取單元81獲取二值化處理后的待識別圖像及該圖像的多個(gè)掃描起始點(diǎn)坐標(biāo),該圖像的多個(gè)掃描起始點(diǎn)坐標(biāo)包括所述圖像的中心點(diǎn)坐標(biāo)等。具體地,首先需要對待識別條碼圖像進(jìn)行預(yù)設(shè)個(gè)數(shù)的分塊,獲取分塊后每一塊圖像的中心點(diǎn),則分塊后每一塊圖像的中心點(diǎn)即為該圖像的掃描起始點(diǎn),則獲取了該圖像的多個(gè)掃描起始點(diǎn),在實(shí)際識別過程中,可以將該待識別條碼圖像分成四塊,獲取分塊后該四塊分塊圖像的中心點(diǎn),加上該整幅待識別圖像的中心點(diǎn),可以獲取5個(gè)掃描起始點(diǎn)。
外接矩形獲取單元82,用于按照預(yù)設(shè)的該多個(gè)掃描起始點(diǎn)的順序,依次從每一個(gè)掃描起始點(diǎn)開始,向上、下、左、右四個(gè)方向分別對該圖像進(jìn)行逐行與逐列掃描,獲取該圖像中條碼的外接矩形。
在本發(fā)明實(shí)施例中,該預(yù)設(shè)的該多個(gè)掃描起始點(diǎn)的順序可以根據(jù)用戶需要預(yù)先設(shè)定,比如可以將該多個(gè)掃描起始點(diǎn)所包括的該待識別圖像的中心點(diǎn)作為第一掃描起始點(diǎn), 其他按照圖像的左上、右上、左下、右下的順序?qū)κS嗟膾呙杵鹗键c(diǎn)排序。利用外接矩形獲取單元82按照預(yù)設(shè)的該多個(gè)掃描起始點(diǎn)的順序,依次從每一個(gè)掃描起始點(diǎn)開始,對該條碼圖像進(jìn)行逐行掃描,確定最小縱坐標(biāo)和最大縱坐標(biāo),再從該掃描起始點(diǎn)開始,對該圖像進(jìn)行逐列掃描,確定最小橫坐標(biāo)和最大橫坐標(biāo),最后根據(jù)獲取的最大橫坐標(biāo)、最小橫坐標(biāo)、最大縱坐標(biāo)、最小縱坐標(biāo),可以獲取該條碼的外接矩形。
維數(shù)獲取單元83用于根據(jù)該外接矩形的特征和/或該外接矩形中條碼的特征信息,判斷獲取該條碼的維數(shù)。
該維數(shù)獲取單元83具體包括
第一判斷單元,用于當(dāng)該外接矩形的長小于預(yù)設(shè)的長度值,或該外接矩形的高小于預(yù)設(shè)的高度值時(shí),則該條碼的維數(shù)是一;
第二判斷單元,用于當(dāng)該外接矩形的長小于預(yù)設(shè)的長度值,且該外接矩形的高小于預(yù)設(shè)的高度值時(shí),則該圖像中不存在條碼;以及
第三判斷單元,用于當(dāng)該外接矩形的長大于預(yù)設(shè)的長度值,且該外接矩形的高大于預(yù)設(shè)的高度值時(shí),則根據(jù)該外接矩形中條碼的條空寬度信息,進(jìn)一步確定該條碼的維數(shù)是一或者二。
在本發(fā)明實(shí)施例中,該外接矩形的特征包外接矩形的長、高等,該外接矩形的長是指外接矩形在χ方向上的長度或者是Xmax與Xmin之間的距離,外接矩形的高是指外接矩形在Y方向上的長度Ymax與Ymin之間的距離。在獲取條碼的外接矩形后,若該外接矩形10/12 頁的長(Xmax與Xmin之間的距離)小于預(yù)設(shè)的長度值,或該外接矩形的高(Ymax與Ymin之間的距離)小于預(yù)設(shè)的高度值時(shí),則認(rèn)為該條碼不是二維條碼,確定該條碼的維數(shù)是一;當(dāng)該外接矩形的長小于預(yù)設(shè)的長度值,且該外接矩形的高小于預(yù)設(shè)的高度值時(shí),則認(rèn)為不存在條碼;當(dāng)該外接矩形的長小于預(yù)設(shè)的長度值,而該外接矩形的高大于預(yù)設(shè)的高度值時(shí),則認(rèn)為該一維條碼為豎直型條碼,如圖3所示;當(dāng)該外接矩形的高小于預(yù)設(shè)的高度值,而該外接矩形的長大于預(yù)設(shè)的長度值時(shí),則認(rèn)為該一維條碼為水平型條碼,而不是二維條碼;若該外接矩形的長大于預(yù)設(shè)的長度值,且該外接矩形的高大于預(yù)設(shè)的高度值時(shí),則需要進(jìn)一步結(jié)合該條碼的特征信息來確定該條碼的維數(shù),該條碼的特征信息是指該條碼的條空寬度信息,包括條空寬度值,條空分布信息等,該條空分布信息是指任意2行或者多行的條空分布是否相同等。
具體地,若該外接矩形的長大于預(yù)設(shè)的長度值,且該外接矩形的高大于預(yù)設(shè)的高度值時(shí),可以隨機(jī)多次垂直或者水平掃描該外接矩形中任意2列或者2行條碼,若該2列條碼中存在相同的條空寬度信息或者該2行條碼中存在相同的條空寬度信息,則認(rèn)為該條碼為一維條碼,如圖如所示,且若各行條空寬度基本上相等,則認(rèn)為條碼是水平的;若各列條空寬度基本上相等,則認(rèn)為條碼是垂直的,否則認(rèn)為該條碼為二維條碼,如圖4b所示,該掃描的次數(shù)可以根據(jù)用戶需要設(shè)定,掃描次數(shù)越多,數(shù)據(jù)的可靠性越穩(wěn)定,判斷結(jié)果越準(zhǔn)確。
另外,在確定該條碼為一維條碼后,根據(jù)該2列或者2行條碼中相同的條空寬度的條空線的方向,若該條空線的方向?yàn)榇怪被蛘咂虼怪狈较颍瑒t在以后條碼種類判定時(shí), 可以只進(jìn)行垂直掃描,具體可以隔列進(jìn)行從上到下與從下到上垂直交替掃描,就可以確定該條碼的類型,同樣,若該條空線的方向?yàn)樗交蛘咂蛩椒较颍瑒t在以后條碼種類判定時(shí),可以只進(jìn)行水平掃描,具體可以隔行進(jìn)行從左到右與從右到左水平交替掃描,從而不管條碼順著放,倒著放,旋轉(zhuǎn)著放,都可以對其類型進(jìn)行識別,使得該確定該一維條碼的類型的方法具有較強(qiáng)的適應(yīng)性,且能夠提高條碼類型的識別速度。
在本發(fā)明實(shí)施例中,該條碼識別裝置支持一幅圖像中多個(gè)條碼的識別,當(dāng)該圖像中存在多個(gè)條碼時(shí),按照檢測到該多個(gè)條碼的順序,判斷獲取該多個(gè)條碼的維數(shù),具體地, 首先需要對待識別條碼圖像進(jìn)行預(yù)設(shè)個(gè)數(shù)的分塊,比如分成五塊,獲取分塊后每一塊圖像的中心點(diǎn),則在對待識別條碼圖像進(jìn)行二值化處理后,從每一塊圖像的中心點(diǎn)開始,也即從掃描起始點(diǎn)開始,向上、下、左、右四個(gè)方向分別對該圖像進(jìn)行逐行與逐列掃描,獲取該圖像中每個(gè)條碼的外接矩形,接著逐個(gè)獲取該每個(gè)條碼的外接矩形的特征和/或該外接矩形中條碼的特征信息,根據(jù)每個(gè)條碼的外接矩形的特征和/或該外接矩形中條碼的特征信息判斷獲取該條碼的維數(shù),由于在識別一幅圖像所包含的多個(gè)條碼時(shí),預(yù)先對條碼圖像進(jìn)行預(yù)設(shè)個(gè)數(shù)的分塊,再獲取分塊后每一塊圖像的中心點(diǎn)或者掃描起始點(diǎn),可以保證所獲取的掃描起始點(diǎn)落在該多個(gè)條碼中,從而可以進(jìn)行下一步的條碼維數(shù)識別,也使得該方法能夠適應(yīng)多種條碼的應(yīng)用場景,具有較強(qiáng)的自適應(yīng)性。
本發(fā)明實(shí)施例解決了在對一幅圖像進(jìn)行條碼自動識別時(shí),通過該掃描起始點(diǎn)獲取單元81獲取二值化處理后的待識別圖像以及該圖像的掃描起始點(diǎn)坐標(biāo);外接矩形獲取單元82按照預(yù)設(shè)的該多個(gè)掃描起始點(diǎn)的順序,依次從每一個(gè)掃描起始點(diǎn)開始,向上、下、左、 右四個(gè)方向分別對該圖像進(jìn)行逐行與逐列掃描,獲取該圖像中條碼的外接矩形實(shí)現(xiàn)了在未知條碼的維數(shù)情況下;維數(shù)獲取單元83根據(jù)條碼的特征獲取到的外接矩形及其中的條碼13特征信息等,獲取了條碼的維數(shù),從而可以進(jìn)一步識別該維數(shù)的條碼的種類和信息等,且該識別方法支持多種掃描方式,也提高了條碼的識別性能。
該條碼識別裝置還包括
匹配單元,用于當(dāng)判斷該條碼的維數(shù)為一維時(shí),根據(jù)該外接矩形中條碼的特征信息,或者對該圖像進(jìn)行預(yù)處理后獲取的條空信息,判斷預(yù)設(shè)的多種條碼類型表中是否存在匹配的條空信息;以及
—維條碼類型獲取單元,用于當(dāng)存在匹配的條空信息時(shí),獲取與該匹配的條空信息對應(yīng)的條碼類型。
其中,該預(yù)設(shè)的多種條碼類型表為在識別條碼之前預(yù)先配置,配置有多種類型的條碼及對應(yīng)的條碼特征,以方便在進(jìn)行條碼的識別時(shí)使用,且用戶可以根據(jù)需要隨時(shí)添加或者其他類型的條碼至該類型表中,具有較好的擴(kuò)展性。該表中各條碼類型放置根據(jù)使用的條碼類型的頻率排序,也即配置各條碼的檢測識別優(yōu)先級別,使得在當(dāng)前圖像中檢測到的條碼,其配置的優(yōu)先級最高時(shí),則在獲取該條碼的類型后,則不必繼續(xù)檢測后面的類型的條碼,從而提高了條碼識別速度。
在本發(fā)明實(shí)施例中,在確定該條碼為一維條碼后,采用1維圖像邊緣處理方法處理該條碼圖像及自動去噪功能等預(yù)處理操作,以更精確的獲取該一維條碼的條空信息,該條空信息為通過對該一維條碼按照條空線的方向進(jìn)行垂直或者水平掃描等獲取的多行條空的寬度信息,結(jié)合該條空信息與預(yù)設(shè)的多種條碼類型表,得到條碼的類型結(jié)果,使得條碼識別精度得到提高,誤識率得到降低。
該條碼識別裝置還包括
判斷單元,用于當(dāng)判斷該條碼的維數(shù)為二維時(shí),判斷該外接矩形中是否存在與預(yù)設(shè)的多種條碼類型表中的一種類型的條碼特征相匹配的特征;以及
二維條碼類型獲取單元,用于當(dāng)存在匹配的特征時(shí),獲取與該特征對應(yīng)的條碼類型。
該條碼識別裝置還包括
輸出單元,用于根據(jù)該條碼類型對該條碼進(jìn)行識別,并輸出識別結(jié)果。
在本發(fā)明實(shí)施例中,當(dāng)該條碼為二維條碼時(shí),首先獲取該預(yù)設(shè)的多種條碼類型表中的第一種類型(優(yōu)先級最高)的條碼的特征,判斷在該外接矩形中是否存在匹配的該特征,是,則該預(yù)設(shè)的多種條碼類型表中的第一種類型(優(yōu)先級最高)的條碼即為該待識別條碼的類型,退出識別過程;否,則繼續(xù)獲取該預(yù)設(shè)的多種條碼類型表中的下一種類型條碼的特征,繼續(xù)重復(fù)上述步驟,直至存在匹配的特征時(shí)退出,或者該條碼外接矩形中不存在與預(yù)設(shè)的多種條碼類型表中的所有類型的二維條碼特征相匹配的特征時(shí)退出。
本發(fā)明實(shí)施例提供的該對二維條碼類型判斷的方法,結(jié)合了預(yù)設(shè)的多種條碼類型表以及外接矩形中條碼的特征,進(jìn)行條碼類型的判斷獲取,提高條碼識別速度。
本發(fā)明實(shí)施例通過獲取二值化處理后的待識別條碼圖像以及該圖像的掃描起始點(diǎn)坐標(biāo),按照預(yù)設(shè)的該多個(gè)掃描起始點(diǎn)的順序,依次從每一個(gè)掃描起始點(diǎn)開始,向上、下、 左、右四個(gè)方向分別對該圖像進(jìn)行逐行與逐列掃描,獲取該圖像中條碼的外接矩形,根據(jù)該外接矩形的特征和/或該外接矩形中條碼的特征信息,判斷獲取該條碼的維數(shù),解決了由于現(xiàn)有技術(shù)沒有實(shí)現(xiàn)對未知維數(shù)的條碼進(jìn)行識別判斷,且識別性能不高的問題,達(dá)到了對未知維數(shù)的條碼進(jìn)行識別判斷及對一幅圖像所包含的多個(gè)條碼的識別判斷的目的,且提高了識別性能。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種條碼識別方法,其特征在于,所述方法包括下述步驟獲取二值化處理后的待識別條碼圖像及所述圖像的多個(gè)掃描起始點(diǎn)坐標(biāo); 按照預(yù)設(shè)的所述多個(gè)掃描起始點(diǎn)的順序,依次從每一個(gè)掃描起始點(diǎn)開始,向上、下、左、 右四個(gè)方向分別對該圖像進(jìn)行逐行與逐列掃描,獲取所述圖像中條碼的外接矩形;根據(jù)所述外接矩形的特征和/或所述外接矩形中條碼的特征信息,判斷獲取所述條碼的維數(shù)。
2.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括以下步驟 當(dāng)所述圖像中存在多個(gè)條碼時(shí),獲取所述圖像中每個(gè)條碼的外接矩形;按照檢測到所述多個(gè)條碼的順序,根據(jù)每個(gè)條碼的外接矩形的特征和/或所述外接矩形中條碼的特征信息,判斷獲取所述每個(gè)條碼的維數(shù)。
3.如權(quán)利要求1所述的方法,其特征在于,所述圖像的多個(gè)掃描起始點(diǎn)坐標(biāo)包括所述圖像的中心點(diǎn)坐標(biāo),所述條碼的特征信息指所述條碼的條空寬度信息。
4.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括以下步驟當(dāng)判斷該條碼的維數(shù)為一維時(shí),根據(jù)該外接矩形中條碼的特征信息,或者對該圖像進(jìn)行預(yù)處理后獲取的條空信息,判斷預(yù)設(shè)的多種條碼類型表中是否存在匹配的條空信息; 當(dāng)存在匹配的條空信息時(shí),獲取與所述匹配的條空信息對應(yīng)的條碼類型。
5.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括以下步驟當(dāng)判斷所述條碼的維數(shù)為二維時(shí),判斷所述外接矩形中是否存在與預(yù)設(shè)的多種條碼類型表中的一種類型的條碼特征相匹配的特征;當(dāng)存在匹配的特征時(shí),獲取與所述特征對應(yīng)的條碼類型。
6.如權(quán)利要求3所述的方法,其特征在于,所述方法還包括以下步驟當(dāng)所述外接矩形的長小于預(yù)設(shè)的長度值,或所述外接矩形的高小于預(yù)設(shè)的高度值時(shí), 則所述條碼的維數(shù)是一;當(dāng)所述外接矩形的長小于預(yù)設(shè)的長度值,且所述外接矩形的高小于預(yù)設(shè)的高度值時(shí), 則所述圖像中不存在條碼;當(dāng)所述外接矩形的長大于預(yù)設(shè)的長度值,且所述外接矩形的高大于預(yù)設(shè)的高度值時(shí), 則根據(jù)所述外接矩形中條碼的條空寬度信息,進(jìn)一步確定所述條碼的維數(shù)是一或者二。
7.—種條碼識別裝置,其特征在于,所述裝置包括掃描起始點(diǎn)獲取單元,用于獲取二值化處理后的待識別條碼圖像及所述圖像的多個(gè)掃描起始點(diǎn)坐標(biāo);外接矩形獲取單元,用于按照預(yù)設(shè)的所述多個(gè)掃描起始點(diǎn)的順序,依次從每一個(gè)掃描起始點(diǎn)開始,向上、下、左、右四個(gè)方向分別對該圖像進(jìn)行逐行與逐列掃描,獲取所述圖像中條碼的外接矩形;以及維數(shù)獲取單元,用于根據(jù)所述外接矩形的特征和/或所述外接矩形中條碼的特征信息,判斷獲取所述條碼的維數(shù)。
8.如權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括匹配單元,用于當(dāng)判斷該條碼的維數(shù)為一維時(shí),根據(jù)該外接矩形中條碼的特征信息,或者對該圖像進(jìn)行預(yù)處理后獲取的條空信息,判斷預(yù)設(shè)的多種條碼類型表中是否存在匹配的條空信息;以及一維條碼類型獲取單元,用于當(dāng)存在匹配的條空信息時(shí),獲取與所述匹配的條空信息對應(yīng)的條碼類型。
9.如權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括判斷單元,用于當(dāng)判斷所述條碼的維數(shù)為二維時(shí),判斷所述外接矩形中是否存在與預(yù)設(shè)的多種條碼類型表中的一種類型的條碼特征相匹配的特征;以及二維條碼類型獲取單元,用于當(dāng)存在匹配的特征時(shí),獲取與所述特征對應(yīng)的條碼類型。
10.如權(quán)利要求7所述的裝置,其特征在于,所述維數(shù)獲取單元具體包括第一判斷單元,用于當(dāng)所述外接矩形的長小于預(yù)設(shè)的長度值,或所述外接矩形的高小于預(yù)設(shè)的高度值時(shí),則所述條碼的維數(shù)是一;第二判斷單元,用于當(dāng)所述外接矩形的長小于預(yù)設(shè)的長度值,且所述外接矩形的高小于預(yù)設(shè)的高度值時(shí),則所述圖像中不存在條碼;以及第三判斷單元,用于當(dāng)所述外接矩形的長大于預(yù)設(shè)的長度值,且所述外接矩形的高大于預(yù)設(shè)的高度值時(shí),則根據(jù)所述外接矩形中條碼的條空寬度信息,進(jìn)一步確定所述條碼的維數(shù)是一或者二。
全文摘要
本發(fā)明適用于條碼識別技術(shù)領(lǐng)域,提供了一種條碼識別方法及裝置,所述方法包括下述步驟獲取二值化處理后的待識別條碼圖像及該圖像的多個(gè)掃描起始點(diǎn)坐標(biāo);按照預(yù)設(shè)的該多個(gè)掃描起始點(diǎn)的順序,依次從每一個(gè)掃描起始點(diǎn)開始,向上、下、左、右四個(gè)方向分別對該圖像進(jìn)行逐行與逐列掃描,獲取所述圖像中條碼的外接矩形;根據(jù)所述外接矩形的特征和/或所述外接矩形中條碼的特征信息,判斷獲取所述條碼的維數(shù)。本發(fā)明實(shí)現(xiàn)了對未知維數(shù)的條碼進(jìn)行識別判斷的目的,且提高了識別性能。
文檔編號G06K7/10GK102521558SQ201110367610
公開日2012年6月27日 申請日期2011年11月18日 優(yōu)先權(quán)日2011年11月18日
發(fā)明者于兆和, 張俊, 彭青峰, 李佐廣, 李耀華, 李運(yùn)秀, 梁日雄 申請人:深圳市寶捷信科技有限公司