购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.3 二维码识别

二维码是对条码的改进,条码只在图形的水平方向上表达信息,二维码则是在水平和垂直两个方向组成的二维空间内存储信息。二维码所含的信息量比较大,可以存储各种语言文字和图像信息,拓展了条码的应用领域。

3.3.1 二维码的特点和分类

二维码技术的研究始于20世纪80年代末,二维码的码制有QR码、PDF417、Data Matrix、Aztec、Maxicode、49码、Code 16K、Code One、Vericode、Ultracode、Philips Dot Code和Softstrip等。二维码通常使用图像式识读器,如摄像头、照相机等,线性CCD识读器和光栅激光识读器只适用于行排式二维码。

1.二维码的基本特点

二维码的密度是一维条码的几十到几百倍,可以存储更多信息,实现对物品特征的描述,而且具有抗磨损、纠错等特点,可以表示中文、英文和数字在内的多种文字,也可以表示声音和图像信息。

二维码还具有字节表示模式,一般语言文字和图像等在计算机中存储时都以机内码(字节码)的形式表示,因此可以将文字和图像先转换成字节流,然后再将字节流用二维码表示,故二维码可以表示多种语言文字和图像数据(如照片、指纹等)。二维码凭借图案本身就可以起到数据通信的这项功能降低了其对于网络和数据库的依赖,因此二维码又被称为“便携式纸面数据库”。另外,二维码中还可引入加密机制,加强信息管理的安全性,防止各种证件、卡片等的伪造。

2.二维码的分类

二维码按照不同的编码方法可分为行排式、矩阵式、邮政码、彩码和复合码等几种类型。

行排式二维码又称堆积式或层叠式二维码,是在一维条码的基础上按需要将其堆积成两行或多行而成。常见的行排式二维码有PDF417、49码和Code 16K条码等。

矩阵式二维码是在一个矩形空间通过黑、白像素在矩阵中的不同分布进行编码。在矩阵相应元素位置上,用点(方点、圆点或其他形状)的出现表示二进制“1”,用点的不出现表示二进制“0”,由点的排列组合确定矩阵式二维码的意义。常见的矩阵式二维码有Code One、Maxicode、QR码、Data Matrix、Vericode码、田字码、汉信码和龙贝码等。

邮政码是通过不同高度的条进行编码,主要用于邮件编码,如Postnet、BPO 4-State等。

彩码是在传统二维码的基础上添加色彩元素而形成的,通常以4种相关性最大的单一颜色:红、绿、蓝和黑来表述信息,因此也称为三维码。

复合码是各种条码类型的组合,例如,EAN.UCC系统复合码是将一维条码和二维码进行组合,其中一维条码对项目的主要标识进行编码,相邻的二维码对附加数据(如批号、有效日期等)进行编码。

第3章二维码实际生成3.3.2节

3.3.2 二维码的符号结构

二维码是用黑白相间的图形记录数据符号信息的。不同种类的二维码具有自己独特的图形排列规律。下面以常见的QR码为例,介绍二维码的编码结构。二维码生成实例参见视频。

快速响应矩阵(Quick Response Code,QR)码是目前世界上使用最为广泛的二维码,国标为GB/T 18284—2000《快速响应矩阵码》。QR码除了具有二维码的共同特点外,还具有超高速识读、全方位识读和高效表示汉字等特点。

每个QR码符号是由正方形模块组成的一个正方形阵列,由编码区域和功能图形组成。功能图形是用于符号定位与特征识别的特定图形,不用于数据编码,它包括位置探测图形(寻像图形)、分隔符、定位图形和校正图形。符号的四周留有宽度至少为4个模块的空白区。图3-7所示为QR码版本7符号的结构图。

图3-7 QR码符号结构图及其实例

1)符号版本。QR码符号共有40种版本,版本1为21×21个模块,模块是指组成二维码的基本黑白块单元,黑块单元代表数字1,白块单元代表数字0。版本2为25×25个模块,以此类推,每一版本符号比前一版本每边增加4个模块,直到版本40,为177×177个模块。

2)寻像图形。寻像图形用来识别QR码符号,并确定二维码的位置和方向。寻像图形包括3个相同的位置探测图形,分别位于符号的左上角、右上角和左下角。每个位置探测图形由3个同心的正方形组成,分别为7×7个深色模块、5×5个浅色模块和3×3个深色模块。位置探测图形的模块宽度比为1:1:3:1:1。

3)分隔符。在每个位置探测图形和编码区域之间有宽度为一个模块的分隔符,全部由浅色模块组成。

4)定位图形。水平和垂直定位图形分别为一个模块宽度,是由深色与浅色模块交替组成的一行和一列图形,它们的位置分别位于第6行与第6列,作用为确定符号的密度和版本,为模块坐标位置作参考。

5)校正图形。每个校正图形可看作是3个同心的正方形,由5×5深色模块、3×3浅色模块和一个中心深色模块构成。校正图形的数量视版本而定。

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

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

3.3.3 二维码的编码过程

QR码的编码就是一个将数字信息转换成图形信息的过程,整个过程分为数据分析、数据编码、纠错、构造最终信息、在矩阵中布置模块、掩模,以及添加格式信息和版本信息等几个步骤。

1)数据分析是指分析所输入的数据流,确定要进行编码的字符的类型、纠错等级和符号版本等。

2)数据编码是指将数据字符转换为位流。QR码包括数字、字母数字、中国汉字、日本汉字和混合模式等多种模式,当需要进行模式转换时,在新的模式段开始前加入模式指示符进行模式转换。在数据序列后面加入终止符。将产生的位流分为每8位一个码字。必要时加入填充字符以填满按照版本要求的数据码字数。

3)纠错编码是指先将码字序列分块,再采用纠错算法按块生成一系列纠错码字,然后将其添加在数据码字序列后,使得符号可以在遇到损坏时不致丢失数据。QR码有L、M、Q和H共4个纠错等级,对应的纠错容量依次为7%、15%、25%和30%。

4)构造最终的码字序列时,先根据版本和纠错等级将数据码字序列分为 n 块,对每一块计算相应块的纠错码字,然后依次将每一块的数据和纠错码字装配成最终的序列。

5)在矩阵中布置模块,将寻像图形、分隔符、定位图形、校正图形与码字模块一起放入矩阵。

6)掩模。直接对原始数据编码可能会在编码区域形成特定的功能图形,造成阅读器误判。为了可靠识别,最好均衡地安排深色与浅色模块。掩模就是使符号的灰度均匀分布,避免位置探测图形的位图1011101出现在符号的其他区域。进行掩模前,需要先选择掩模图形。用多个矩阵图形连续地对已知的编码区域的模块图形(格式信息和版本信息除外)进行异或(XOR)操作。XOR操作将模块图形依次放在每个掩模图形上,并将对应于掩模图形的深色模块的模块取反(浅色变成深色,或相反),然后对每个结果图形的不合要求的部分记分,选择其中得分最低的图形作为掩模图形。依次将掩模图形用于符号的编码区域。掩模不用于功能图形。

7)最后将格式信息与版本信息加入符号当中,即完成了QR码的编码过程。 d/b9gZZfmPhjRQUihEhL9Sc1JZ+AW/3L+2AGi/gKAEGUvIHEcOlQ5TtyibZhG8tf

点击中间区域
呼出菜单
上一章
目录
下一章
×