计算机视觉
图像处理

二维码和QR码简介

二维码简介

二维码(Two-dimensional code)是用某种特定的几何图形按一定规律在平面(二维方向)分布的黑白相间的图形记录数据符号信息的方式。现实生活中,二维码普遍存在我们的周围,例如:产品防伪/溯源、广告推送、网站链接、数据下载、商品交易、定位/导航、电子凭证、车辆管理、信息传递、名片交流、wifi共享等。

在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理。在许多种类的二维条码中,常用的码制有:Data Matrix,MaxiCode, Aztec,QR Code, Vericode,PDF417,Ultracode, Code 49, Code 16K 等。 每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能及处理图形旋转变化等特点。二维码是一 种比一维码更高级的条码格式。一维码只能在一个方向(一般是水平方向)上表达信息,而二维码在水平和垂直方向都可以存储信息。一维码只能由数字和字母组 成,而二维码能存储汉字、数字和图片等信息,因此二维码的应用领域要广得多。

 

 

二维码可以大致分为矩阵式和行排式两种:

(1)矩阵式

在一个矩形空间通过黑、白像素在矩阵中的不同分布进行编码。

在矩阵元素位置上,出现方点、圆点或其他形状点表示二进制“1”,不出现点表示二进制的“0”,点的排列组合确定了矩阵式二维码所代表的意义。矩阵式二维码是建立在计算机图像处理技术、组合编码原理等基础上的一种新型图形符号自动识读处理码制。具有代表性的矩阵式二维码有:Code One、Maxi Code、QR Code、 Data Matrix等。

图21*21的矩阵中,黑白的区域在QR码规范中被指定为固定的位置,称为寻像图形(finder pattern)和定位图形(timingpattern)。寻像图形和定位图形用来帮助解码程序确定图形中具体符号的坐标。黄色的区域用来保存被编码的数据内容以及纠错信息码。蓝色的区域,用来标识纠错的级别(也就是Level L到Level H)和所谓的”Mask pattern”,这个区域被称为“格式化信息”(format information)。

 

(2)行排式

行排式二维码(又称:堆积式二维码或层排式二维码),其编码原理是建立在一维码基础之上,按需要堆积成二行或多行。它在编码设计、校验原理、识读方式等方面继承了一维码的一些特点,识读设备与条码印刷与一维码技术兼容。但由于行数的增加,需要对行进行判定、其译码算法与软件也不完全相同于一维码。有代表性的行排式二维码有CODE49、CODE 16K、PDF417等。

 

QR码简介

QR码(Quick Response Code, 快速响应码)属于矩阵式二维码中的一种,由DENSO(日本电装)公司开发,由JIS和ISO将其标准化。

QR码分为两种模式:模式1、模式2;其中,模式1对应旧的标准,目前普遍采用的是模式2,即,新的开放式标准;

 

QR码的基本特征:

1、编码字符集:

(1)数字型数据:(数字0–9)

(2)字母数字型数据:(数字0–9;大写字母A–Z,9个其它字符:space,$,%,*,+,-,.,/,:);

(3)8位字节型数据;

(4)日本汉字字符

(5)中文汉字字符

 

2、数据表示

深色模块表示二进制1,浅色模块表示二进制0;或者相反;

 

3、 符号规格

从21*21的模块到177*177的模块(分别对应版本1–版本40,每增加一个版本增加4个模块的大小)

 

4、 掩码

可以使得符号中深色与浅色模块的比例接近1:1,从而使得相邻模块的排列造成译码困难的可能性降到最低

 

5、 ECI扩充解释

这种方式使得符号可以表示缺省字符集以外的数据(如,阿拉伯字符、希腊字符),以及其它解释(如,用一定的压缩方式表示的数据)或者对行业特点的需要进行编码;

 

根据ISO的规定,每个QR码符号由N*N个正方形模块构成一个正方形阵列,它由编码区、分割符、寻像图形、定位图形、校正图形在内的功能图形组成。

QR码的编码流程:

 

(1)数据分析:分析输入数据,确定要进行编码的字符类型,选择所需的错误检测及纠正等级。依据数据码和纠错码字符串长度,选择合适的QR码符号版本,使得其容量能包含改数据串。

(2)数据编码

对于所采用的模式,按照其定义的规则,将数据字符转换为位流。在当需要进行模式转换时,在新的模式段开始前加入模式指示符进行模式转换。在数据序列后面加入终止符。将产生的位流分为每8位一个码字,必要时加入填充字符以填满按照版本要求的数据码字数。

(3)纠错编码

按需要将码字序列分块,以便按块生成相应的纠错码字,并将其加入到相应的数据码字序列后面;

(4) 构造最终信息

在每一块中置入数据和纠错码字,必要时加入剩余位。

(5) 在矩阵中布置模块

将寻像图形、分割符、定位图形等放入矩阵

(6)掩模

依次将掩模图形用于符号的编码区域,评价结果,选择其中使得深色浅色模块比率最优且使不希望出现的图形最少化的结果;

(7)加入格式与版本信息

 

QR码定位校正流程

(1)精确定位

QR码有三个相同位置的寻像图形,分别位于符号的左上角、右上角、左下角,用来确定QR码的位置和方向。QR码的寻像图形的模块宽度比例为,1:1:3:1:1,如下图所示,可以利用该特征定位QR码区域。

(1) 图像校正

上一步得到三个寻像图形的中心位置,由此可以确定QR码图形的偏转角度,旋转原图以校正QR码的位置。一般的图像旋转算法对直线边界容易产生锯齿效应,这里建议采用双线性插值算法来处理。

 

(2) 确定采样网络

可以利用QR码的位置探测图形和校正图形来确定采样网络。

首先,将校正后的QR图像二值化,初步计算得到模块宽度=位置探测图像宽度/7,由位置探测图形之间的距离或者右上角位置探测图形左侧和左下角位置探测图像上侧的版本信息,得到QR码的版本号;

对于一定版本的QR码,位置探测图形和校正图形在QR码矩阵中的位置是确定的,以位置探测图形中心的实际位置为参考点,可以估算校正图形的大致位置,再由校正图形1:1:1的特征,确定校正图形中心的精确位置。

由位置探测图形和校正图形在QR码矩阵中的位置以及它们的实际位置,就可以划分采样网络。依据校正图形将QR码图像划分为几个块,分别进行采样,以提高采样尺寸的精确性。

 

QR码译码流程:

转载注明来源:CV视觉网 » 二维码和QR码简介

分享到:更多 ()
扫描二维码,给作者 打赏
pay_weixinpay_weixin

请选择你看完该文章的感受:

0不错 0超赞 0无聊 0扯淡 0不解 0路过

评论 6

评论前必须登录!