首页 > 代码库 > QR码简介
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码译码流程: