二维码生成与识别_第1页
二维码生成与识别_第2页
二维码生成与识别_第3页
二维码生成与识别_第4页
二维码生成与识别_第5页
已阅读5页,还剩11页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南京航空航天大学

课程设计

题目二维码的生成及识别

小组成员:

—O—五年H—月

第一章QR码简介

QR码是由日本Denso公司与1994年制定出来的•种矩阵二维码符号,它除了具有信

息容量大、可靠性高、可表示汉字及图像信息、保密性强等优点外,还具有超高速响应、全

方位识别等特点。

QR码符号是由正方形的细小模块构成,分为功能区和编码区。功能图形包括位置探测

图形、分隔符、定位图形、校正图形、格式信息、版本信息等,编码区域包括数据编码块和

纠错码图形。普通QR码基本图形及区域功能对照图如图1.1所示。

1--WK

图LIQR码基本结构

1.1QR码的密度标识图形

位于两个“回”字标识符之间的黑白相间的条纹,用红色线标注的,这个区域可以用于

确定QR码符号的像素方块的密度(即一个像素的大小;,标识识别模块如图1.2所示。

图1.2QR码密度标识图形

1.2位置探测图形

位置探测图形由三个重叠的同心正方形构成,如图L3所示。通过探测位置探测图形可

以迅速的从背景图像中判断出QR码符号的大致位置。

图1.3QR码探测图形

二维码定位就是找到二维码符号的位置探测图形,对有明显条码特征的区域进行定位,

然后根据图形结构特征值对不同的条码符号进行进一步的处理。通过QR码的定位图形,可

以得到左上角位置探测图形的边界点和左下角位置探测图形的边界点如图L4(a)所示,因

此可以采用鲁棒性较好的算法拟合条码左边框,然后通过直线拟合得到条码的上边框直线。

在此基础上构建直角三角形,寻找出图形中心,如图1.4(b)所示,并可以得到第四个交点,

如图1.4(c)所示。

(a)确定左边界和上边界(b)确定探测图形中心(c)确定第四个交点

图1.4条码图像初步定位流程

1.3版本信息

QR码符号共有40种规格,版本I的规格为21模块x21模块,版本2为25模块x25模

块,以此类推,每一版本符号比前一版本每边增加4个模块,直到版本40,规格为177模

块X177模块。QR码的版本信息图形在整个二维码图像中的位置如图1.5所示,QR料最高

版本40可容纳多达1850个大写字母或2710个数字或1108个字节,或500多个汉字,比普

通条码信息容量约高几十倍。

1.4纠错码

QR码具有“纠错能力”,即使在使用过程中遇到污损、折叠等现象,也可以自动恢复

数据。这一“纠错能力”具备四个级别,级别越高,纠错能力越高,但是数据量也会增加,

编码尺寸也会变大。QR码各级别纠错码纠错能力如表1.1所示。

表1.1纠错码级别纠错能力对照表

QR码的纠错能力

级别L约7%

级别M约15%

级别Q约25%

级别H约30%

第二章QR码编码规则介绍

将输入的数据转变为•个位流,如果最开始的模式指示符不是默认的,其前面要用ECI

标头,如果以默认的开始,位流的开头为第一个模式的指示符,如表2.1所示,该表定义了

不同模式下的模式指示符,表2.2定义了不同模式和符号版本下的字符计数指示符的长度。

表2.1模式指示符

模式指示符

ECI0111

数字0001

字母数字0010

8位字节0100

日本汉字100()

中国汉字1101

结构链接0011

0101(第一位置)

rlNCi

1001(第二位置)

终止符(信息结尾)0000

表2.2字符计数指示符的位数

版本数字模式字母数字模式8位字节模式中国汉字模式

1-910988

10-2612111610

27-4014131612

2.1数字模式编码实现

将愉入的数据从左至右每三位转化成一个10位的二进制数,剩余的一位或者两位数据

分别转化成4位或7位二进制数。然后在转换后的二进制数据前加上模式指示符和字符计数

指示符。例如输入数据:88899966,编码步骤如图2.1所示。

图2.1数字模式编码流程

2.2字母模式编码实现

字母模式编码规则与数字模式编码规则类似,不过首先要根据对应的字母模式编码转换

表2.3将字符转化为相应的数值,再将每两个字母分为一组,前面字符的值乘以与第二个字

符的值相加,所得的结果转换为位二进制数。

表2.3字母模式编码转换表

字字字字字字字字

值值值值值值值值

符符符圻行符价符

0066C12I18O24U30SP36•42

1177D13J19P25V31$37/43

2288E14K20Q26W32%38*44

3399F15L21R27X33*39

44A10G16M22S28Y34+40

55B11H17N23T29Z35-41

2.3中国汉字模式编码实现

GB2312标准规定的汉字字符为双字节表示。QR的汉字编码模式将16位的转换为13

位二进制字符序列,提高了编码效率。编码具体步骤:

(1)将第一字节值减去0xA6;

(2)将⑴的结果乘以0x60;

(3)将第二字节值减去OxAl;

(4)将(2)的值加上(3)的值:

(5)将结果转化成13位二进制。

2.4纠错编码

按需要将码字序列分块,并根据纠错等级和分块的码字,产生纠错码字,并把纠错码字

加入到数据码字序列后面,成为一个新的序列。在二维码规格和纠错等级确定的情况下,其

实它所能容纳的码字总数和纠错码字数也就确定了。纠借码主要通过里德-所罗门纠错算法

算出来,例如:版本10,纠错等级时H时,总共能容纳346个码字,其中224个纠错码字。

就是说二维码区域中大约1/3的码字时冗余的。对于这224个纠错码字,它能够纠正112个

替代错误(如黑白颠倒)或者224个据读错误(无法读到或者无法译码)。

在规格确定的条件下,将原先产生的序列按次序放如分块中,按规定把数据分块,然后

对每一块进行计算,得出相应的纠错码字区块,把纠错码字区块按顺序构成一个序列,添

加到原先的数据码字序列后面,如图2.2所示。

剩余位

图2.2二维码矩阵构造

2.5Zxing简介

Zxing是一个开放源码的,用Java实现的多种格式一维或者二维的条码图像处理库,它

包含了联系到其他语言的端口,通常使用Zxing生成相应的一维码码以及解码。

生成二维码的编码技术是指基于给定内容生成二维条码图片,Zxing可以对生成的二维

码的图片格式、各项参数以及二维码类型进行设置,生成的图片包含给定的内容,当使用识

别设备进行扫描时,能够读出给定的内容。

使用Zxing进行编码的步骤主要如下:首先,将所需的Zxing类库中的包导入工程;其

次,对需要生成二维条码的给定内容进行编码方式处理,防止在显示中文时出现乱码问题,

并指定所生成二维条码图片的路径、名称和文件格式;然后,找到Zxing中二维码QR码所

对应的编码类QR-CodeWriler,调用encode方法生成给定内容对应的比特矩阵;最后将比特

矩阵转化为制定的图片格式。

第三章处理流程及结果演示

3.1处理流程

二维码处理流程如图3.1所示,若已有二维码图像,直接读取该图像,在此基础上完成

解码识别等过程,用户也可按照自己的意愿在文本框里输入汉字或数值等内容,调用Zxing,

生成对应的二维码图像。后对图像进行灰度化、加噪平滑、二值化、旋转校正、畸变校正等

预处理,并在此基础上再次调用Zxing完成解码识别的过程。

3.2界面设计

本实验设计界面如图3.2所示,界面可实现功能:打开一幅二维码图像,对该图像进行

灰度化、加噪平滑、二值化、旋转校正、畸变校正等预处理,并在这些过程的基础上完成对

二维码图像的解码过程。还可以对用户自身想要的文字或者网址进行二维码图形的制作,并

完成解码显示。

图3.2界面设计

3.3预处理及其结果演示

通过读取图像打开待处理原始二维码图像,并显示该二维码图像如图3.3所示。根据待

识别图像各自特点施以不同的预处理手段。

图3.3原始QR图像

3.3.1灰度化处理

通常情况卜,使用数码相机等摄像设备获取的QR码是彩色的,和灰度图像相比,彩色

图像含有的信息量较大,所占存储空间更多,将彩色图像转化成灰度图像是为了减少存储空

间,降低运算量。灰度化处理后图像如图3.4所示。

图3.4灰度化处理图像

3.3.2平滑处理

对图像加入椒盐噪声,然后采用中值游波对图像进行平滑波波处理,加噪及平滑处理后

图像分别如图3.5(a)和(b)所示。

QR二维码加噪处理QR二维码平滑处理

(a)加噪图像(b)平滑图像

图3.5加噪平滑处理

3.3.3二值化处理

标准的二维码图像是由黑白两种小的模块组合而成的,灰度化之后需对图像进行二值化

处理,以便数据的压缩、特征的突出以及图形的识别。图像二值化的方法是通过预先设定的

一个阈值,将灰度图像分为小于这个阈值和大于这个阈值的两部分,通过阈值的选取可以将

图像的背景区和条码符号分开,本文采用自适应阈值法对图像进行二值化处理。自适应阈值

法的基本原理是采用某•假定的灰度值t将图像的灰度分为两组,当两组的类间方差最大时,

此灰度值就是二值化的最佳阈值,二值化处理结果如图3.6所示。

图3.6二值化处理

3.3.4旋转校正

在二维码图像采集的过程之中,由于拍摄角度的问题,会导致图像产生一定的旋转畸变,

本文采取霍夫变换的方法对此情况进行校正,旋转校正前后的图像如图3.7所示。

图3.7原图(左)以及旋转校正后的图像(右)

在旋转校正之前,需要对图像做边缘检测。本实验使用的边缘检测算子为“canny”算

子,“canny”算子可寻找图像梯度的局部最大值,且不易受噪声干扰,能够很好地检测出

弱边缘,边缘检测结果如图3.8所示。

图3.8边缘检测

采取霍夫变换的方法对图像进行旋转校正,主要是在图像空间和参数空间建立起一个

“线•点”之间的对应关系,每条曲线表示一个点,Hough变换统计所有变化的峰值,并标

记,得到4个顶点,如图3.9所示。

100

0

图3.9Hough空间显示图

使用Hough变换检测线段,标M线段以及线段的起始和端点,得到每条线段的斜率,

并计算倾斜角度值&最后将图像中的线条与点显示出来,如图3.10所示。

图3.10直线标识图像

图像的坐标原点默认为平面的左上角,根据得到的角度值e,将图像按照e角度进行旋

转,便能够完成对图像的旋转校正。

3.3.5畸变矫正

可能会由于角度的问题,导致图像产生几何形变,使原来的QR码呈现不规则的四边形,

从而影响二维码信息的正确提取。使用双线性插值法将不规则则的四边形区域通过一定的映

射关系变为QR码标准正方形,从而方便了对二维码信息的提取。畸变校正前后如图3.10

所示。

图3.10原图(左)以及畸变校正后的图像(右)

3.4QR码解码识别

解码技术是指从二维码中读取出所包含的信息,本实验直接调用Zxing完成解码识别的

过程,包括以下几个步骤:首先,导入Zxing类库中的包;其次,指定二维条码图片的路径;

然后,找到Zxing中二维条码QR码所对应的解码类QR-CodeReader,调

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论