二维条形码的编码与识别
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
⑥ 对每一字符的条、空区域内的所有像素的灰度 重新设定。
⑦ 扫描条形码并识别。 我们利用 “边缘规整”算法对图 2 所示条形码进 行处理, 处理后的条形码如图 4 所示。
到要求。 我们利用软件对图 2 所示的条形码进行扫描 与识别所得结果如图 3 所示。
二维条形码的污染类型大致可以分为两类: 一类 是折痕或画痕, 另一类是磨损或污渍。 图 2 所示条形 码上的污染兼具以上两种类型。 比较而言, 这两类污 染类型中, 第一类污染可以非常容易地利用图像处理 的方法进行滤除, 这是因为折痕或画痕与标准条形码 的宽度与角度均一致的概率非常小。 而第二类污染的 图像处理效果要视污染的严重程度而不同; 严重的磨 损或污渍有可能了覆盖条形码的关键区域。 虽然二维
62 © 1994-2008 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
《现代电子技术》2002 年第 7 期总第 138 期
工业自动化
数量选择条码的行数和列数。然后可以根据数 据码词、左 右行指示符、纠错码词以及各行的 族 号查询各个码词对应的符号字符, 并根据这 些 符号字符绘制条形码, 这一过程可以仿照一 维条码的绘制方法。
1 二维条码 (M COD E) 的编码
条码有相似之处, 但也存在很大不同。 二维条码编码 最重要的还是将数据 (汉字或A SC II 码) 转换成符号 的过程, 这一过程主要采用文本组合模式。 可以将数 据与文本模式下的值的对应关系保存在一个数据库的 一张数据表中, 通过数据库查询得到的是各个字符对 应的文本码。 将这些文本码两两组合在一起就可以生 成M COD E 码词。组合公式为: 码词= 30×H + L , 式 中 H 、L 分别表示字符对中的高位和低位字符值。
二维条形码的编码与识别
算法的容错性能应该也是降低识别误码率的非常重要 的一环。我们对图 4 所示的条形码利用 R eed- So lom n 纠百度文库算法进行识别。 得到了准确无误的识别结果。
3 结 论
通过上面的论述可以看出, 二维条形码的编码简 单易行; R eed- So lom n 容错技术在编码过程中占据 着比较重要的地位。 对二维条形码的原始位图文件直 接译码虽然具有较小的计算复杂度, 但其识别误码率 将受条形码的被污染情况严重影响。“边缘规整”算法 可以有效地改善二维条形码的识别效果。 该算法复杂 度较小, 比较容易实现。二维条形码的信息容量大, 容 易识别, 在物流管理中有着比较大的作用, 具有很大 的市场潜力。
图 5 利用 “边缘规整”算法后识别的结果
积式二维条形码图像处理算法 “边缘规整”算法虽 然也不能从根本上解决两类污染的清除问题, 但可以 大大降低译码误码率。
由识别结果可以看出, 条形码经过图像处理后, 其 识别误码率明显降低。但仍然存在较大的误码率。由此 可以证明利用“边缘规整”算法对被污染的条形码进行
Sim u la t ion1N ew J ersey: P ren t ice- H a ll, 1984 8 B rockw ell, R A 1T im e Series- T heo ry and M eth
od s1N ew Yo rk: sp ring- V erlag, 1987 9 Ka tZ P 1D ig ita l Con t ro l U sing M icrop roceso rs1
收稿日期: 2002 05 10
二维条形码的编码与识别
二维条形码的编码与识别
Cod ing and D iscernable of 2D Bar Code
吕文红
L u W enhong (济南机械职工大学机电系 济南 250100)
(D ep artm en t of M ach ine and E lectrical, J inan M echan ical L abou r Co llege, J inan, 250100, Ch ina)
图 2 被污染的条形码
图 3 被污染条码识别结果
② 以条形码的平均灰度等级为分界点, 重新设定 每一像素的灰度。
③ 将条形码进行归一化处理。 计算条形码的层 数、 平均宽度及列数等信息。
④ 利用③的结果对每一字符的条、空进行“边缘 规整”。 调整条空宽度。
⑤ 重复③、④, 直至平均宽度的 2 次回归误差≤ 1 个像素。
根据这些数据码词以及选择的错误纠正等级计算 纠错码词。 错误纠正码词根据 R eed- So lom n 错误控 制码算法计算, 包括如下几个步骤:
①建立符号数据多项式, 该多项式的表达式是: d (x ) = d n- 1x n- 1 + d n- 2x n- 2 + … + d 1x + d 0 式中多项式的系数由数据码字区的码词组成。其中
P ren t ice- H a ll In terna t iona l, 1981
Abstract H a s d iscu ssed the code and cod ing p rocess of 2D B a r1M code is an im po rtan t b ranch of 2D B a r Code, you can exp ress the cha racter by u sing M code1 In o rder to reduce the erro r ra te of the ba r cod ing, the au tho r g ive an a rithm etic abou t the 2D B a r Code im age1T he fact show tha t th is a rithm etic is very effective1
V isva l C+ + 1M icro softP ress, 1995 5 黄新亚, 米央 1 信息编码技术及其应用大全 1 北
京: 电子工业出版社, 1994 6 Tom J esef1 Info rm a t ion Sy stem T heo ry1Hond skk
P ress, 1991 7 B ank s J , Ca rson John1D iscrete - even t Sy stem
二维条形码译码要比一维条形码复杂。相比之下, 矩阵式二维条形码的译码的复杂度又远远大于堆积式 二维条码的译码。 虽然矩阵式二维条形码的编码效率 远远大于堆积式二维条码, 但其译码的难度与复杂度 限制了它的发展。 堆积式二维条码在编码过程中考虑 到了其容错特性, 一般的印刷问题均可以通过码字所 固有的性能正确解码。 但在物流过程中难免会对条形 码造成不可预期的污染。 图 2 所示的是一组受到污染 的 18 层 11 列堆积式二维条形码。 该条形码的内容为 “A good cry can be a hea lth w ay to b ring relief to you r anx iety1”若对该条形码译码, R eed- So lom n 错 误控制码算法所能够达到的控制能力已经远远不能达
摘 要 论述了二维条码的编译码过程, M COD E 条码是堆积式二维条形码的一个非常重要的分支。利用M COD E 条码可以将文字信息以条形码的形式进行处理。为了降低二维条形码的识别误码率, 提出了一种针对二维条形码位图的 图形处理算法 边缘规整算法。 事实证明, 该算法在处理被污染的二维条形码方面是非常有效的。
关键词 条形码 二维条形码 边缘规整
条形码技术起源于 20 世纪 40 年代, 近几年来发 展迅速, 在国际上得到了广泛的应用。 比较有代表性 的一维条码包括U PC- E、EAN - 8、EAN - 13 等。随 着信息工业的发展, 在传统条码 (一维条码) 的基础 上发展了二维条码技术。 目前, 根据二维条码实现原 理、结构形状的差异, 可分为堆积式或层排式 (Stacked B a r Code) 和棋盘式或矩阵式二维条码两大类型。堆积 式二维条码编码设计、 校验原理等方面继承了一维条 码的特点, 所以应用比较广泛, 有代表性的包括 Code 49、PD F 417、Code16K 等。本文结合同某企业的合作 项目“信息网络中的二维条码技术设备的研制”, 对二 维条形码的编码和解码新方法及其应用进行了研究。
图 4 利用 “边缘规整”算法处理后的条形码
由图 4 可以看出, 处理后的条形码基本上清除了两 类污染的影响, 该条形码在没有利用R eed- So lom n 错 误控制码算法进行纠错时识别出的结果如图 5 所示。
条形码译码图像处理算法的种类非常多, 但都没能从 根本上解决两类污染的清除问题。 我们利用简单的堆
Keywords B a r Code, 2D B a r Code, Edge d ivider
作者简介 吕文红 女, 讲师, 1991 年毕业于北京理工大学, 获工学学士学位; 2000 年毕业于山东科技大学, 获工学硕士学 位。 曾参加远程监控编解码系统、 汽车衡对等网络、 远程抄表系统等多 8 个项目的研究工作。
参 考 文 献
1 李金哲, 朱俊英, 等 1 条形码自动识别技术 1 北京:
国防工业出版社 2 Shu lin, Co stello J r D J 1 错误控制代码的基础与
应用 1P ren t ice- H a ll, 1983 3 梁展中, 李振明 1 条形码应用入门 1 北京: 电子工
业出版社, 1990 4 D avid K rug lin sk i J , Sco t W ingo 1P rog ramm ing
M COD E 条码是一种多层、可变长度、具有高容量 和纠错能力的连续型二维条码。 如图 1 所示每一个 M COD E 条码可以包括 3~ 90 层, 每一层由起始符 终 止符、左 右层指示符及 1~ 30 个符号字符组成。每一 个符号字符由 17 个模块构成, 其中包括 4 个条和 4 个 空, 每一个条、空由 1~ 6 个模块组成。由于层数及每 一层的符号字符数是可变的, 故M COD E 符号的高宽 比可以变化以适应不同的需要。
2 二维条形码的译码
条码的传统译码方式通常是通过专用的条 码识读设备进行的, 有时候识读设备由于环境 以及操作上的失误会导致译码错误, 并且识读设备并 不是通用的, 某一种识读设备只能识读一种或几种条 形码, 所以存在一定的兼容性问题。 二维条形码的译 码一般是利用扫描仪或者摄像头将条形码保存为具有 256 个灰度等级的位图, 然后用软件对位图进行处理 译码。 其译码步骤与编码过程正好相反。
图 1 M COD E 条码结构示意图
对于堆积式二维条码, 编码方法从根本上与一维
包括符号长度码词、数据码词和填充码词。每一数据码 词(d i, i= 0, …, n- 1) 在条码中的排列位置如下:
L0 起 L1 始 符 L m- 2
L m- 1
d n- 1
d n- 2
R0 R1 终
止
d 0 C k- 1 C k- 2 R m - 2 符
C1
C0 Rm- 1
② 建立纠错码词的生成多项式, 具有 k 个错误纠 正码词的生成多项式为:
g (x ) = (x - 3) (x - 32) … (x - 3k) = x k + g k- 1x k- 1 + … + g 1x + g 0 ③ 生成错误纠正码词, 对于一组给定的数据码词 和一个选定的错误纠正等级, 错误纠正码词为符号数 据多项式 d (x ) 乘以 x k , 然后除以生成多项式 g (x ) , 所 得余式得各系数得补数。得到纠错码词之后, 根据码词
“边缘规整”算法的步骤为: ① 识别条形码的实际边界, 统计其直方图信息。
处理效果是比较明显的, 但解决二维条形码的识别问 题, 除在图像处理算法上下功夫外, 较好的错误控制码
63 © 1994-2008 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
⑦ 扫描条形码并识别。 我们利用 “边缘规整”算法对图 2 所示条形码进 行处理, 处理后的条形码如图 4 所示。
到要求。 我们利用软件对图 2 所示的条形码进行扫描 与识别所得结果如图 3 所示。
二维条形码的污染类型大致可以分为两类: 一类 是折痕或画痕, 另一类是磨损或污渍。 图 2 所示条形 码上的污染兼具以上两种类型。 比较而言, 这两类污 染类型中, 第一类污染可以非常容易地利用图像处理 的方法进行滤除, 这是因为折痕或画痕与标准条形码 的宽度与角度均一致的概率非常小。 而第二类污染的 图像处理效果要视污染的严重程度而不同; 严重的磨 损或污渍有可能了覆盖条形码的关键区域。 虽然二维
62 © 1994-2008 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
《现代电子技术》2002 年第 7 期总第 138 期
工业自动化
数量选择条码的行数和列数。然后可以根据数 据码词、左 右行指示符、纠错码词以及各行的 族 号查询各个码词对应的符号字符, 并根据这 些 符号字符绘制条形码, 这一过程可以仿照一 维条码的绘制方法。
1 二维条码 (M COD E) 的编码
条码有相似之处, 但也存在很大不同。 二维条码编码 最重要的还是将数据 (汉字或A SC II 码) 转换成符号 的过程, 这一过程主要采用文本组合模式。 可以将数 据与文本模式下的值的对应关系保存在一个数据库的 一张数据表中, 通过数据库查询得到的是各个字符对 应的文本码。 将这些文本码两两组合在一起就可以生 成M COD E 码词。组合公式为: 码词= 30×H + L , 式 中 H 、L 分别表示字符对中的高位和低位字符值。
二维条形码的编码与识别
算法的容错性能应该也是降低识别误码率的非常重要 的一环。我们对图 4 所示的条形码利用 R eed- So lom n 纠百度文库算法进行识别。 得到了准确无误的识别结果。
3 结 论
通过上面的论述可以看出, 二维条形码的编码简 单易行; R eed- So lom n 容错技术在编码过程中占据 着比较重要的地位。 对二维条形码的原始位图文件直 接译码虽然具有较小的计算复杂度, 但其识别误码率 将受条形码的被污染情况严重影响。“边缘规整”算法 可以有效地改善二维条形码的识别效果。 该算法复杂 度较小, 比较容易实现。二维条形码的信息容量大, 容 易识别, 在物流管理中有着比较大的作用, 具有很大 的市场潜力。
图 5 利用 “边缘规整”算法后识别的结果
积式二维条形码图像处理算法 “边缘规整”算法虽 然也不能从根本上解决两类污染的清除问题, 但可以 大大降低译码误码率。
由识别结果可以看出, 条形码经过图像处理后, 其 识别误码率明显降低。但仍然存在较大的误码率。由此 可以证明利用“边缘规整”算法对被污染的条形码进行
Sim u la t ion1N ew J ersey: P ren t ice- H a ll, 1984 8 B rockw ell, R A 1T im e Series- T heo ry and M eth
od s1N ew Yo rk: sp ring- V erlag, 1987 9 Ka tZ P 1D ig ita l Con t ro l U sing M icrop roceso rs1
收稿日期: 2002 05 10
二维条形码的编码与识别
二维条形码的编码与识别
Cod ing and D iscernable of 2D Bar Code
吕文红
L u W enhong (济南机械职工大学机电系 济南 250100)
(D ep artm en t of M ach ine and E lectrical, J inan M echan ical L abou r Co llege, J inan, 250100, Ch ina)
图 2 被污染的条形码
图 3 被污染条码识别结果
② 以条形码的平均灰度等级为分界点, 重新设定 每一像素的灰度。
③ 将条形码进行归一化处理。 计算条形码的层 数、 平均宽度及列数等信息。
④ 利用③的结果对每一字符的条、空进行“边缘 规整”。 调整条空宽度。
⑤ 重复③、④, 直至平均宽度的 2 次回归误差≤ 1 个像素。
根据这些数据码词以及选择的错误纠正等级计算 纠错码词。 错误纠正码词根据 R eed- So lom n 错误控 制码算法计算, 包括如下几个步骤:
①建立符号数据多项式, 该多项式的表达式是: d (x ) = d n- 1x n- 1 + d n- 2x n- 2 + … + d 1x + d 0 式中多项式的系数由数据码字区的码词组成。其中
P ren t ice- H a ll In terna t iona l, 1981
Abstract H a s d iscu ssed the code and cod ing p rocess of 2D B a r1M code is an im po rtan t b ranch of 2D B a r Code, you can exp ress the cha racter by u sing M code1 In o rder to reduce the erro r ra te of the ba r cod ing, the au tho r g ive an a rithm etic abou t the 2D B a r Code im age1T he fact show tha t th is a rithm etic is very effective1
V isva l C+ + 1M icro softP ress, 1995 5 黄新亚, 米央 1 信息编码技术及其应用大全 1 北
京: 电子工业出版社, 1994 6 Tom J esef1 Info rm a t ion Sy stem T heo ry1Hond skk
P ress, 1991 7 B ank s J , Ca rson John1D iscrete - even t Sy stem
二维条形码译码要比一维条形码复杂。相比之下, 矩阵式二维条形码的译码的复杂度又远远大于堆积式 二维条码的译码。 虽然矩阵式二维条形码的编码效率 远远大于堆积式二维条码, 但其译码的难度与复杂度 限制了它的发展。 堆积式二维条码在编码过程中考虑 到了其容错特性, 一般的印刷问题均可以通过码字所 固有的性能正确解码。 但在物流过程中难免会对条形 码造成不可预期的污染。 图 2 所示的是一组受到污染 的 18 层 11 列堆积式二维条形码。 该条形码的内容为 “A good cry can be a hea lth w ay to b ring relief to you r anx iety1”若对该条形码译码, R eed- So lom n 错 误控制码算法所能够达到的控制能力已经远远不能达
摘 要 论述了二维条码的编译码过程, M COD E 条码是堆积式二维条形码的一个非常重要的分支。利用M COD E 条码可以将文字信息以条形码的形式进行处理。为了降低二维条形码的识别误码率, 提出了一种针对二维条形码位图的 图形处理算法 边缘规整算法。 事实证明, 该算法在处理被污染的二维条形码方面是非常有效的。
关键词 条形码 二维条形码 边缘规整
条形码技术起源于 20 世纪 40 年代, 近几年来发 展迅速, 在国际上得到了广泛的应用。 比较有代表性 的一维条码包括U PC- E、EAN - 8、EAN - 13 等。随 着信息工业的发展, 在传统条码 (一维条码) 的基础 上发展了二维条码技术。 目前, 根据二维条码实现原 理、结构形状的差异, 可分为堆积式或层排式 (Stacked B a r Code) 和棋盘式或矩阵式二维条码两大类型。堆积 式二维条码编码设计、 校验原理等方面继承了一维条 码的特点, 所以应用比较广泛, 有代表性的包括 Code 49、PD F 417、Code16K 等。本文结合同某企业的合作 项目“信息网络中的二维条码技术设备的研制”, 对二 维条形码的编码和解码新方法及其应用进行了研究。
图 4 利用 “边缘规整”算法处理后的条形码
由图 4 可以看出, 处理后的条形码基本上清除了两 类污染的影响, 该条形码在没有利用R eed- So lom n 错 误控制码算法进行纠错时识别出的结果如图 5 所示。
条形码译码图像处理算法的种类非常多, 但都没能从 根本上解决两类污染的清除问题。 我们利用简单的堆
Keywords B a r Code, 2D B a r Code, Edge d ivider
作者简介 吕文红 女, 讲师, 1991 年毕业于北京理工大学, 获工学学士学位; 2000 年毕业于山东科技大学, 获工学硕士学 位。 曾参加远程监控编解码系统、 汽车衡对等网络、 远程抄表系统等多 8 个项目的研究工作。
参 考 文 献
1 李金哲, 朱俊英, 等 1 条形码自动识别技术 1 北京:
国防工业出版社 2 Shu lin, Co stello J r D J 1 错误控制代码的基础与
应用 1P ren t ice- H a ll, 1983 3 梁展中, 李振明 1 条形码应用入门 1 北京: 电子工
业出版社, 1990 4 D avid K rug lin sk i J , Sco t W ingo 1P rog ramm ing
M COD E 条码是一种多层、可变长度、具有高容量 和纠错能力的连续型二维条码。 如图 1 所示每一个 M COD E 条码可以包括 3~ 90 层, 每一层由起始符 终 止符、左 右层指示符及 1~ 30 个符号字符组成。每一 个符号字符由 17 个模块构成, 其中包括 4 个条和 4 个 空, 每一个条、空由 1~ 6 个模块组成。由于层数及每 一层的符号字符数是可变的, 故M COD E 符号的高宽 比可以变化以适应不同的需要。
2 二维条形码的译码
条码的传统译码方式通常是通过专用的条 码识读设备进行的, 有时候识读设备由于环境 以及操作上的失误会导致译码错误, 并且识读设备并 不是通用的, 某一种识读设备只能识读一种或几种条 形码, 所以存在一定的兼容性问题。 二维条形码的译 码一般是利用扫描仪或者摄像头将条形码保存为具有 256 个灰度等级的位图, 然后用软件对位图进行处理 译码。 其译码步骤与编码过程正好相反。
图 1 M COD E 条码结构示意图
对于堆积式二维条码, 编码方法从根本上与一维
包括符号长度码词、数据码词和填充码词。每一数据码 词(d i, i= 0, …, n- 1) 在条码中的排列位置如下:
L0 起 L1 始 符 L m- 2
L m- 1
d n- 1
d n- 2
R0 R1 终
止
d 0 C k- 1 C k- 2 R m - 2 符
C1
C0 Rm- 1
② 建立纠错码词的生成多项式, 具有 k 个错误纠 正码词的生成多项式为:
g (x ) = (x - 3) (x - 32) … (x - 3k) = x k + g k- 1x k- 1 + … + g 1x + g 0 ③ 生成错误纠正码词, 对于一组给定的数据码词 和一个选定的错误纠正等级, 错误纠正码词为符号数 据多项式 d (x ) 乘以 x k , 然后除以生成多项式 g (x ) , 所 得余式得各系数得补数。得到纠错码词之后, 根据码词
“边缘规整”算法的步骤为: ① 识别条形码的实际边界, 统计其直方图信息。
处理效果是比较明显的, 但解决二维条形码的识别问 题, 除在图像处理算法上下功夫外, 较好的错误控制码
63 © 1994-2008 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net