国产精品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í)別方法和設(shè)備的制作方法

      文檔序號(hào):6637491閱讀:539來(lái)源:國(guó)知局
      條形碼識(shí)別方法和設(shè)備的制作方法
      【專利摘要】本發(fā)明的實(shí)施方式提供了一種條形碼識(shí)別方法。該方法包括:a)、逐行掃描原始圖片,并統(tǒng)計(jì)掃描行上相互交替的兩個(gè)顏色帶中像素點(diǎn)的個(gè)數(shù),得到所述掃描行的數(shù)據(jù)序列;b)、判斷在連續(xù)相鄰的N個(gè)掃描行的數(shù)據(jù)序列中是否包含相同或相似的子序列,其中N為正整數(shù);c)、如果在連續(xù)相鄰的N個(gè)掃描行的數(shù)據(jù)序列中包含相同或相似的子序列,確定所述子序列包括至少一個(gè)條形碼;以及d)、對(duì)所述子序列進(jìn)行解碼,得到條形碼信息。本發(fā)明的方法可以解決現(xiàn)有技術(shù)中由于無(wú)法支持一次性地對(duì)多個(gè)條形碼同時(shí)進(jìn)行識(shí)別而導(dǎo)致的條形碼的識(shí)別效率比較低的問(wèn)題。此外,本發(fā)明的另一方面提供了一種條形碼識(shí)別設(shè)備。
      【專利說(shuō)明】條形碼識(shí)別方法和設(shè)備

      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明的實(shí)施方式涉及圖像處理領(lǐng)域,更具體地,本發(fā)明的實(shí)施方式涉及條形碼識(shí)別方法和設(shè)備。

      【背景技術(shù)】
      [0002]本部分旨在為權(quán)利要求書中陳述的本發(fā)明的實(shí)施方式提供背景或上下文。此處的描述可包括可以探究的概念,但不一定是之前已經(jīng)想到或者已經(jīng)探究的概念。因此,除非在此指出,否則在本部分中描述的內(nèi)容對(duì)于本申請(qǐng)的說(shuō)明書和權(quán)利要求書而言不是現(xiàn)有技術(shù),并且并不因?yàn)榘ㄔ诒静糠种芯统姓J(rèn)是現(xiàn)有技術(shù)。
      [0003]條形碼是將寬度不等的多個(gè)黑條和空白,按照一定的編碼規(guī)則排列,用以表達(dá)一組信息的圖形標(biāo)識(shí)符。常見(jiàn)的條形碼是由反射率相差很大的黑色條(簡(jiǎn)稱黑條)和白色條(簡(jiǎn)稱白空)排成的平行線圖案。條形碼可以標(biāo)出物品的生產(chǎn)國(guó)、制造廠家、名稱、生產(chǎn)日期等等許多信息,因而在商品流通、圖書管理、郵政管理、銀行系統(tǒng)等許多領(lǐng)域都得到廣泛的應(yīng)用。
      [0004]針對(duì)條形碼,現(xiàn)有技術(shù)中已存在各種條形碼識(shí)別設(shè)備,用于識(shí)別出條形碼中的信息。例如,硬件式的條形碼掃描槍以及安裝在手機(jī)上的條形碼掃描軟件。


      【發(fā)明內(nèi)容】

      [0005]但是,本發(fā)明人在研究過(guò)程中發(fā)現(xiàn),無(wú)論是掃描槍還是條形碼掃描軟件,一次只允許對(duì)一個(gè)條形碼進(jìn)行識(shí)別。其中,只有當(dāng)掃描槍的掃描口對(duì)準(zhǔn)一個(gè)條形碼時(shí)才能掃描到該條形碼,并進(jìn)一步解碼出該條形碼中的信息;只有當(dāng)手機(jī)上的攝像頭對(duì)準(zhǔn)一個(gè)條形碼,并使該條形碼位于手機(jī)屏幕的中間位置時(shí),才能掃描到該條形碼,并進(jìn)一步對(duì)該條形碼進(jìn)行解碼。
      [0006]依照現(xiàn)有技術(shù),如果一個(gè)圖片中同時(shí)包含有多個(gè)條形碼,就無(wú)法支持一次性地對(duì)多個(gè)條形碼同時(shí)進(jìn)行識(shí)別,而是需要逐個(gè)條形碼的進(jìn)行掃描和解碼,從而導(dǎo)致條形碼的識(shí)別效率比較低。
      [0007]為此,非常需要一種條形碼識(shí)別方法和設(shè)備,以解決現(xiàn)有技術(shù)中由于無(wú)法支持一次性地對(duì)多個(gè)條形碼同時(shí)進(jìn)行識(shí)別而導(dǎo)致的條形碼的識(shí)別效率比較低的問(wèn)題。
      [0008]在本上下文中,本發(fā)明的實(shí)施方式期望提供一種條形碼識(shí)別方法和設(shè)備。
      [0009]在本發(fā)明實(shí)施方式的第一方面中,提供了一種條形碼識(shí)別方法,包括:
      [0010]a)、逐行掃描原始圖片,并統(tǒng)計(jì)掃描行上相互交替的兩個(gè)顏色帶中像素點(diǎn)的個(gè)數(shù),得到所述掃描行的數(shù)據(jù)序列;
      [0011]b)、判斷在連續(xù)相鄰的N個(gè)掃描行的數(shù)據(jù)序列中是否包含相同或相似的子序列,其中N為正整數(shù);
      [0012]c)、如果在連續(xù)相鄰的N個(gè)掃描行的數(shù)據(jù)序列中包含相同或相似的子序列,確定所述子序列包括至少一個(gè)條形碼;以及
      [0013](1)、對(duì)所述子序列進(jìn)行解碼,得到條形碼信息。
      [0014]在本發(fā)明實(shí)施方式的第二方面中,提供了一種條形碼識(shí)別設(shè)備,包括:
      [0015]掃描單元,用于逐行掃描原始圖片,并統(tǒng)計(jì)掃描行上相互交替的兩個(gè)顏色帶中像素點(diǎn)的個(gè)數(shù),得到所述掃描行的數(shù)據(jù)序列;
      [0016]判斷單元,用于判斷在連續(xù)相鄰的~個(gè)掃描行的數(shù)據(jù)序列中是否包含相同或相似的子序列,其中~為正整數(shù);
      [0017]確定單元,用于如果在連續(xù)相鄰的~個(gè)掃描行的數(shù)據(jù)序列中包含相同或相似的子序列,確定所述子序列包括至少一個(gè)條形碼;
      [0018]解碼單元,用于對(duì)所述子序列進(jìn)行解碼,得到條形碼信息。
      [0019]在本發(fā)明實(shí)施方式中,當(dāng)原始圖片中包含多個(gè)條形碼時(shí),基于對(duì)原始圖片的圖像處理,即,逐行掃描原始圖片,統(tǒng)計(jì)掃描行上相互交替的兩個(gè)顏色帶中像素點(diǎn)的個(gè)數(shù),得到掃描行的數(shù)據(jù)序列,判斷在連續(xù)相鄰的~個(gè)掃描上的數(shù)據(jù)序列中是否包含相同或相似的子序列,如果包含,確定該子序列包括至少一個(gè)條形碼,對(duì)該子序列進(jìn)行解碼,就可以得到條形碼信息。因此,可以支持一次同時(shí)對(duì)原始圖片中的多個(gè)條形碼進(jìn)行識(shí)別,進(jìn)而提高條形碼的識(shí)別效率。

      【專利附圖】

      【附圖說(shuō)明】
      [0020]通過(guò)參考附圖閱讀下文的詳細(xì)描述,本發(fā)明示例性實(shí)施方式的上述以及其他目的、特征和優(yōu)點(diǎn)將變得易于理解。在附圖中,以示例性而非限制性的方式示出了本發(fā)明的若干實(shí)施方式,其中:
      [0021]圖1示意性地示出了本發(fā)明實(shí)施方式可以在其中實(shí)施的一個(gè)示例性場(chǎng)景;
      [0022]圖2示意性地示出了一種128型的條形碼的示意圖;
      [0023]圖3示意性地示出了根據(jù)本發(fā)明的一個(gè)實(shí)施方式的條形碼識(shí)別方法的流程圖;
      [0024]圖4-21示意性地示出了一種原始圖片的示意圖;
      [0025]圖44示意性地示出了另一種原始圖片的示意圖;
      [0026]圖4-0示意性地示出了另一種原始圖片的示意圖;
      [0027]圖5示意性地示出了本發(fā)明一種判斷任意相鄰兩個(gè)掃描行的數(shù)據(jù)序列中是否包含相同或相似的子序列的方法的流程圖;
      [0028]圖6示意性地示出了本發(fā)明一種從子序列中查找條形碼的真實(shí)開(kāi)始碼的方法的流程圖;
      [0029]圖7示意性地示出了根據(jù)本發(fā)明的一個(gè)實(shí)施方式的條形碼識(shí)別設(shè)備的結(jié)構(gòu)框架圖;
      [0030]圖8示意性地示出了根據(jù)本發(fā)明的另一個(gè)實(shí)施方式的條形碼識(shí)別設(shè)備結(jié)構(gòu)框架圖;
      [0031]圖9示意性地示出了本發(fā)明中一種解碼單元的結(jié)構(gòu)框架圖;
      [0032]圖10示意性地示出了本發(fā)明中一種開(kāi)始碼查找子單元的結(jié)構(gòu)框圖;
      [0033]圖11示意性地示出了本發(fā)明中另一種開(kāi)始碼查找子單元的結(jié)構(gòu)框圖;
      [0034]圖12示意性地示出了本發(fā)明中一種判斷單元的結(jié)構(gòu)框圖。
      [0035]在附圖中,相同或?qū)?yīng)的標(biāo)號(hào)表不相同或?qū)?yīng)的部分。

      【具體實(shí)施方式】
      [0036]下面將參考若干示例性實(shí)施方式來(lái)描述本發(fā)明的原理和精神。應(yīng)當(dāng)理解,給出這些實(shí)施方式僅僅是為了使本領(lǐng)域技術(shù)人員能夠更好地理解進(jìn)而實(shí)現(xiàn)本發(fā)明,而并非以任何方式限制本發(fā)明的范圍。相反,提供這些實(shí)施方式是為了使本公開(kāi)更加透徹和完整,并且能夠?qū)⒈竟_(kāi)的范圍完整地傳達(dá)給本領(lǐng)域的技術(shù)人員。
      [0037]本領(lǐng)域技術(shù)人員知道,本發(fā)明的實(shí)施方式可以實(shí)現(xiàn)為一種系統(tǒng)、裝置、設(shè)備、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本公開(kāi)可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件、完全的軟件(包括固件、駐留軟件、微代碼等),或者硬件和軟件結(jié)合的形式。
      [0038]根據(jù)本發(fā)明的實(shí)施方式,提出了一種條形碼識(shí)別方法和設(shè)備。
      [0039]在本文中,需要理解的是,附圖中的任何元素?cái)?shù)量均用于示例而非限制,以及任何命名都僅用于區(qū)分,而不具有任何限制含義。
      [0040]下面參考本發(fā)明的若干代表性實(shí)施方式,詳細(xì)闡釋本發(fā)明的原理和精神。
      [0041]發(fā)明概沭
      [0042]本發(fā)明人發(fā)現(xiàn),由于現(xiàn)有技術(shù)中的條形碼識(shí)別方法僅支持一次只對(duì)一個(gè)條形碼進(jìn)行識(shí)別,而無(wú)法支持一次同時(shí)對(duì)多個(gè)條形碼進(jìn)行識(shí)別,因此,當(dāng)需要識(shí)別多個(gè)條形碼時(shí),需要逐個(gè)條形碼進(jìn)行識(shí)別,即,需要逐個(gè)條形碼的進(jìn)行掃描和解碼,導(dǎo)致條形碼的識(shí)別效率比較低。
      [0043]如果提供一種新的條形碼識(shí)別方法,并且該新的條形碼識(shí)別方法可以支持一次同時(shí)對(duì)多個(gè)條形碼進(jìn)行識(shí)別的話,就可以解決現(xiàn)有技術(shù)中由于無(wú)法支持一次對(duì)多個(gè)條形碼進(jìn)行識(shí)別而導(dǎo)致的條形碼識(shí)別效率比較低的問(wèn)題。
      [0044]在介紹了本發(fā)明的基本原理之后,下面具體介紹本發(fā)明的各種非限制性實(shí)施方式。
      [0045]應(yīng)用場(chǎng)景總覽
      [0046]首先參考圖1,圖1示意性地示出了本發(fā)明的實(shí)施方式可以在其中實(shí)施的示例性應(yīng)用場(chǎng)景。其中,在原始圖片10上包含有5條形碼111、112、113、114和115,電子設(shè)備20先一次性對(duì)原始圖片10中的5個(gè)條形碼同時(shí)進(jìn)行掃描,獲得5個(gè)條形碼的條形碼信息121、122、123、124和125。電子設(shè)備20可以是移動(dòng)終端、如,具有攝像頭的手機(jī)或平板電腦,也可以是與掃描槍連接的?¢:機(jī)。本領(lǐng)域技術(shù)人員可以理解,圖1所示的示意圖僅是本發(fā)明的實(shí)施方式可以在其中得以實(shí)現(xiàn)的一個(gè)示例。本發(fā)明實(shí)施方式的應(yīng)用范圍不受到該框架任何方面的限制。例如,原始圖片10上可以包含5個(gè)條形碼,也可以包含其它任意數(shù)量的至少兩個(gè)條形碼。
      [0047]示例性方法
      [0048]在介紹本發(fā)明的實(shí)施方式之前,為了便于對(duì)本發(fā)明的實(shí)施方式的理解,先對(duì)條形碼的工作原理進(jìn)行簡(jiǎn)單說(shuō)明。如圖2所示的128型的條形碼,其是由相互交替的黑條和白空所組成的。其中,黑條和白空都分別存在四種不同的寬度,并將寬度按照從細(xì)到粗的順序分別賦予1、2、3和4的數(shù)值。如果按照寬度的賦值表示上述條形碼,條形碼的數(shù)字表示形式如下:2112322311312212131312222122222212241212131212113211132331112
      [0049]其中,將最后七位(2331112)作為一個(gè)數(shù)據(jù)塊,用于表示128型的條形碼已經(jīng)結(jié)束,其余部分都是每六位為一個(gè)數(shù)據(jù)塊,第一個(gè)數(shù)據(jù)塊用于表示128型條形碼屬于哪一種類型。具體的,當(dāng)?shù)谝粋€(gè)數(shù)據(jù)塊為211412時(shí),表示128型條形碼屬于八類型;當(dāng)?shù)谝粋€(gè)數(shù)據(jù)塊為211214時(shí),表示128型條形碼屬于8類型;當(dāng)?shù)谝粋€(gè)數(shù)據(jù)塊為211232時(shí),表示128型條形碼屬于¢:類型。
      [0050]如果將第一個(gè)數(shù)據(jù)塊和最后一個(gè)數(shù)據(jù)塊去除,則上述條形碼的編碼結(jié)果如下:
      [0051]231131/221213/131222/212222/221224/121213/121211/321113
      [0052]其中,最后一個(gè)數(shù)據(jù)塊為校驗(yàn)塊,用于校驗(yàn)該條形碼是否被正確編碼。
      [0053]通過(guò)查詢已知的字符表(字符表保存了數(shù)據(jù)塊與編號(hào)之間的映射關(guān)系)對(duì)上述除最后一個(gè)校驗(yàn)塊之外的其它每一個(gè)數(shù)據(jù)塊進(jìn)行解碼,可以得到對(duì)應(yīng)的編號(hào):50 09 05 0001 91 91,該編號(hào)即為條形碼信息。
      [0054]下面結(jié)合圖1的應(yīng)用場(chǎng)景,參考圖3來(lái)描述根據(jù)本發(fā)明示例性實(shí)施方式的、用于條形碼識(shí)別的方法。需要注意的是,上述應(yīng)用場(chǎng)景僅是為了便于理解本發(fā)明的精神和原理而示出,本發(fā)明的實(shí)施方式在此方面不受任何限制。相反,本發(fā)明的實(shí)施方式可以應(yīng)用于適用的任何場(chǎng)景。
      [0055]請(qǐng)參閱圖3,其示意性地示出了根據(jù)本發(fā)明的一個(gè)實(shí)施方式的條形碼識(shí)別方法的流程圖,例如,該方法可以由電子設(shè)備20執(zhí)行,方法具體例如可以包括:
      [0056]步驟301:逐行掃描原始圖片,并統(tǒng)計(jì)掃描行上相互交替的兩個(gè)顏色帶中像素點(diǎn)的個(gè)數(shù),得到所述掃描行的數(shù)據(jù)序列。
      [0057]步驟302:判斷在連續(xù)相鄰的~個(gè)掃描行的數(shù)據(jù)序列中是否包含相同或相似的子序列,如果是,進(jìn)入步驟303,其中~為正整數(shù)。
      [0058]步驟303:確定所述子序列包含至少一個(gè)條形碼。
      [0059]步驟304:對(duì)所述子序列進(jìn)行解碼,得到條形碼信息。
      [0060]可以理解的,如果原始圖片是黑白圖片,位于原始圖片上的條形碼即為由一組相互交替的黑色條和白色條(即,黑條和白空)組成的圖案。如果原始圖片不是黑白圖片,位于原始圖片上的條形碼是由分別接近黑色條和白色條的某兩個(gè)顏色條組成的圖案。
      [0061]當(dāng)逐行掃描原始圖片時(shí),如果掃描到條形碼,在掃描行上就會(huì)存在相互交替的兩個(gè)顏色帶,顯然,如果原始圖片是黑白圖片,掃描上相互交替的兩個(gè)顏色帶為黑色帶和白色帶,如果原始圖片不是黑白圖片,掃描上相互交替的兩個(gè)顏色帶為分別接近黑色帶和白色帶的某兩個(gè)顏色帶。并且,針對(duì)這兩個(gè)顏色帶,可以通過(guò)比較兩個(gè)顏色帶的值分別與黑色和白色的如8值的接近程度,來(lái)確定兩個(gè)顏色帶中具體哪個(gè)顏色帶相當(dāng)于黑色帶,哪個(gè)顏色帶相當(dāng)于白色帶。
      [0062]當(dāng)然,在本發(fā)明的一個(gè)優(yōu)選實(shí)施方式中,可以在步驟301之前,對(duì)原始圖片進(jìn)行二值化處理,得到處理后的圖片。在步驟301中,逐行掃描處理后的圖片,并統(tǒng)計(jì)掃描行上相互交替的黑色帶和白色帶中像素點(diǎn)的個(gè)數(shù),得到掃描行的數(shù)據(jù)序列。
      [0063]對(duì)于一個(gè)條形碼來(lái)說(shuō),當(dāng)掃描該條形碼,并統(tǒng)計(jì)掃描行上相互交替的兩個(gè)顏色帶中像素點(diǎn)的個(gè)數(shù)時(shí),所得到的各個(gè)掃描行的數(shù)據(jù)序列應(yīng)該是至少包含完全相同的子序列,甚至在理想情況下,各個(gè)掃描行的數(shù)據(jù)序列也是完全相同的。并且,數(shù)據(jù)序列或者子序列中的每一個(gè)元素即表示一個(gè)顏色帶的寬度值。由此可見(jiàn),在一個(gè)條形碼中,必然存在連續(xù)相鄰的多個(gè)掃描行的數(shù)據(jù)序列包含相同的子序列。
      [0064]據(jù)此,可以將一個(gè)原始圖片中是否存在連續(xù)相鄰的N個(gè)掃描行的數(shù)據(jù)序列包含相同的子序列作為確定該子序列是否包括條形碼的標(biāo)準(zhǔn)。
      [0065]如圖4_a所示,在一個(gè)原始圖片中,如果多個(gè)條形碼之間是豎直排列的,通過(guò)本發(fā)明的技術(shù)方案,當(dāng)存在連續(xù)相鄰的N個(gè)掃描行的數(shù)據(jù)序列包含相同的子序列時(shí),就可以確定該子序列包括一個(gè)條形碼。顯然,在對(duì)圖4-a所示的原始圖片進(jìn)行掃描和統(tǒng)計(jì)后,可以得到六個(gè)子序列,每個(gè)子序列包括一個(gè)條形碼。
      [0066]在一個(gè)原始圖片中,多個(gè)條形碼之間除了有可能豎直排列之外,也有可能水平排列。如圖4-b所示,如果多個(gè)條形碼之間是水平排列的,通過(guò)本發(fā)明的技術(shù)方案,當(dāng)存在連續(xù)相鄰的N個(gè)掃描行的數(shù)據(jù)序列包含相同的子序列時(shí),就可以確定該子序列包括多個(gè)條形碼。顯然,在對(duì)圖4-b所示的原始圖片進(jìn)行掃描和統(tǒng)計(jì)后,可以得到一個(gè)子序列,該子序列包括三個(gè)條形碼。
      [0067]當(dāng)然,在一個(gè)原始圖片中,可能既存在豎直排列的條形碼,也存在水平排列的條形碼。如圖4-c所示,在對(duì)如圖4-c所示的原始圖片進(jìn)行掃描和統(tǒng)計(jì)后,可以得到兩個(gè)子序列,每個(gè)子序列包括三個(gè)條形碼。
      [0068]因此,如果連續(xù)相鄰的N個(gè)掃描行的數(shù)據(jù)序列包含相同的子序列,說(shuō)明該子序列包括至少一個(gè)條形碼,反之,如果連續(xù)相鄰的N個(gè)掃描行的數(shù)據(jù)序列不包含相同的子序列,說(shuō)明該子序列不包括條形碼。
      [0069]考慮到如果原始圖片是無(wú)損清晰的,不存在任何失真,該原始圖片上的條形碼不存在任何污潰或破損,則可以按照上述方式進(jìn)行條形碼識(shí)別。但是,如果原始圖片是有損模糊的,存在一定程度的失真,例如,原始圖片是掃描儀掃描的圖片,該原始圖片上的條形碼或多或少都會(huì)有一些污潰或破損,此時(shí),對(duì)于一個(gè)條形碼來(lái)說(shuō),當(dāng)掃描該條形碼時(shí),得到的各個(gè)掃描行的數(shù)據(jù)序列并不會(huì)是完全相同的,而是有可能存在以下兩個(gè)數(shù)據(jù)序列:
      [0070]211214212222222122121223
      [0071]211213212222222122121224
      [0072]顯然,在這種情況下,在一個(gè)條形碼中,連續(xù)相鄰的N個(gè)掃描行的數(shù)據(jù)序列并不會(huì)包含完全相同的子序列。因此,除了子序列完全相同之外,也可以將是否存在連續(xù)相鄰的N個(gè)掃描行的數(shù)據(jù)序列包含相似的子序列作為確定該子序列是否包括至少一個(gè)條形碼的標(biāo)準(zhǔn)。也就是說(shuō),如果連續(xù)相鄰的N個(gè)掃描行的數(shù)據(jù)序列包含相似的子序列,也說(shuō)明該子序列包括至少一個(gè)條形碼,如果連續(xù)相鄰的N個(gè)掃描行的數(shù)據(jù)序列不包含相同的子序列也不包含相似的子序列,說(shuō)明該子序列不包括條形碼。
      [0073]在本發(fā)明的一個(gè)優(yōu)選實(shí)施方式中,為了避免將原始圖片中的其它圖案誤判為一個(gè)條形碼,N選擇為使得連續(xù)相鄰的掃描行的高度大于或等于預(yù)設(shè)的最小高度閾值。
      [0074]其中,預(yù)設(shè)的最小高度閾值可以是一個(gè)經(jīng)驗(yàn)值。
      [0075]在本發(fā)明的一個(gè)優(yōu)選實(shí)施方式中,如圖5所示,可以按照如下方式判斷任意相鄰兩個(gè)掃描行的數(shù)據(jù)序列中是否包含相同或相似的子序列:
      [0076]步驟501:針對(duì)所述兩個(gè)掃描行的數(shù)據(jù)序列中任意一對(duì)位置對(duì)齊的子序列,判斷所述兩個(gè)子序列中位于對(duì)齊位置的各個(gè)數(shù)據(jù)是否相同,如果是,進(jìn)入步驟502,否則,進(jìn)入步驟503,其中所述子序列包含連續(xù)相鄰的M個(gè)數(shù)據(jù),M為正整數(shù),且M大于或等于預(yù)設(shè)的最小數(shù)量閾值,例如對(duì)應(yīng)于至少一個(gè)條形碼的長(zhǎng)度。
      [0077]步驟502:確定所述兩個(gè)掃描行的數(shù)據(jù)序列中包含相同的子序列,結(jié)束流程。
      [0078]步驟503:計(jì)算所述兩個(gè)子序列中位于對(duì)齊位置的各個(gè)數(shù)據(jù)之間的偏差。
      [0079]例如,對(duì)于如下兩個(gè)數(shù)據(jù)序列:
      [0080]211214212222222122121223
      [0081]211213212222222122121224
      [0082]可以計(jì)算出偏差為2,即有2位不相同。
      [0083]步驟504:判斷所述兩個(gè)子序列中位于對(duì)齊位置的各個(gè)數(shù)據(jù)之間的偏差是否都小于或等于預(yù)設(shè)的偏差閾值,如果是,進(jìn)入步驟505,否則,進(jìn)入步驟506。
      [0084]步驟505:確定所述兩個(gè)掃描行的數(shù)據(jù)序列中包含相似的子序列,結(jié)束流程。
      [0085]步驟506:確定所述兩個(gè)掃描行的數(shù)據(jù)序列中既不包含相同的子序列,也不包含相似的子序列,結(jié)束流程。
      [0086]其中,預(yù)設(shè)的最小數(shù)量閾值可以是一個(gè)經(jīng)驗(yàn)值。
      [0087]通過(guò)上述方法可以確定,在連續(xù)相鄰的~個(gè)掃描行中,是否任意相鄰兩個(gè)掃描行的數(shù)據(jù)序列中包含相同或相似的子序列,如果是,就可以最終確定在連續(xù)相鄰的~個(gè)掃描行的數(shù)據(jù)序列中包含相同或相似的子序列,否則,就可以最終確定在連續(xù)相鄰的~個(gè)掃描行的數(shù)據(jù)序列中不包含相同或相似的子序列。
      [0088]在對(duì)子序列進(jìn)行解碼時(shí),由于該子序列中的所有元素不一定全部都是屬于一個(gè)條形碼,而有可能是與條形碼無(wú)關(guān)的元素,因此,子序列中的第一個(gè)元素不一定是條形碼的起始位,而由前六個(gè)元素所構(gòu)成的數(shù)據(jù)塊也不一定是條形碼的真實(shí)開(kāi)始碼。在本發(fā)明的另一個(gè)優(yōu)選實(shí)施方式中,需要先從子序列中查找條形碼的真實(shí)開(kāi)始碼;然后再?gòu)牟檎业降臈l形碼的真實(shí)開(kāi)始碼開(kāi)始,對(duì)子序列進(jìn)行解碼,得到條形碼信息。
      [0089]例如,一個(gè)子序列為:5211214231113233111,前六個(gè)元素構(gòu)成的數(shù)據(jù)塊為521121,而對(duì)于128型的條形碼來(lái)說(shuō),其真實(shí)開(kāi)始碼只有三種可能,即,211412、211214或者211232。顯然,由前六個(gè)元素構(gòu)成的數(shù)據(jù)塊并不是條形碼的真實(shí)開(kāi)始碼,第一個(gè)元素5是與條形碼無(wú)關(guān)的元素。第二至七個(gè)元素構(gòu)成的數(shù)據(jù)塊為211214,顯然是條形碼的真實(shí)開(kāi)始碼。因此,上述子序列中屬于條形碼的部分為“211214/231113/233111”。
      [0090]在本發(fā)明的一個(gè)優(yōu)選實(shí)施方式中,如圖6所示,從子序列中查找條形碼的真實(shí)開(kāi)始碼的方法包括:
      [0091]步驟601:滑動(dòng)窗口滑動(dòng)到當(dāng)前位,并將滑動(dòng)窗口在當(dāng)前位開(kāi)始所覆蓋的數(shù)據(jù)作為當(dāng)前候選開(kāi)始碼,其中,滑動(dòng)窗口的長(zhǎng)度與條形碼的真實(shí)開(kāi)始碼的長(zhǎng)度相等。
      [0092]步驟602:計(jì)算所述當(dāng)前候選開(kāi)始碼與條形碼的真實(shí)開(kāi)始碼之間的偏移量。
      [0093]步驟603:判斷所述偏移量是否小于或等于預(yù)設(shè)的偏移量閾值,如果是,進(jìn)入步驟604,否則,進(jìn)入步驟605。
      [0094]步驟604:確定所述當(dāng)前候選開(kāi)始碼為條形碼的真實(shí)開(kāi)始碼,結(jié)束流程。
      [0095]步驟605:將滑動(dòng)窗口向后滑動(dòng)一位,并返回步驟601。
      [0096]其中,滑動(dòng)窗口從子序列的第一位開(kāi)始逐位地滑動(dòng),當(dāng)滑動(dòng)窗口在子序列的第一位時(shí),此時(shí)的當(dāng)前位即為第一位,當(dāng)前候選開(kāi)始碼即為第一候選開(kāi)始碼;當(dāng)滑動(dòng)窗口滑動(dòng)到子序列的第二位時(shí),此時(shí)的當(dāng)前位即為第二位,當(dāng)前候選開(kāi)始碼即為第二候選開(kāi)始碼,以此類推,直到確定某一個(gè)候選開(kāi)始碼為條形碼的真實(shí)開(kāi)始碼為止停止對(duì)滑動(dòng)窗口進(jìn)行滑動(dòng)。
      [0097]例如,仍舊以上述的子序列為例,當(dāng)滑動(dòng)窗口在該子序列的第一位時(shí),該滑動(dòng)窗口所覆蓋的數(shù)據(jù)為“521121”(當(dāng)前待測(cè)試數(shù)據(jù)10,計(jì)算該數(shù)據(jù)分別與三個(gè)條形碼的真實(shí)開(kāi)始碼之間的第一偏移量:
      [0098]£181:81-1::211412
      [0099]1381:81-1::211214
      [0100]¢81:81-1::211232
      [0101]X與必七已!"!:的第一偏移量為:0.791
      [0102]X與的第一偏移量為:0.791
      [0103]X 與的第一偏移量為:0.722
      [0104]如果預(yù)設(shè)的偏移量閾值為0.005(當(dāng)然,預(yù)設(shè)的偏移量閾值可以為其它值),顯然,上述三個(gè)第一偏移量都大于預(yù)設(shè)的偏移量閾值,因此,將滑動(dòng)窗口從該子序列的第一位移動(dòng)到第二位,當(dāng)滑動(dòng)窗口在該子序列的第二位時(shí),該滑動(dòng)窗口所覆蓋的數(shù)據(jù)為“211214”(當(dāng)前待測(cè)試數(shù)據(jù)”,計(jì)算該數(shù)據(jù)分別與三個(gè)條形碼的真實(shí)開(kāi)始碼之間的偏移量:
      [0105]X與必七已!"!:的第二偏移量為:0.305
      [0106]X與…仏代的第二偏移量為:0
      [0107]X 與的第二偏移量為:0.365
      [0108]顯然,第二個(gè)第二偏移量小于預(yù)設(shè)的偏移量閾值,因此,“211214”為條形碼的真實(shí)開(kāi)始碼。
      [0109]其中,偏移量的計(jì)算方式可以為:
      [0110]偏移量=待測(cè)試數(shù)據(jù)一條形碼的真實(shí)開(kāi)始碼
      [0111]但是,考慮到原始圖片也有可能是被拉伸或被壓縮過(guò)的,進(jìn)而原始圖片上相互交替的兩個(gè)顏色帶的寬帶也就會(huì)隨之變寬或變窄,導(dǎo)致統(tǒng)計(jì)得到的掃描行的數(shù)據(jù)序列也會(huì)相應(yīng)地發(fā)生變化。例如,在拉伸前,統(tǒng)計(jì)得到的掃描行的數(shù)據(jù)序列為211214…..,在拉伸后,統(tǒng)計(jì)得到的掃描行的數(shù)據(jù)序列就可以變?yōu)?22428……?;蛘?,再例如,在壓縮前,統(tǒng)計(jì)得到的掃描行的數(shù)據(jù)序列為422428……,在壓縮后,統(tǒng)計(jì)得到的掃描行的數(shù)據(jù)序列就可以變?yōu)?11214…..。在這種情況下,由于在掃描行的數(shù)據(jù)序列中,每個(gè)元素都是成倍增大或成倍縮小的,因此,在查找條形碼的真實(shí)開(kāi)始碼時(shí),偏移量閾值是難以合理設(shè)置的。
      [0112]在本發(fā)明的一個(gè)優(yōu)選實(shí)施方式中,上述偏移量的計(jì)算方式還可以為:
      [0113]計(jì)算候選開(kāi)始碼中的各個(gè)元素分別與條形碼的真實(shí)開(kāi)始碼中位置對(duì)齊的各個(gè)元素的比值;計(jì)算所有比值的算術(shù)平均值;計(jì)算各個(gè)比值分別與算術(shù)平均值的差值的絕對(duì)值;計(jì)算所有絕對(duì)值的算術(shù)平均值,從而得到該候選開(kāi)始碼與條形碼的真實(shí)開(kāi)始碼之間的偏移量。
      [0114]例如,以第一候選開(kāi)始碼“521121”,條形碼的真實(shí)開(kāi)始碼為“211412”為例,先計(jì)算比值數(shù)組[5/2,2/1,1/1,1/4,2/1,1/2] = [2.5,2,1,0.25,2,0.5];再計(jì)算該比值數(shù)組中所有比值的算術(shù)平均值X = (2.5+2+1+0.25+2+0.5)/6 = 1.375 ;再計(jì)算絕對(duì)值數(shù)組[1.125,0.625,0.375,1.125,0.625,0.875];最后計(jì)算該絕對(duì)值數(shù)組中所有絕對(duì)值的算術(shù)平均值 I = (1.15+0.65+0.375+1.125+0.65+0.875) /6 = 0.7910
      [0115]當(dāng)子序列包括多個(gè)條形碼時(shí),通過(guò)上述方式,可以從該子序列中查找到多個(gè)條形碼的真實(shí)開(kāi)始碼。而每當(dāng)從該子序列中查找到一個(gè)真實(shí)開(kāi)始碼時(shí),就可以從該真實(shí)開(kāi)始碼開(kāi)始向后查找到校驗(yàn)碼,并從該真實(shí)開(kāi)始碼開(kāi)始到該校驗(yàn)碼位置,即為一個(gè)條形碼的編碼數(shù)據(jù),對(duì)其進(jìn)行解碼后,就可以得到該條形碼的條形碼信息。
      [0116]根據(jù)本發(fā)明,當(dāng)原始圖片中包含多個(gè)條形碼時(shí),基于對(duì)原始圖片的圖像處理,gp,逐行掃描原始圖片,統(tǒng)計(jì)掃描行上相互交替的兩個(gè)顏色帶中像素點(diǎn)的個(gè)數(shù),得到掃描行的數(shù)據(jù)序列,判斷在連續(xù)相鄰的N個(gè)掃描上的數(shù)據(jù)序列中是否包含相同或相似的子序列,如果包含,確定該子序列包括一個(gè)或多個(gè)條形碼。其中,如圖4-a所示,如果原始圖片上的多個(gè)條形碼是豎直排列的,則一個(gè)子序列只包括一個(gè)條形碼,通過(guò)掃描和統(tǒng)計(jì),可以得到多個(gè)子序列,分別對(duì)每個(gè)子序列進(jìn)行解碼,就可以得到多個(gè)條形碼的條形碼信息。再如圖4-b所示,如果原始圖片上的多個(gè)條形碼是水平排列的,則一個(gè)子序列同時(shí)包括多個(gè)條形碼,通過(guò)掃描和統(tǒng)計(jì),可以得到一個(gè)子序列,對(duì)該子序列進(jìn)行解碼,就可以同時(shí)得到多個(gè)條形碼的條形碼信息。因此,可以支持一次同時(shí)對(duì)原始圖片中的多個(gè)條形碼進(jìn)行識(shí)別,進(jìn)而提高條形碼的識(shí)別效率。
      [0117]示例性設(shè)備
      [0118]在介紹了本發(fā)明示例性實(shí)施方式的方法之后,接下來(lái),參考圖7來(lái)描述根據(jù)本發(fā)明示例性實(shí)施方式的、用于條形碼識(shí)別的設(shè)備。
      [0119]參考圖7,其示意性地示出了根據(jù)本發(fā)明一個(gè)實(shí)施方式的條形碼識(shí)別設(shè)備的結(jié)構(gòu)框架圖,具體地,該設(shè)備例如可以包括:
      [0120]掃描單元701,用于逐行掃描原始圖片,并統(tǒng)計(jì)掃描行上相互交替的兩個(gè)顏色帶中像素點(diǎn)的個(gè)數(shù),得到所述掃描行的數(shù)據(jù)序列;
      [0121]判斷單元702,用于判斷在連續(xù)相鄰的N個(gè)掃描行的數(shù)據(jù)序列中是否包含相同或相似的子序列,其中N為正整數(shù);
      [0122]確定單元703,用于如果在連續(xù)相鄰的N個(gè)掃描行的數(shù)據(jù)序列中包含相同或相似的子序列,確定所述子序列包括至少一個(gè)條形碼;
      [0123]解碼單元704,用于對(duì)所述子序列進(jìn)行解碼,得到條形碼信息。
      [0124]在本發(fā)明的一個(gè)優(yōu)選實(shí)施方式中,如圖8所示,該設(shè)備還包括:
      [0125]處理單元700,用于對(duì)原始圖片進(jìn)行二值化處理,得到處理后的圖片;
      [0126]掃描單元701具體用于,逐行掃描所述處理后的圖片,并統(tǒng)計(jì)掃描行上相互交替的黑色帶和白色帶中像素點(diǎn)的個(gè)數(shù),得到所述掃描行的數(shù)據(jù)序列。
      [0127]在本發(fā)明的另一優(yōu)選實(shí)施方式中,如圖9所示,解碼單元704包括:
      [0128]開(kāi)始碼查找子單元7041,用于從所述子序列中查找第一條形碼的真實(shí)開(kāi)始碼;
      [0129]解碼子單元7042,用于從查找到的所述第一條形碼的真實(shí)開(kāi)始碼開(kāi)始,對(duì)所述子序列進(jìn)行解碼,得到第一條形碼信息。
      [0130]在本發(fā)明的另一個(gè)優(yōu)選實(shí)施方式中,如圖10所示,開(kāi)始碼查找子單元7041包括:
      [0131]第一滑動(dòng)子單元70411,用于將滑動(dòng)窗口在所述子序列的第一位開(kāi)始所覆蓋的數(shù)據(jù)作為第一候選開(kāi)始碼,其中所述滑動(dòng)窗口的長(zhǎng)度與第一條形碼的真實(shí)開(kāi)始碼的長(zhǎng)度相等;
      [0132]第一計(jì)算子單元70412,用于計(jì)算所述第一候選開(kāi)始碼與所述第一條形碼的真實(shí)開(kāi)始碼之間的第一偏移量;
      [0133]第一判斷子單元70413,用于判斷所述第一偏移量是否小于或等于預(yù)設(shè)的偏移量閾值;
      [0134]第一確定子單元70414,用于如果所述第一偏移量小于或等于預(yù)設(shè)的偏移量閾值,確定第一候選開(kāi)始碼為第一條形碼的真實(shí)開(kāi)始碼。
      [0135]在本發(fā)明的另一個(gè)優(yōu)選實(shí)施方式中,如圖11所示,開(kāi)始碼查找子單元7041還包括:
      [0136]第二滑動(dòng)子單元70415,用于如果所述第一偏移量大于預(yù)設(shè)的偏移量閾值,將所述滑動(dòng)窗口滑動(dòng)到所述子序列的第二位,并將所述滑動(dòng)窗口在所述子序列的第二位開(kāi)始所覆蓋的數(shù)據(jù)作為第二候選開(kāi)始碼;
      [0137]第二計(jì)算子單元70416,用于計(jì)算所述第二候選開(kāi)始碼與所述第一條形碼的真實(shí)開(kāi)始碼之間的第二偏移量;
      [0138]第二判斷子單元70417,用于判斷所述第二偏移量是否小于或等于預(yù)設(shè)的偏移量閾值;
      [0139]第二確定子單元70418,用于如果所述第二偏移量小于或等于預(yù)設(shè)的偏移量閾值,確定第二候選碼為第一條形碼的真實(shí)開(kāi)始碼。
      [0140]在本發(fā)明的另一個(gè)優(yōu)選實(shí)施方式中,如圖12所示,判斷單元702包括:
      [0141]第三判斷子單元7021,用于針對(duì)每?jī)蓚€(gè)相鄰掃描行的數(shù)據(jù)序列中任意一對(duì)位置對(duì)齊的子序列,判斷該對(duì)子序列中位于對(duì)齊位置的各個(gè)數(shù)據(jù)是否相同,其中所述子序列包含連續(xù)相鄰的1個(gè)數(shù)據(jù),I為正整數(shù),且1大于或等于預(yù)設(shè)的最小數(shù)量閾值;
      [0142]第三確定子單元7022,用于如果相同,確定兩個(gè)掃描行的數(shù)據(jù)序列中包含相同的子序列;
      [0143]第三計(jì)算子單元7023,用于如果不相同,計(jì)算該對(duì)子序列中位于對(duì)齊位置的各個(gè)數(shù)據(jù)之間的偏差;
      [0144]第四判斷子單元7024,用于判斷該對(duì)子序列中位于對(duì)齊位置的各個(gè)數(shù)據(jù)之間的偏差是否都小于或等于預(yù)設(shè)的偏差閾值;
      [0145]第四確定子單元7025,用于如果該對(duì)子序列中位于對(duì)齊位置的各個(gè)數(shù)據(jù)之間的偏差都小于或等于預(yù)設(shè)的偏差閾值,確定兩個(gè)掃描行的數(shù)據(jù)序列中包含相似的子序列。
      [0146]在本發(fā)明的另一個(gè)優(yōu)選實(shí)施方式中,~選擇為使得連續(xù)相鄰的掃描行的高度大于或等于預(yù)設(shè)的條形碼的最小高度閾值。
      [0147]根據(jù)本發(fā)明,當(dāng)原始圖片中包含多個(gè)條形碼時(shí),基于對(duì)原始圖片的圖像處理,即,逐行掃描原始圖片,統(tǒng)計(jì)掃描行上相互交替的兩個(gè)顏色帶中像素點(diǎn)的個(gè)數(shù),得到掃描行的數(shù)據(jù)序列,判斷在連續(xù)相鄰的~個(gè)掃描上的數(shù)據(jù)序列中是否包含相同或相似的子序列,如果包含,確定該子序列包括一個(gè)或多個(gè)條形碼,可以支持一次同時(shí)對(duì)原始圖片中的多個(gè)條形碼進(jìn)行識(shí)別,進(jìn)而提高條形碼的識(shí)別效率。例如,如圖4^所示,如果原始圖片上的多個(gè)條形碼是豎直排列的,則一個(gè)子序列只包括一個(gè)條形碼,通過(guò)掃描和統(tǒng)計(jì),可以得到多個(gè)子序列,分別對(duì)每個(gè)子序列進(jìn)行解碼,就可以得到多個(gè)條形碼的條形碼信息。再如圖44所示,如果原始圖片上的多個(gè)條形碼是水平排列的,則一個(gè)子序列同時(shí)包括多個(gè)條形碼,通過(guò)掃描和統(tǒng)計(jì),可以得到一個(gè)子序列,對(duì)該子序列進(jìn)行解碼,就可以同時(shí)得到多個(gè)條形碼的條形碼信息。
      [0148]應(yīng)當(dāng)注意,盡管在上文詳細(xì)描述中提及了條形碼識(shí)別設(shè)備的若干單元或子單元,但是這種劃分僅僅并非強(qiáng)制性的。實(shí)際上,根據(jù)本發(fā)明的實(shí)施方式,上文描述的兩個(gè)或更多單元的特征和功能可以在一個(gè)單元中具體化。反之,上文描述的一個(gè)單元的特征和功能可以進(jìn)一步劃分為由多個(gè)單元來(lái)具體化。
      [0149]此外,盡管在附圖中以特定順序描述了本發(fā)明方法的操作,但是,這并非要求或者暗示必須按照該特定順序來(lái)執(zhí)行這些操作,或是必須執(zhí)行全部所示的操作才能實(shí)現(xiàn)期望的結(jié)果。附加地或備選地,可以省略某些步驟,將多個(gè)步驟合并為一個(gè)步驟執(zhí)行,和/或?qū)⒁粋€(gè)步驟分解為多個(gè)步驟執(zhí)行。
      [0150]雖然已經(jīng)參考若干【具體實(shí)施方式】描述了本發(fā)明的精神和原理,但是應(yīng)該理解,本發(fā)明并不限于所公開(kāi)的【具體實(shí)施方式】,對(duì)各方面的劃分也不意味著這些方面中的特征不能組合以進(jìn)行受益,這種劃分僅是為了表述的方便。本發(fā)明旨在涵蓋所附權(quán)利要求的精神和范圍內(nèi)所包括的各種修改和等同布置。
      【權(quán)利要求】
      1.一種方法,包括: a)、逐行掃描原始圖片,并統(tǒng)計(jì)掃描行上相互交替的兩個(gè)顏色帶中像素點(diǎn)的個(gè)數(shù),得到所述掃描行的數(shù)據(jù)序列; b)、判斷在連續(xù)相鄰的N個(gè)掃描行的數(shù)據(jù)序列中是否包含相同或相似的子序列,其中N為正整數(shù); C)、如果在連續(xù)相鄰的N個(gè)掃描行的數(shù)據(jù)序列中包含相同或相似的子序列,確定所述子序列包括至少一個(gè)條形碼;以及 d)、對(duì)所述子序列進(jìn)行解碼,得到條形碼信息。
      2.根據(jù)權(quán)利要求1所述的方法,還包括: aO)、對(duì)原始圖片進(jìn)行二值化處理,得到處理后的圖片; 以及其中,步驟a)具體為: 逐行掃描所述處理后的圖片,并統(tǒng)計(jì)掃描行上相互交替的黑色帶和白色帶中像素點(diǎn)的個(gè)數(shù),得到所述掃描行的數(shù)據(jù)序列。
      3.根據(jù)權(quán)利要求1所述的方法,其中,步驟d)包括: dl)、從所述子序列中查找第一條形碼的真實(shí)開(kāi)始碼; d2)、從查找到的所述第一條形碼的真實(shí)開(kāi)始碼開(kāi)始,對(duì)所述子序列進(jìn)行解碼,得到第一條形碼信息。
      4.根據(jù)權(quán)利要求3所述的方法,其中,步驟dl)包括: dll)、將滑動(dòng)窗口在所述子序列的第一位開(kāi)始所覆蓋的數(shù)據(jù)作為第一候選開(kāi)始碼,其中所述滑動(dòng)窗口的長(zhǎng)度與第一條形碼的真實(shí)開(kāi)始碼的長(zhǎng)度相等; dl2)、計(jì)算所述第一候選開(kāi)始碼與所述第一條形碼的真實(shí)開(kāi)始碼之間的第一偏移量;dl3)、判斷所述第一偏移量是否小于或等于預(yù)設(shè)的偏移量閾值;dl4)、如果所述第一偏移量小于或等于預(yù)設(shè)的偏移量閾值,確定第一候選開(kāi)始碼為第一條形碼的真實(shí)開(kāi)始碼。
      5.根據(jù)權(quán)利要求4所述的方法,其中,步驟dl)還包括: dl5)、如果所述第一偏移量大于預(yù)設(shè)的偏移量閾值,將所述滑動(dòng)窗口滑動(dòng)到所述子序列的第二位,并將所述滑動(dòng)窗口在所述子序列的第二位開(kāi)始所覆蓋的數(shù)據(jù)作為第二候選開(kāi)始碼; dl6)、計(jì)算所述第二候選開(kāi)始碼與所述第一條形碼的真實(shí)開(kāi)始碼之間的第二偏移量;dl7)、判斷所述第二偏移量是否小于或等于預(yù)設(shè)的偏移量閾值;dl8)、如果所述第二偏移量小于或等于預(yù)設(shè)的偏移量閾值,確定第二候選碼為第一條形碼的真實(shí)開(kāi)始碼。
      6.根據(jù)權(quán)利要求1所述的方法,其中,步驟b)包括: bl)、針對(duì)每?jī)蓚€(gè)相鄰掃描行的數(shù)據(jù)序列中任意一對(duì)位置對(duì)齊的子序列,判斷該對(duì)子序列中位于對(duì)齊位置的各個(gè)數(shù)據(jù)是否相同,其中所述子序列包含連續(xù)相鄰的M個(gè)數(shù)據(jù),M為正整數(shù),且M大于或等于預(yù)設(shè)的最小數(shù)量閾值; b2)、如果相同,確定兩個(gè)掃描行的數(shù)據(jù)序列中包含相同的子序列; b3)、如果不相同,計(jì)算該對(duì)子序列中位于對(duì)齊位置的各個(gè)數(shù)據(jù)之間的偏差; b4)、判斷該對(duì)子序列中位于對(duì)齊位置的各個(gè)數(shù)據(jù)之間的偏差是否都小于或等于預(yù)設(shè)的偏差閾值; b5)、如果該對(duì)子序列中位于對(duì)齊位置的各個(gè)數(shù)據(jù)之間的偏差都小于或等于預(yù)設(shè)的偏差閾值,確定兩個(gè)掃描行的數(shù)據(jù)序列中包含相似的子序列。
      7.根據(jù)權(quán)利要求1至6中的任一項(xiàng)所述的方法,其中,N選擇為使得連續(xù)相鄰的掃描行的高度大于或等于預(yù)設(shè)的最小高度閾值。
      8.—種設(shè)備,包括: 掃描單元,用于逐行掃描原始圖片,并統(tǒng)計(jì)掃描行上相互交替的兩個(gè)顏色帶中像素點(diǎn)的個(gè)數(shù),得到所述掃描行的數(shù)據(jù)序列; 判斷單元,用于判斷在連續(xù)相鄰的N個(gè)掃描行的數(shù)據(jù)序列中是否包含相同或相似的子序列,其中N為正整數(shù); 確定單元,用于如果在連續(xù)相鄰的N個(gè)掃描行的數(shù)據(jù)序列中包含相同或相似的子序列,確定所述子序列包括至少一個(gè)條形碼; 解碼單元,用于對(duì)所述子序列進(jìn)行解碼,得到條形碼信息。
      9.根據(jù)權(quán)利要求8所述的設(shè)備,還包括: 處理單元,用于對(duì)原始圖片進(jìn)行二值化處理,得到處理后的圖片; 所述掃描單元具體用于,逐行掃描所述處理后的圖片,并統(tǒng)計(jì)掃描行上相互交替的黑色帶和白色帶中像素點(diǎn)的個(gè)數(shù),得到所述掃描行的數(shù)據(jù)序列。
      10.根據(jù)權(quán)利要求1所述的設(shè)備,所述解碼單元包括: 開(kāi)始碼查找子單元,用于從所述子序列中查找第一條形碼的真實(shí)開(kāi)始碼; 解碼子單元,用于從查找到的所述第一條形碼的真實(shí)開(kāi)始碼開(kāi)始,對(duì)所述子序列進(jìn)行解碼,得到第一條形碼信息。
      11.根據(jù)權(quán)利要求10所述的設(shè)備,其中,所述開(kāi)始碼查找子單元包括: 第一滑動(dòng)子單元,用于將滑動(dòng)窗口在所述子序列的第一位開(kāi)始所覆蓋的數(shù)據(jù)作為第一候選開(kāi)始碼,其中所述滑動(dòng)窗口的長(zhǎng)度與第一條形碼的真實(shí)開(kāi)始碼的長(zhǎng)度相等; 第一計(jì)算子單元,用于計(jì)算所述第一候選開(kāi)始碼與所述第一條形碼的真實(shí)開(kāi)始碼之間的第一偏移量; 第一判斷子單元,用于判斷所述第一偏移量是否小于或等于預(yù)設(shè)的偏移量閾值; 第一確定子單元,用于如果所述第一偏移量小于或等于預(yù)設(shè)的偏移量閾值,確定第一候選開(kāi)始碼為第一條形碼的真實(shí)開(kāi)始碼。
      12.根據(jù)權(quán)利要求11所述的設(shè)備,其中,所述開(kāi)始碼查找子單元還包括: 第二滑動(dòng)子單元,用于如果所述第一偏移量大于預(yù)設(shè)的偏移量閾值,將所述滑動(dòng)窗口滑動(dòng)到所述子序列的第二位,并將所述滑動(dòng)窗口在所述子序列的第二位開(kāi)始所覆蓋的數(shù)據(jù)作為第二候選開(kāi)始碼; 第二計(jì)算子單元,用于計(jì)算所述第二候選開(kāi)始碼與所述第一條形碼的真實(shí)開(kāi)始碼之間的第二偏移量; 第二判斷子單元,用于判斷所述第二偏移量是否小于或等于預(yù)設(shè)的偏移量閾值; 第二確定子單元,用于如果所述第二偏移量小于或等于預(yù)設(shè)的偏移量閾值,確定第二候選碼為第一條形碼的真實(shí)開(kāi)始碼。
      13.根據(jù)權(quán)利要求8所述的設(shè)備,其中,所述判斷單元包括: 第三判斷子單元,用于針對(duì)每?jī)蓚€(gè)相鄰掃描行的數(shù)據(jù)序列中任意一對(duì)位置對(duì)齊的子序列,判斷該對(duì)子序列中位于對(duì)齊位置的各個(gè)數(shù)據(jù)是否相同,其中所述子序列包含連續(xù)相鄰的M個(gè)數(shù)據(jù),M為正整數(shù),且M大于或等于預(yù)設(shè)的最小數(shù)量閾值; 第三確定子單元,用于如果相同,確定兩個(gè)掃描行的數(shù)據(jù)序列中包含相同的子序列; 第三計(jì)算子單元,用于如果不相同,計(jì)算該對(duì)子序列中位于對(duì)齊位置的各個(gè)數(shù)據(jù)之間的偏差; 第四判斷子單元,用于判斷該對(duì)子序列中位于對(duì)齊位置的各個(gè)數(shù)據(jù)之間的偏差是否都小于或等于預(yù)設(shè)的偏差閾值; 第四確定子單元,用于如果該對(duì)子序列中位于對(duì)齊位置的各個(gè)數(shù)據(jù)之間的偏差都小于或等于預(yù)設(shè)的偏差閾值,確定兩個(gè)掃描行的數(shù)據(jù)序列中包含相似的子序列。
      14.根據(jù)權(quán)利要求8至13中的任一項(xiàng)所述的設(shè)備,其中,N選擇為使得連續(xù)相鄰的掃描行的高度大于或等于預(yù)設(shè)的最小高度閾值。
      【文檔編號(hào)】G06K7/10GK104361309SQ201410737044
      【公開(kāi)日】2015年2月18日 申請(qǐng)日期:2014年12月5日 優(yōu)先權(quán)日:2014年12月5日
      【發(fā)明者】趙國(guó)強(qiáng) 申請(qǐng)人:網(wǎng)易寶有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1