毕业设计--二维码生成与识别系统的设计与实现

毕业设计--二维码生成与识别系统的设计与实现
毕业设计--二维码生成与识别系统的设计与实现

毕业设计(论文)

题目名称:二维码生成与识别系统的设计与实现

——二维码的解码器

2014 年 5 月

二维码生成与识别系统的设计与实现——二维码的解码器

Design and Implementation of

Two-Dimensional Code Generation and

Recognition system

——The Two-Dimensional Code Decoder

2014 年5 月

I

摘要

条码技术是一种融编码,印刷,数据采集和处理与一体的自动识别技术。条码分为一维码和二维码。二维码除了具有一般一维码的优点外还具有信息容量大,可靠性高的优点。本论文首先介绍了二维码的种类,并介绍了QR Code的编码规则。然后分析了基于图像处理的二维码解码算法的一般过程, 并对图像预处理 二维码的定位与校正以及数据纠错过程中涉及到的关键算法进行分析比较针对快速响应矩阵码( Q R c o d e ) , 详细设计基于图像处理的Q R码解码算法, 为了降低算法复杂度并提高识别效率, 改进了二维码图像的二值化算法和Q R码定位算法。并对算法改进后的执行效率以及容错性能进行分析, 结合算法执行时间分析结果对关键算法进行优化。实验结果表明, 改进的Q R 码解码算法执行效率较高而且稳定,并且在光照不均 存在噪声以及图像变形等情况下均可以正确解码。

关键词:图像处理;二维码识别;二维码解码算法

II

Abstract

Barcode technology is an automatic identification technology that is consist of coding,printing,data acquisition and processing. Barcode can be divided into one-dimensional barcode and two-dimsional barcode. In addition to the advantages of the one-dimensional barcode,two-dimensional barcode also has the information capacity, and high reliability. This paper introduces the types of 2D barcode and the QR Code encoding rules . Then,analyze 2D barcode decoding algorithm that is based on image processing,compare the different algorithm in the processing of image pre-processing ,position and adjustment and data correction .Then detailed design the decoding algorithm for QR Code,improve the binarization algorithm for 2D barcode image and QR Code positioning 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.

Key Words: Image processing; Two-dimensional code recognition;

2D barcode decoding algorithm

III

目录

摘要.................................................................................................................. I I Abstract .......................................................................................................... III 目录........................................................................................................ IV 第1章绪论. (1)

1.1研究背景与意义 (1)

1.2 二维码识别技术的当前研究现状 (1)

1.3 研究内容 (3)

1.4 论文组织结构 (3)

第2章 QR码编码规则 (4)

2.1 QR码符号结构 (4)

2.2 QR码编码方法 (5)

第3章二维码识别系统的总体框架 (8)

3.1二维码识别系统的目标 (8)

3.2二维码识别系统的功能需求 (8)

3.3 二维码解码功能的设计 (9)

3.3.1二维码识别系统总体流程实现规划 (9)

3.3.2 图像预处理模块流程 (10)

3.3.3 二维码译码模块流程 (11)

3.4.软件开发平台 (12)

第4章图像预处理模块的设计与实现 (13)

4.1 彩色图像灰度化 (13)

IV

4.2 图像去噪 (14)

4.3 图像二值化 (14)

第5章二维码解码模块的设计与实现 (16)

5.1 二维码解码流程 (16)

5.2 探测图像识别的设计与实现 (16)

5.2.1 寻找探测图形 (16)

5.2.2 图像校正 (19)

5.3 二维码版本信息确定的设计与实现 (19)

5.3.1 确定每个模块的宽和高 (19)

5.3.2 二维码粗略版本确定 (20)

5.4 二维码模块采样的设计与实现 (21)

5.4.1 二维码差分图像 (21)

5.4.2 二维码模块采样 (22)

5.5 二维信息解码的设计与实现 (23)

5.5.1 版本信息的确定 (23)

5.5.2 二维码格式信息的实现 (25)

5.5.3 去除二维码掩膜的实现 (26)

5.5.4 得到数据流 (27)

5.5.5 数据纠错 (28)

5.5.6 各模式下的译码 (28)

第6章系统的调试、运行与测试 (32)

6.1 系统开发过程中的问题与解决方法 (32)

6.1.1 关于寻像图形的寻找 (32)

6.1.2 关于二维码的版本信息 (32)

6.1.3 二维码模块的采样 (32)

6.1.4 加载静态库 (32)

6.2 系统的运行与测试 (33)

6.2.1 运行结果 (33)

6.2.2 运行性能分析 (34)

第7章结论 (36)

致谢 (37)

参考文献 (38)

附录 (39)

附录A: 主要源程序 (39)

附录B: 软件使用说明书 (46)

V

VI

第1章绪论

本章首先介绍本文课题研究背景与意义, 然后从二维码的识别技术当前研究现状, 最后介绍了本文的研究内容工作描述以及论文的组织结构。

1.1研究背景与意义

一维条码是由一组粗细不同,黑白相同的,条,空及相对应的字符(数字字母)组成的条形符号,只是在一个方向(一般是水平方向)表达信息,在垂直方向不表达任何信息,其一定的高度一般是为了便于阅读器的对准。但是一维条形码存储的数据容量较小(30个字符左右),只能包含字母和数字,条码尺寸较大(空间利用率很低)并且一旦损坏就不能识别。二维条形码是在一维条形码的基础上发展起来的,是用某种特定的几何图形按一定的规律在平面上分布的条,空相见的图形来记录数据符号信息,克服了一维码的缺点。并且由于二维码的信息密度高,存储量大,纠错能力强,而且其本身具有一定的防伪功能而得到迅速发展。国外的二维码技术已经处于应用阶段,并且已研制了性能较好的二维码识别系统。而我国虽也研制出了用于识别二维码的系统,但和国外相比还是有一定的差距的。

由于二维码这种新兴的自动识别技术有其他自动识别技术无法比拟的优势,它一出现就受到的很高的重视。本文研究的解码技术主要针对的是QR码。QR码是由日本Denso公司于1994年9月研制的一种矩阵二维码符号,它除具有一维条码及其它二维条码所具有的信息容量大、可靠性高、可表示汉字及图象多种文字信息、保密防伪性强等优点外,还具有如下主要特点:普通的一维条码只能在横向位置表示大约20 为的字母或数字信息,无纠错功能,使用时候需要后台数据库的支持,而二维条码是横向纵向都存有信息,可以放入字母、数字、汉字、照片、指纹等大量信息,相当一个可移动的数据库。如果用一维条码与二维条码表示同样的信息,QR 二维码占用的空间只是条码1/11 的面积。二维码已广泛应用与社会的各个系统,如商品信息获取,网站跳转,广告推送,手机电商,防伪追溯,优惠促销,会员管理,手机支付等,因此研究二维码的识别系统具有很重要的意义。

1.2 二维码识别技术的当前研究现状

二维码的识别系统主要包括两类:专用二维码扫描器和安装有二维码解码软件的智能平台.下面主要介绍基于软件的二维码识别的发展现状。

1

二维码生成与识别系统的设计与实现--二维码的解码器

二维码扫描器的生产商主要有 ARGOX公司Symbol讯宝公司(2004年被摩托罗拉公司收购)CIPherlab公司以及国内的福建新大陆公司ARGOX公司的AS一 950影像式二维码扫描器具备绿光指引功能。

快拍(QuickMark)二维码是目前移动终端上最快的一维码二维码解码软件之一 , 支持 Apple105 Android Windows phone 和symbian560四种智能手机平台 , 具有快速识别自动解码等功能并针对互联网应用 ,增加一维码产品信息查询联网搜索信息二维码生成分享网址 URL直接访问等功能。

我查查是一款基于图形传感器和移动互联网的商品条形码比价的生活实用类手机应用。条码扫描支持一维EAN码、QR码(二维码)、二维WEPC码和快递单号(code128码)等。通过我查查,照一照商品条码,哪家店有卖、售价多少、店家的电话地址、营业时间、网址等等信息,马上会显示在手机屏幕上。

QR扫描器为iPhone及iPod Touch而设的一个便携式QR码扫描器。快速及有效的实时自动检测模式。有以下特点- 实时扫描模式- 通过电邮、FaceBook或Twitter分享出去- 综合网页浏览器- 综合地图浏览- 新的界面设计- 创建属于您的QR码- MECARD支持- 网膜图形- 用电邮发送扫描的照片。

此外,微信、QQ也有二维码解码功能。

二维码解码软件的实现依赖于二维码解码算法 , 但是二维码解码算法过程复杂 , 而且使用的相关技术繁多, 所以目前的解码算法的研究主要是对解码算法过程中关键技术的研究。

二维码扫描器采用硬件解码 , 具有识别效率高可识别多种二维码适应能力强等优点, 但是技术封闭且价格昂贵; 而二维码解码软件采用软件解码 , 具有成本低技术开放等优点, 但是识别效率一般 , 对运行平台要求较高, 而且目前仅能识别QR码。此外 , 可以通过对二维码进行改造来提高识别效率Microsoft Tag , 即彩色条码可以利用较低的分辨率条码图像来提供较高的数据容量 , 与传统二维码相比, 彩色条码降低了对采集图像分辨率的需求。Ankit Mohan 等结合光学原理和二维码技术 , 设计了一种新的载体形式 , 取名为Bokode , 基本原理为在二维码上添加透镜( 或者是具有小孔的隔光片),实现对Bokode的远距离识别。

2

1.3 研究内容

本文主要围绕二维码的解码的关键技术进行研究,主要研究基于图像处理的二维码解码关键技术。主要介绍了图像预处理,二维码定位技术以及数据译码过程中的关键算法。并在此基础上详细设计了基于图像处理的QR码解码算法 , 主要对二维码的二值化算法和QR码定位算法进行改进。本文的主要工作包括 : 分析基于图像处理的二维码解码算法中的关键技术 ; 详细设计基于图像处理的QR码解码算法 , 对二维码图像的二值化算法和QR码定位算法进行改进。

1.4 论文组织结构

本文一共分为六章,各章的大致内容如下:

第一章,绪论。本章首先介绍了本文课题的背景和意义,然后介绍了二维码识别的研究现状。最后介绍本文的研究内容和组织结构。

第二章,二维码的编码规则。本章主要从QR Code的数据编码,数据纠错,和图像掩码三个方面介绍QR Code。

第三章,二维码识别系统的总体框架。本章主要介绍了二维码识别系统的目标,功能需求,总体流程和开发条件。

第四章,二维码图像预处理模块的设计和实现。本章主要介绍了二维码图像的灰度化,图像的去噪和图像的二值化。并对二值化算法进行了改进。

第五章,二维码解码模块的设计与实现。本章在第四章的基础上进行解码。主要介绍了二维码的定位算法,二维码格式信息和版本信息的实现方法,二维码模块的采样方法。二维码解码信息的设计与实现。

第六章,系统的调试,运行和测试。本章主要介绍设计本系统遇到的问题和功能测试。

3

二维码生成与识别系统的设计与实现--二维码的解码器

第2章QR码编码规则

2.1 QR码符号结构

每个QR码由名义上的正方形模块构成,组成正方形阵列,它由编码区域和包括寻像图形、分隔符、定位图形在内的功能图形组成,功能图形不能用于数据编码。符号的四周由空区包围。如图2.1所示。

图2.1 QR码符号结构

(1)符号版本和规格

QR码符号共有40种规格,分别是版本l搬本40,版本1的规格为21x21个模块,版本2为25x25模块。以此类推,版本N的规格每行每列为21+4(N一1)个模块。

(2)寻像圈形

寻像图形包括3个位置相同的位置探测图形,分别位于符号的左上角、右上角、和左下角,如图2-1所示。每个位置探测图形可以看作是由3个重叠的同心的正方形组成,他们分别为7×7个深色模块、5x5个浅色模块、3X3个深色模块。位置探测图形的模块宽度比为1:1:3:1:l。符号中其它地方遇到类似图形的可能性极小。因此,识别组成寻像图形的3个位置探测图形,可以明确地确定视场中符号的位置和方向。

(3)分隔符

4

每个位置探测图形和编码区域之间有宽度为1个模块的分隔符,如图2-1所示。全部由浅色模块组成。

(4)定位图形

定位图形是垂直和水平方向一个模块宽的一列和一行,由深色浅色模块交替组成,其开始和结尾都是深色模块,如图2-1所示。

(5)校正图形

每个校正图形可看作是3个重叠的同心正方形,由5×5个深色模块、3×3个浅色模块以及位于中心的一个深色模块组成。校正图形的数量由QV,码的版本号决定,版本2及以上的符号均有校正图形。

(6)编码区域

编码区域包括表示数据码字、纠错码字、版本信息和格式信息的符号字符。

(7)空白区

空白区为环绕在符号四周的4个模块宽的区域,其反射率与浅色模块相同。

2.2 QR码编码方法

国家质量技术监督局发布的QR码标准中编码步骤如图2.2所示

图2.2 QR码编码步骤

1.数据编码

将输入的数据转换为一个位流,如果ECI是缺省的,那么一个数据流将包括模式指示符、字符计数指示符、数据,最后以4位终止符0000表示。其结构如图2.3所示。

图2.4定义了每个模式的模式指示符,图2.5定义了采用不同版本的字符计数指示符的长度。下面介绍几种常用的编码模式。

5

二维码生成与识别系统的设计与实现--二维码的解码器

图2.3 数据编码结构

图2.4 模式指示符

图2.5 字符计数指示符

(1)数字模式

数字模式下,将输入的数据每三位分为一组转化为10位二进制数,剩余位转化为7位或4位二进制数。最后将二进制数据连接起来并在前面加上模式指示符和数字计数指示符。

(2)字母模式

在字母模式下,将输入的数据以两个字符为一组,将前面字符的值乘以45与第二个字符的值相加,结果转化为11位二进制数,若剩余一位,则将其转化为6位二进制数。最后将二进制数据连接并在前面加上模式指示符和数字计数指示符。

(3)8位字节模式

在8位字节模式模式下,直接将二进制数连接起来并在前面加上模式指示符和字符指示符。

(4)中国汉字模式

在中国汉字模式下,每个汉字符由两个字节表示,字符值为GB2312图形字符的内码值。将数据字符两个字节为一组转化为1 3位二进制数,然后二进制数连接起来并在前面加上模式指示符和字符指示符。

2.纠错编码

6

QR码采用纠错算法生成一系列纠错码字,添加在数据码字序列后面,使得符号在遇到损坏时不致丢失数据。纠错共有4个纠错等级,分别是:L级纠错容量:7%;M级纠错容量:15%;Q级纠错容量:25%;H级纠错容量30%。

3.掩膜

掩模的目的是均衡地安排深色与浅色模块,以及尽可能地避免位置探测图形的位图101l101出现在符号的其他区域。掩模不用于功能图形,用多个矩阵图形连续地对已知的编码区域的模块图形(格式信息和版本信息除外)进行XOR操作。对不同掩模图形的结果计分,选择得分最低的掩模方案。

7

相关文档
最新文档