中山大学南方学院 2014 届本科生毕业论文(研究)
中山大学南方学院 2014 届本科生毕业论文(研究)
摘 要
随着二维码的日益普及,二维码的应用正在迅速扩大,条码及条码技术渗透
人们的生活中,把人们从繁琐和重复的工作中全面解脱,
二维码,又称二维条码,最早起源于日本,它是用特定的几何图形按一定规
律在平面上分布的黑白相间的图形,是所用信息的一把钥匙。
二维码除了具备一维码的低成本、传播方便等优点外,还有具备信息容量大、
可靠性高。可表示多种形式数据、保密防伪性强等优点。论文首先通过分析多种
二维码编码标准,总结二维码编码技术的一般步骤,并对编码过程中的数据编码
技术、纠错码生成和掩模技术进行详细的分析。然后分析了基于图像处理的二维
码解码算法的一般过程,并对图像预处理、二维码的定位于校正以及数据纠错过
程中涉及到的关键算法进行分析比较。针对快速响应矩阵码(QR code),详细
设计基于图像处理的 QR 码解码的算法,并对算法改进后的执行效率以及容错性
能进行分析,结合算法执行时间分析结果对关键算法进行优化。实验结果表明,
改进 QR 码解码算法的执行效率较高且稳定,并且在光照不均,存在噪声以及图
像变形等情况下均可正确解码。
本文主要对二维码的采集与处理进行研究。
关键词:二维码,数据编码,解码算法,快速响应矩阵码
I
中山大学南方学院 2014 届本科生毕业论文(研究)
ABSTRACT
With the increasing popularity of
the two
dimensional barcode applications are expanded rapidly , barcode and bar code
technology permeates gradually to people’s life from trival and repetitive work.
the two dimensional barcode,
The two-dimensional code, also known as 2D barcode, originated in Japan, it is
with specific geometric figures according to certain rules in the plane distribution of
black and white graphics, is a key of information used.
Barcode can be divided into one-dimensional(1D) barcode and two-dimensional
(2D) barcode,1D barcode has a lot of advantage such as low cost and easy
communication ,while 2D barcode has large information capacity , high reliability,
ability to express various forms of data , strong security , etc . Firstly , by analyzing
multiple 2D barcode standards , summarize , the general procedure of encoding
technology , and detail analyze the data coding technology , error correcting code
generation method and mask technology . Secondly , analyze the 2D barcode
decoding algorithm that
is based on image processing , compare the different
algorithms in the process of image pre-processing , positioning &adjustment and data
correction .Then detailed design be the decoding algorithm for QR code , improve the
binarization algorithm for 2D barcode image and QR code positioning algorithm , and
analyze the efficiency and fault
tolerance of the improved QR code decoding
algorithm . By analyzing the execution time of the decoding algorithm , find and
optimize the key algorithms . The experimental results show that the improved QR
code decoding algorithm is efficient and stable , and can identify the QR code image
uneven illumination , with noise or deformation.
This paper discussed the acquisition and processing of two-dimensional code.
Key words: two-dimensional, data encoding ,decoding
algorithm ,QR code
II
中山大学南方学院 2014 届本科生毕业论文(研究)
目 录
摘 要 ..................................................................................................................................................I
ABSTRACT .............................................................................................................................................II
目 录 ................................................................................................................................................III
第 1 章 绪论..................................................................................................................................... 4
1.1 研究背景......................................................................................................... 4
1.2 国内外发展状况............................................................................................. 5
第 2 章 二维码编码技术分析.......................................................................................................... 6
2.1 引言................................................................................................................ 6
2.2 二维码数据编码技术.................................................................................... 7
2.3 二维码纠错码构造方法................................................................................ 9
2.4 二维码掩模技术.......................................................................................... 10
2.5 小结.............................................................................................................. 12
第 3 章 二维码解码技术分析........................................................................................................ 13
3.1 引言.............................................................................................................. 13
3.2 二维码图像预处理...................................................................................... 14
3.3 二维码的定位于校正.................................................................................. 17
3.4 数据纠错...................................................................................................... 22
第 4 章 基于图像处理的 QR 码解码算法改进与性能分析............................................................ 27
4.1 引言.............................................................................................................. 27
4.2 算法总体设计.............................................................................................. 28
4.3 基于 Bernsen 的二维码图像二值化算法改进..................................................30
4.4 QR 码定位算法改进.....................................................................................34
4.5 算法性能分析............................................................................................................. 39
第 5 章 总结 ..................................................................................................................................... 47
致 谢 ...............................................................................................................................................48
参考文献........................................................................................................................................... 49
III
中山大学南方学院 2014 届本科生毕业论文(研究)
第 1 章 绪论
1.1 研究背景
一、二维条码技术的产生背景一维条码自出现以来,得到了人们的普遍关注,
发展速度十分迅速。它的使用,极大地提高了数据采集和信息处理的速度,提高
了工作效率,并为管理的科学化和现代化做出了很大贡献。由于受信息容量的限
制,一维条码仅仅是对“物品”的标识,而不是对“物品”的描述。故一维条码
的使用,不得不依赖数据库的存在。在没有数据库和不便联网的地方,一维条码
的使用受到了较大的限制,有时甚至变得毫无意义。另外,要用一维条码表示汉
字的场合,显得十分不方便,且效率很低。现代高新技术的发展,迫切要求用条
码在有限的几何空间内表示更多的信息,从而满足千变万化的信息表示的需要。
二维条码正是为了解一维条码无法解决的问题而产生的。因为它具有高密度、高
可靠性等特点,所以可以用它表示数据文件(包括汉字文件)、图像等。
二维条码是大容量、高可靠性信息实现存储、携带并自动识读的最理想的方
法。二、二维条码的特性高密度目前,应用比较成熟的一维条码如 EAN/UPC 条
码,因密度较低,故仅作为一种标识数据,不能对产品进行描述。我们要知道产
品的有关信息,必须通过识读条码而进入数据库。这就要求我们必须事先建立以
条码所表示的代码为索引字段的数据库。二维条码通过利用垂直方向的尺寸来提
高条码的信息密度。通常情况下其密度是一维条码的几十到几百倍,这样我们就
可以把产品信息全部存储在一个二维条码中,要查看产品信息,只要用识读设备
扫描二维条码即可,因此不需要事先建立数据库,真正实现了用条码对“物品”
的描述。具有纠错功能一维条码的应用建立在这样一个基础上,那就是识读时拒
读(即读不出)要比误读(读错)好。因此一维条码通常同其表示的信息一同印刷出
来。当条码受到损坏(如污染,脱墨等)时,可以通过键盘录入代替扫描条码。鉴
于以上原则,一维条码没有考虑到条码本身的纠错功能,尽管引入了校验字符的
概念,但仅限于防止读错。
二维条码可以表示数以千计字节的数据,通常情况下,所表示的信息不可能
与条码符号一同印刷出来。如果没有纠错功能,当二维条码的某部分损坏时,该
条码便变得毫无意义,因此二维条码引入错误纠正机制。这种纠错机制使得二维
条码因穿孔、污损等引起局部损坏时,照样可以正确得到识读(见图 1)。二维条
码的纠错算法与人造卫星和 VCD 等所用的纠错算法相同。这种纠错机制使得二维
条码成为一种安全可靠的信息存储和识别的方法,这是一维条码无法相比的。
4
中山大学南方学院 2014 届本科生毕业论文(研究)
1.2 国内外发展状况
上世纪 80 年代末,美国、日本等国家企业,研究机构开始进行二维码的研
究,1989 年美国国际资料公司发明了 Data Matrix[1],原名为 Data Code;PDF417
码[3,4]为 1991 年留美华人王寅敬(音)博士发明并有讯宝(Symbol)公司定制完
成;1991 年美国知名 UPS(United Parcel Service)快递公司推出 UPS 码,即
Maxicode 二维码前身;1994 年日本 Denso 公司发明了 QR 码[2,5](Quick Response
Code);2009 年微软推出一种新的二维码“Microsoft Tag”,增加了色彩维度,
因此又称为彩色条码[8],二维码标准化的国外研究机构主要有国际自动识别制造
协会(AIMI)、美国标准化协会(ANSI)以及新成立的国际标准化组织/国际电工
委员会第一联合委员会的条码自动识别技术委员会(ISO/IEC/JTCI/SC31),其中
AIMI 与 ANSI 已经完成了 PDF417、QR code、Code one、Code 16k、Code 49 等
码制的符号标准,条码自动识别技术委员会(ISO/IEC/JTCI/SC31)已经制定包
括 QR 码 的 国 际 标 准 ISO/IEC 18004:2006 、 PDF417 码 的 国 际 标 准 ISO/IEC
15438:2006、Data Matrix 的国际标准 ISO/IEC 16022:2006 等二维码的国际标
准,并且不断完善。
我国对二维码的研究是从 20 世纪 90 年代初开始的。最初是由中国物品编码
中心对几种常用的二维码 PDF417、QR code、Code one、Code 16k、Code 49 的
技术规范进行翻译和跟踪研究。2003 年上海龙贝信息科技推出了龙贝二维矩阵,
2005 年中国编码中心完成 3 了汉信码的研究[7],深圳矽感科技公司分别于 2002
年和 2003 年研发具有自主知识产权的 CM 二维码和 GM 二维码[6]。国家质量监督
局制定了相关的二维码国家标准,主要包括 GT/B 17172-1997《四一七条码》、
GB/T 18284-200《快速响应矩阵码》以及 GB/T 21049-2007《汉信码》。
综上所述,标准化仍然是二维码技术的一个主要研究方向。我国的二维码技
术的研究已经从学习国外标准发展到自主研发二维码标准的阶段,但是国内的二
维码的标准化还不够完善。
二维码现已被广泛的应用与各种领域,例如美国亚利桑利亚州等十多个州已
经将二维码应用驾驶证、美国军人证、军人医疗证上;在日本,到处可见印制在
报纸书刊上的二维码,用于发布新闻、广告信息;韩国已经出现了“地铁”超市:
将手机作为“购物车”,二维码作为“购买通道”,直接通过网上支付购买,大大
方便了日常生活。在我国,二维码主要应用与票务系统中,二维码首先出现了新
一代火车票上,加速了我国火车票实名制的发展,中国南方航空和中国移动联合
推出了二维码“手机电子登机牌”,登机牌信息会存储在二维码中,以彩信的形
式发送到乘客的手机上,乘客可以直接通过机场的二维码识别器来打印登机牌。
这是二维码在我们生活中的一些应用。
5
中山大学南方学院 2014 届本科生毕业论文(研究)
第 2 章 二维码编码技术分析
2.1 引言
二维码的编码是借助相关技术用原始数据生成二维码的过程,二维码编码
技术就是在编码过程中所用到的所有相关技术的集合,下面给出二维码的主要流
程:
(1) 数据分析。对原始数据进行分析,确定数据类型,然后根据类型选择
编码效率最高的编码类型;
(2) 数据编码。根据数据分析得到编码模式,将数据字转换为二进制位流;
(3) 纠错编码。采用纠错码技术生成相应的纠错码,如果数据较大,首先
要对数据进行分块,然后生成每个数据块的纠错码,按照分块顺序合
并作为最终的纠错码;
(4) 布置模块。首先组合数据码字和纠错码字,构成最终的数据码字,然
后根据要求添加相应的版本、格式、定位结构,并根据定义好的规则
在矩阵中布置模块;
(5) 掩码。用不同的掩模图形对编码区进行掩模处理,评价结果,选择掩
模评估结果最好进行掩模。
开始
数据分析
数据编码
生成纠错码
增加功能图形,在矩阵中布置模块
添加掩模
结束
图 2.1 二维码编码的主要流程
6
中山大学南方学院 2014 届本科生毕业论文(研究)
2.2 二维码数据编码技术
引入数据编码的目的在于提高数据压缩率和编码效率,增大了二维码可存储
数据的范围。二维码的数据编码方法分为两步,首先根据数据分析的结果选择合
适的编码模式,然后使用相应的编码模式进行数据编码,最终将原始数据转换为
二维码进制流。
2.2.1 编码模式
不同的二维码的编码模式的划分也不相同。PDF417 将数据编码模式主要包括
字节模式、数字模式和文本模式,其中文本模式有可以分成小写字母、大写字母、
标点以及混合模式[3,4]。Maxtrix 主要用于快递业务,所以 Maxicode 的数据编码
模式基本上都是针对邮件信息的不同划分,这里不详细介绍。Data Matrix 二维
码共有 6 种编码模式和 X12 种编码模式。前面几种的二维码的编码范围相对较小,
编码数据主要为数字、大小写字母、符号以及一些特定应用的编码集,相比而言,
QR 码的可编码内容更加丰富,下面在 QR 码模式的基础上分析二维码的一些常用
编码模式[2,5]。
数字模式
然后转换 2 进制作为最终的编码结果。
字母模式
字母数字模式
10 位二进制数来表示 3 个数字字符,将 3 个数字字符看成一个 3 位十进制数,
数字模式是针对二进制数字 0~9(ASCII 值为 30HEX 至 39 HEX)编码,通常采用
字母又可以分为大写字母 A~Z(ASCII 值为 41HEX 至 5A HEX)和小写字母 a~z
码,首先介绍 QR 码和 CM 码对这类数据的编码方法、QR 码对数字(0~9)、字母
(A~Z)以及 9 个标点符号(空格、$、%、*、+、-、. 、/)共计 45 个字符进
行混合编码,采用 11 位二进制数来表示 2 个字符;CM 码[7]的混合编码的编码范
字母、数字以及常用标点符号常常组合使用,所以针对这类数据进行单独编
(ASCII 值为 61HEX 至 7A HEX),可以分别作为 5 位二进制数来表示。
围包括了数字、小写字母、大写字母以及空格,共计 63 个字母,用六位二进制
数来表示一个字符。但是如果同时包括数字、大小字母以及常用符号共计 71 个
字符,以上两种编码模式不再适合,可以选择用 19 位二进制数表示 3 位字符。
8 位字节模式
7