CN102034078B - 图像条码识别的编码方法 - Google Patents
图像条码识别的编码方法 Download PDFInfo
- Publication number
- CN102034078B CN102034078B CN 201010605637 CN201010605637A CN102034078B CN 102034078 B CN102034078 B CN 102034078B CN 201010605637 CN201010605637 CN 201010605637 CN 201010605637 A CN201010605637 A CN 201010605637A CN 102034078 B CN102034078 B CN 102034078B
- Authority
- CN
- China
- Prior art keywords
- code
- barcode
- idle bit
- coding
- adaptive factor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Image Processing (AREA)
- Character Discrimination (AREA)
Abstract
本发明提供一种图像条码识别的编码方法,包括对图像条码的信息进行二值化及倾斜校正,确定投影特征,对图像条码进行0-1码编码及类行程码编码,根据类行程码计算图像条码所表示字符的数量,根据字符数量计算每一字符对应的一组条码的基本单元宽度,并计算该组条码中每一单元的宽度,获得初始条空码,设置自适应因子,将初始条空码的每一数值与自适应因子相加获得校正条空码,并对校正条空码进行求和校验,判断校正条空码是否正确,若正确,则根据校正条空码进行查表,确定每一组条码所表示的字符;否则,更改自适应因子,再次计算校验条空码并进行校验。本发明提供的图像条码的编码方法可识别不符合编码规则的图像条码,识别能力更强。
Description
技术领域
本发明涉及数据识别技术领域,尤其涉及一种用于图像条码识别的编码方法。
背景技术
图像式一维条码能可靠地表示大量信息,并具有灵活实用的特点,已广泛地应用在各种产品的标识、各种信息输入系统中,现有的图像式一维条码中以39码和128码的应用最为广泛。
128码由多根宽度不等的黑条与白条组成,典型的128码如图1所示。128码的多根条码用于表示多个字符,第一个字符到倒数第二个字符的每一字符由三根黑条与三根白条表示,通常黑条被称为“条”,白条被称为“空”,而每一根黑条或每一根白条称为“单元”,每一字符对应的三根黑条与三根白条称为一组条码,因此一组条码由六个单元组成。
黑条与白条具有四种不同的宽度,分别是一倍宽度、两倍宽度、三倍宽度和四倍宽度,条码编码时分别用 “1”、“2”、“3”和“4”表示。并且,一组条码的宽度之和为十一倍宽度,即一组条码编码的数值之和为11。通常,一倍宽度被称为一个“基本单元”,因此一组条码的宽度为十一个基本单元。
128码有多种不同的组合方式,并且有其编码规律,128码的编码时使用一个条码编码表格,表格是条码编码与字符的对应关系,因此通过查表方式可确定每一组条码所表示的字符。
128码最后一个字符为结束标志符,其由七个单元组成,宽度是十三个基本单元,用于表示条码的终结。本申请主要讨论第一个字符到倒数第二个字符的识别。
现有的图像条码大多粘贴或印刷在产品表面上,对图像条码所代表的信息的识别方法是通过照相机或扫描仪将图像条码的信息读取到计算机中,通过计算机的处理获取相应的字符。例如,《光电工程》杂志2010年37卷第3期中《图像式一维条码识别的三重编码方法》一文公开了一种应用三重编码技术对一维条码进行识别的方法,其主要是对通过照相机或扫描仪获得的图像条码的信息进行编码,从而获得条码所表示的字符。
该方法首先对计算机所获取的图像条码的信息进行二值化,也就是确定计算机所获取的图像中哪些像素表示黑条,哪些像素表示白条。然后对图像条码进行倾斜校正,使得图像条码是水平显示。接着,确定图像条码的投影特征,即确定图像条码的边界,如图像条码的总长度、高度等。
再接着,对图像条码进行三重编码,分别是0-1码编码、类行程码编码和条空码编码。0-1码编码时,首先选取合适的识读线,确定位于识别线上的图像像素属于“条”还是“空”,使用“1”表示“条”,使用“0”表示“空”。如图1所示的128条码,经过0-1码编码后获得的0-1码如下:
111111000011100000000011111111110000000011111110000000011111110000000011111110000111111110000111111100001111111111111110000111000000001111111111111100000000011100001111111111100001111111111111110000111000011111110000000000001110000000011100000000111111110001111111100001111111000000000000111111100000000000011100001110000000000001110000111100001111111111111100000000000011111111111111000000000000111100011110000111111111111111000000011110000111000000001111111000011110000000000011111111111000111110000000111111111111111000111100000001111111100000000000111111111110001111100011111111
第二重编码是类行程码编码,将0-1码中相邻的多个“0”或多个“1”合并成一位,并取值为相邻“1”或“0”的个数,上述例子的类行程码如下:
6 4 3 9 10 8 7 8 7 8 7 4 8 4 7 4 15 4 3 8 14 9 3 4 11 4 15 4 3 4 7 12 3 8 3 8 8 3 8 4 7 12 7 12 3 4 3 12 3 4 4 4 14 12 14 12 4 3 4 4 15 7 4 4 3 8 7 4 4 11 11 3 5 7 15 3 4 7 8 11 11 3 5 3 8
同时,定义类行程码的长度为总单元个数Nt,上述例子中Nt=85。
第三重编码是条空码编码,首先根据类行程码的长度计算图像条码所表示的字符数量N,上述例子中,
根据字符数量确定条码的组数,由于每一字符对应一组条码,因此条码组数也为N。计算条码组数后,确定每一组条码的基本单元宽度U(i),其中i表示i组条码,
式2中,SRLE为类行程码的长度,j表示类行程码中的第j个单元。
然后,根据每一组条码的基本单元宽度,确定每一组条码中每一单元的宽度,即计算每一单元与每一基本单元之间的比率SSE(i,j),
通过式3的计算,比率SSE(i,j)通常是小数,因此需要对比率SSE(i,j)进行取整处理,例如应用去尾法或四舍五入法处理。并且,对于基本单元倍数小于1或大于4的单元作以下处理:
通过上述计算可得到条空码,最后根据条空码进行查表,查得每一条空码所表示的字符,从而得到图像条码所表示的字符串。
虽然上述方法能对外观不完好、有噪声或有缺损的图像条码具有较好的识别能力,但对条码缺损或印刷质量等问题而导致图像条码不能准确表达条码本来的编码规则的情况,上述方法无法正确识别条码,例如某一组条码经识别后对应的条空码数值之和不为11,上述方法无法解决这一问题,导致无法查表确定对应字符,从而使上述方法的使用受限。
发明内容
本发明的目的是提供一种能有效对不能正确反映编码规则的图像条码进行识别的图像条码识别的编码方法。
为此,本发明提供的图像条码识别的编码方法包括对计算机所获取的图像条码的信息进行二值化及倾斜校正,确定图像条码的投影特征,对图像条码进行0-1码编码获取0-1码,并对0-1码进行类行程码编码,获取类行程码,根据类行程码计算图像条码所表示字符的数量,并根据字符的数量计算每一字符对应的一组条码的基本单元宽度,根据每一组条码的基本单元宽度计算该组条码中每一单元的宽度,获得初始条空码,并且,设置自适应因子,将初始条空码的每一数值与自适应因子相加获得校正条空码,并对每一组条码对应的校正条空码进行求和校验,判断校正条空码是否正确,若正确,则根据校正条空码进行查表,确定每一组条码所表示的字符;否则,更改自适应因子,再次计算校验条空码并进行校验。
由上述方案可见,对类行程码进行条空码编码后,还与一个自适应因子相加,从而改变初始的条空码,即使某一组条空码之和不为11,与自适应因子相加后,可得到一个相加之和为11的一组校正条空码,从而满足查表要求。这样,该编码方法能适用于不符合编码规则的图像条码识别,应用范围更广,识别能力更强。
一个优选的方案是,更改自适应因子的步骤是在一定取值范围内更改自适应因子,该取值范围具有上限阈值与下限阈值。
由此可见,限制自适应因子的取值范围,能避免自适应因子取值过大而导致校正条空码失真,同时也减少计算机的计算量。
进一步的方案是,更改自适应因子的步骤是从上限阈值向下限阈值递减更改。这样,应用计算机编程时,可设计简单的循环程序即可实现,减少编程的麻烦。
再进一步的方案是,在取值范围内更改自适应因子为任一数值且校验条空码的校验结果均错误后,对初始条空码进行最近编码校验,最近编码校验步骤是将初始条空码与条码编码表中所有条码编码进行对比判断,以相同码位最多的条码编码作为正确编码。
由上述方案可见,在自适应编码失败后,再通过最近编码校验,能查找出与初始条空码最近的条码编码,这样可确保条码能够满足查表的要求,对图像条码的识别能力更强。
附图说明
图1是图像条码的示例图。
图2是本发明实施例的流程图。
图3是本发明实施例中自适应编码的流程图。
图4是本发明实施例中最近编码校验的流程图。
以下结合附图及实施例对本发明作进一步说明。
具体实施方式
本文以128码为例进行分析,应用本实施例的编码方法前,首先使用照相机或扫描仪等将图像条码扫描并输入至计算机中,形成图像条码的信息。然后,对图像条码进行识别,识别方法的流程如图2所示。
首先,执行步骤S1,对图像条码的信息进行二值化、倾斜校正,并确定图像条码的投影特征,从而完成图像条码识别的预处理。
然后,执行步骤S2,对图像条码进行0-1码编码,获得0-1码,并对0-1码进行类行程码编码,获得类行程码,0-1码编码与类行程码编码方法与现有的0-1码编码及类行程码编码的方法相同,不再赘述。
接着,执行步骤S3,对类行程码进行自适应编码,自适应编码的流程如图3所示。进行自适应编码时,首先执行步骤S11,根据类行程码计算所表示字符的数量,如应用上文的式1计算得到字符的数量N,确定字符的数量后可确定条码的组数也为N。然后,执行步骤S12,根据类行程码的总长度、字符的数量应用式2计算每一组条码的基本单元宽度U(i),并执行步骤S13,根据基本单元宽度U(i),应用式3计算每一组条码中每一单元与该组基本单元宽度U(i)的比率SSE(i,j),从而获得每一组条码的初始条空码。需要说明的是,本实施例中,计算比率SSE(i,j)后不进行取整处理,而是保留一位或两位小数,同时也不对小于1或大于4的数值进行处理。
然后,选取一个自适应因子m,自适应因子m具有一定的取值范围,本实施例的取值范围是-0.6至0.6之间,因此自适应因子m的下限阈值是-0.6,上限阈值是0.6。同时,设定自适应因子m递增或递减的变化量,每一次的变化量为0.1,因此自适应因子m有13个取值。
接着,执行步骤S14,选取第一组条码对应的初始条空码,并执行步骤S15,取自适应因子m的上限阈值,即0.6,然后执行步骤S16,计算校正条空码Code(i,j),
式5中,SSE(i,j)是每一单元的宽度,也就是初始条空码中每一单元对应的数值。计算校正条空码Code(i,j)后,需要对其进行取整处理,并且,还需要对校正条空码作以下处理:
计算校正条空码后,执行步骤S17,对计算的每一组校正条空码进行求和校验,计算每一组校正条空码的和IDEN(i),
若校正条空码正确,则每一组的校正条空码数值之和IDEN(i)为11,因此可通过判断每一组校正条空码数值之和IDEN(i)是否为11可判断该组校正条空码是否正确,即执行步骤S18。例如,校正条空码“311323”,因其和为13,是不正确的条空码,若校正条空码为“211232”,则是正确的条空码。
若校正条空码Code(i,j)正确,则执行步骤S21,判断是否最后一组初始条空码计算与校验完毕,若未计算校验完毕,则执行步骤S22,选取下一组初始条空码,返回步骤S15,直至所有初始条空码计算并校正完毕,并执行步骤S23,输出自适应编码成功的信息。
若校正条空码Code(i,j)不正确,则执行步骤S19,自适应因子m递减。由于自适应因子m初始值是上限阈值,即0.6,递减一个单位后是0.5。此时,需要执行步骤S20,判断自适应因子m是否小于下限阈值,即小于-0.6的数据,若未小于下限阈值,则返回执行步骤S16,应用更改后的自适应因子m再次计算校验条空码,并对再次计算的校验条空码进行求和校验。
若自适应因子m取值小于下限阈值,即小于-0.6,计算的校验条空码仍然无法求和校验正确,则执行步骤S24,判断自适应编码识别,自适应编码结束。
回看图2,自适应编码后,执行步骤S4,判断自适应编码是否成功,若成功,则执行步骤S5,根据自适应编码成功的校正条空码查表获取对应的字符形成字符串。若自适应编码失败,表示自适应因子m在其取值范围内选取任一值,校验条空码的求和校验均错误,此时执行步骤S6,进行最近编码校验。最近编码校验是将初始条空码与条码编码表中的所有条码编码进行对比,查找与条码编码表中相同码位数最多或差异码位数最少的条码编码作为正确的编码输出,最近编码校验的流程如图4所示。
进行最近编码校验时,首先设置初始相同码位数以及初始差异码位数,即执行步骤S31。本实施例中,初始的相同码位数与初始的差异码位数均为0。然后,执行步骤S32,选取条码编码表格中第一条条码编码,然后执行步骤S33,将选取的条码编码与初始条空码进行对比,并确定初始条空码与第一条条码编码的相同码位数以及差异码位数,记为当前的相同码位数与当前的差异码位数。
然后,执行步骤S34,判断当前的相同码位数是否大于初始相同码位数,若大于,表示所选取的条码编码更为接近于正确的编码,因此执行步骤S35,将当前的相同码位数记为初始相同码位数,将当前的差异码位数记为初始差异码位数,并将所选取的条码编码记为正确编码。
若步骤S34的判断结果为否,则直接执行步骤S36,判断所选取的条码编码是否为条码编码表中的最后一条编码,若没有到达,则执行步骤S38,选取下一条编码,并返回执行步骤S33,再次进行对比判断。若所选取的条码编码为最后一条编码,则执行步骤S37,将记为正确编码的条码编码输出,最近编码校验结束。
图2中,最近编码校验结束后,执行步骤S5,使用最近编码校验输出的正确编码进行查表,得到条码对应的字符。
最近校验编码过程中,不单可以使用相同码位数最多的条码编码最为正确编码的判断标准,还可以使用差异码位数最少的条码编码最为正确编码的判断标准,即步骤S34不是判断当前的相同码位数是否大于初始相同码位数,而是判断当前的差异码位数是否小于初始的差异码位数,其判断结果是一样的。
若遇到有多条条码编码的相同码位数相同的情况,则选取第一条相同码位最多的条码编码作为正确编码。
由上述方案可见,通过自适应编码,能有效对不符合编码规则的图像条码进行校正,并且确保校正的正确性。此外,对无法通过自适应编码校正的条空码,还执行最近编码校验,能更有效地计算正确的条码编码,使图像条码的识别更为灵活有效,该编码方法对条码的识别能力更强。
当然,上述实施例仅是本发明较佳的实施方案,实际应用时还可以有更多的变化,例如,更改自适应因子m时,可从下限阈值开始向上限阈值递增更改,或者,先计算自适应因子m上限阈值与下限阈值的平均值,如上述实施例为0,从平均值开始向上限阈值递增更改,再从平均值开始向下限阈值递减更改,这样的更改方式能更快地计算出正确的校验条空码,且所取得的效果相同。
最后需要强调的是,本发明不限于上述实施方式,如自适应因子取值范围与更改单位的改变、最近编码校验查表方式的改变等变化也应该包括在本发明权利要求的保护范围内。
Claims (4)
1.一维图像条码的识别方法,包括
对图像条码的信息进行二值化及倾斜校正,确定所述图像条码的投影特征;
获取所述图像条码的0-1码,并对所述0-1码进行类行程码编码,获取类行程码,根据所述类行程码计算所述图像条码所表示字符的数量,并根据所述字符的数量计算每一所述字符对应的一组条码的基本单元宽度,根据每一组条码的所述基本单元宽度计算该组条码中每一单元的宽度,获得初始条空码;
其特征在于:
设置自适应因子,将所述初始条空码的每一位数值与所述自适应因子相加获得校正条空码,并对每一组条码对应的所述校正条空码进行求和校验,判断所述校正条空码是否正确,若正确,则根据所述校正条空码进行查表,确定每一组条码所表示的字符;否则,更改所述自适应因子,再次计算校验条空码并进行校验,更改所述自适应因子的步骤是在一取值范围内更改所述自适应因子,所述取值范围具有上限阈值与下限阈值;
在所述取值范围内更改所述自适应因子为任一数值且所述校验条空码的校验结果均错误后,对所述初始条空码进行最近编码校验,所述最近编码校验步骤是将所述初始条空码与条码编码表中所有条码编码进行对比判断,以相同码位最多的条码编码或者以差异码位最少的条码编码作为正确编码。
2.根据权利要求1所述的一维图像条码的识别方法,其特征在于:
更改所述自适应因子的步骤是从所述上限阈值向所述下限阈值递减更改。
3.根据权利要求1所述的一维图像条码的识别方法,其特征在于:
更改所述自适应因子的步骤是从所述下限阈值向所述上限阈值递增更改。
4.根据权利要求1所述的一维图像条码的识别方法,其特征在于:
更改所述自适应因子的步骤是计算所述上限阈值与所述下限阈值的平均值,从所述平均值向所述上限阈值递增更改,并从所述平均值向所述下限阈值递减更改。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010605637 CN102034078B (zh) | 2010-12-24 | 2010-12-24 | 图像条码识别的编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010605637 CN102034078B (zh) | 2010-12-24 | 2010-12-24 | 图像条码识别的编码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102034078A CN102034078A (zh) | 2011-04-27 |
CN102034078B true CN102034078B (zh) | 2013-03-13 |
Family
ID=43886951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010605637 Active CN102034078B (zh) | 2010-12-24 | 2010-12-24 | 图像条码识别的编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102034078B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106971213B (zh) * | 2016-01-13 | 2020-05-19 | 王硕腾 | 二维条码的编码方法、解码方法与电子装置 |
CN105975894B (zh) * | 2016-05-11 | 2018-08-21 | 华中科技大学 | 一种基于自适应边缘检测和映射模型的一维码识别算法 |
CN107040791B (zh) * | 2017-04-06 | 2019-12-31 | 苏州工业职业技术学院 | 适用于电子显示标签的自适应二值图像压缩方法 |
CN109522767B (zh) * | 2017-09-18 | 2022-07-29 | 北京星河泰视特科技有限公司 | 一维码断码视觉检测方法 |
CN113514446B (zh) * | 2021-05-26 | 2022-11-22 | 哈尔滨工业大学 | 一种用于快速匹配识别sers谱图的方法 |
CN117774986B (zh) * | 2024-02-27 | 2024-05-07 | 中国测绘科学研究院 | 一种智能网联汽车高精度地图厘米级定位方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1674033A (zh) * | 2004-04-16 | 2005-09-28 | 广州市瀚迪科技开发有限公司 | 一种一维条码解码方法 |
CN101840496A (zh) * | 2010-06-01 | 2010-09-22 | 福建新大陆电脑股份有限公司 | 一维条码解码芯片 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8684269B2 (en) * | 2008-12-23 | 2014-04-01 | Ncr Corporation | Methods and apparatus for providing a changing field of view in image based bar code scanning |
-
2010
- 2010-12-24 CN CN 201010605637 patent/CN102034078B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1674033A (zh) * | 2004-04-16 | 2005-09-28 | 广州市瀚迪科技开发有限公司 | 一种一维条码解码方法 |
CN101840496A (zh) * | 2010-06-01 | 2010-09-22 | 福建新大陆电脑股份有限公司 | 一维条码解码芯片 |
Non-Patent Citations (2)
Title |
---|
图像式一维条码识别的三重编码方法;邓泽峰等;《光电工程》;20100331;第37卷(第3期);全文 * |
邓泽峰等.图像式一维条码识别的三重编码方法.《光电工程》.2010,第37卷(第3期),全文. |
Also Published As
Publication number | Publication date |
---|---|
CN102034078A (zh) | 2011-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102034078B (zh) | 图像条码识别的编码方法 | |
US7020327B2 (en) | Machine readable code image and method of encoding and decoding the same | |
CN101573761B (zh) | 具有可变读取阈值的非易失性存储器 | |
CN110728290B (zh) | 检测数据模型安全性的方法及装置 | |
CN101609283B (zh) | 图像处理装置及图像处理方法 | |
CN109146083B (zh) | 特征编码方法和装置 | |
US20130215473A1 (en) | System and method for creating machine-readable codes in combination with other images such as logos | |
CN107392270B (zh) | 一种二维码生成方法 | |
US7611067B2 (en) | Printed material with identification function, image generating apparatus, image processing apparatus, image generating method, image processing method, and program product therefor | |
CN109871861B (zh) | 一种用于为目标数据提供编码的系统及方法 | |
US6834803B2 (en) | Ink-spread compensated bar code symbology and compensation methods | |
CN109454997B (zh) | 一种具有电子纹理的二维码打印生成系统 | |
EP2628123B1 (en) | A system for generating an incrementally completed 3d security mark | |
CN114998922A (zh) | 一种基于格式模板的电子合同生成方法 | |
CN109886711A (zh) | 一种商品条码编码方法及装置 | |
US8973843B2 (en) | System for generating an incrementally completed security mark | |
CN115129867A (zh) | 一种文本内容审核方法、装置、设备和存储介质 | |
CN101833645A (zh) | 一种基于码字组合的条码解码方法 | |
CN104573782B (zh) | 一种一维条码编码及解码方法 | |
CN113435449A (zh) | 基于深度学习的ocr图像文字识别与段落输出方法 | |
CN109191192B (zh) | 数据估算方法、装置和计算机可读存储介质 | |
CN114386552B (zh) | 条码生成、读取方法、装置及计算机可读存储介质 | |
WO2012050570A1 (en) | A system for generating an incrementally completed 2d security mark | |
CN110738293A (zh) | 一种宽适应性条形码及其编码方法 | |
US9424502B2 (en) | System for generating an incrementally completed security mark |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent for invention or patent application | ||
CB02 | Change of applicant information |
Address after: 519060 Guangdong province science and Technology Park in Zhuhai Nanping Ping Gong Road No. 8 Applicant after: Eastcompeace Technology Co., Ltd. Address before: 519060 Guangdong province science and Technology Park in Zhuhai Nanping Ping Gong Road No. 8 Applicant before: Eastcompeace Smart Card Co., Ltd. |
|
COR | Change of bibliographic data |
Free format text: CORRECT: APPLICANT; FROM: EASTCOMPEACE SMART CARD CO., LTD. TO: EASTCOMPEACE TECHNOLOGY CO., LTD. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |