二维码简介及应用.ppt

上传人:rrsccc 文档编号:9491405 上传时间:2021-02-28 格式:PPT 页数:50 大小:653.52KB
返回 下载 相关 举报
二维码简介及应用.ppt_第1页
第1页 / 共50页
二维码简介及应用.ppt_第2页
第2页 / 共50页
二维码简介及应用.ppt_第3页
第3页 / 共50页
二维码简介及应用.ppt_第4页
第4页 / 共50页
二维码简介及应用.ppt_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《二维码简介及应用.ppt》由会员分享,可在线阅读,更多相关《二维码简介及应用.ppt(50页珍藏版)》请在三一文库上搜索。

1、二维码简介及应用 二维条码/二维码 (2-dimensional bar code) 是用某种特定的几何图形按一定 规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;二维码能 够在横向和纵向两个方位同时表达信息,因此能在很小的面积内表达大量的信息。 二维条码也有许多不同的编码方法,或称码 制。就这些码制的编码原理而言,通常可分为 以下三种类型 : 1. 线性堆叠式二维码 是在一维条码编码原理 的基础上,将多个一维码在纵向堆叠而产生 的。典型的码制如: Code 16K、Code 49、 PDF417等。 2. 矩阵式二维码 是在一个矩形空间通过黑、白像素在矩阵中的不同分布进行编

2、码。典型的码制如: Aztec、Maxi Code、QR Code、 Data Matrix等。 3.邮政码 通过不同长度的条进行编码,主要用于邮件编码,如: Postnet 、 BPO 4-State 。 QR码比其他二维码相比,具有识读速度快、数据密度大、占用空间小的优势。 QR码容量密度大,可以放入1817个汉字、7089个数字、4200个英文字母。QR 码用数据压缩方式表示汉字,仅用13bit即可表示一个汉字,比其他二维条码表示 汉字的效率提高了20%。QR具有4个等级的纠错功能,即使破损或破损也能够正 确识读。QR码抗弯曲的性能强,通过QR码中的每隔一定的间隔配置有校正图形 ,从码的

3、外形来求得推测校正图形中心点与实际校正图形中心点的误差来修正各 个模快的中心距离,即使将QR码贴在弯曲的物品上也能够快速识读。 QR码-快速矩阵二维条码特点 300 个字符或数字被编进这样大小的QR码里面 同样的数据只有条码的十分之一大小 QR码标准符号结构 QR码符号共有40种规格,分别为版本1、版 本2版本40。版本1的规格为21模块21模块 ,版本2为25模块25模块,以此类推,每一版 本符号比前一版本每边增加4个模块,直到版本 40,规格为177模块177模块。 QR码标准符号结构 每个QR码符号由名义上的正方形模块构成,组成一个正方形阵列,它由编码区域和 包括寻象图形、分隔符、定位图

4、形和校正图形在内的功能图形组成。功能图形不能 用于数据编码。符号的四周由空白区包围。下图为QR码版本7符号的结构图。 QR码标准符号结构 n 寻象图形 寻象图形包括三个相同的位置探测图形,分别位于符号的左上角、右上角和左 下角,如图2所示。每个位置探测图形可以看作是由3个重叠的同心的正方形组成 ,它们分别为77个深色色模块、55个浅模块和33个深色模块。如下图所示 ,位置探测图形的模块宽度比为1:1:3:1:1。符号中其他地方遇到类似图形 的可能性极小,因此可以在视场中迅速地识别可能的QR码符号。识别组成的寻象 图形的三个位置探测图形,可以明确地确定视场中符号的位置和方向。 QR码标准符号结构

5、 n分隔符 在每个位置探测图形和编码区域之间有宽度为1个模块的分隔符,它全部由浅色模 块组成。 n定位图形 水平和垂直定位图形分别为一个模块宽的一行和一列,由深色浅色模块交替组成, 其开始和结尾都是深色模块。水平定位图形位于上部的两个位置探测图形之间,符 号的第6行。垂直定位图形位于左侧的两个位置探测图形之间,符号的第6列。它们 的作用是确定符号的密度和版本,提供决定模块坐标的基准位置。 求各模块中心坐标的图形。黑白图形相互配置。当QR码歪斜或模块间隔出现误差时 用于矫正数据模块的中心坐标。 n校正图形 每个校正图形可看作是3个重叠的同心正方形,由55个的深色模块,33个的浅色 模块以及位于中

6、心的一个深色模块组成。校正图形的数量视符号的版本号而定,在 模式2的符号中,版本2以上(含版本2)的符号均有校正图形。补正QR码歪斜的图 形,求得校正图形的中心坐标,补正QR码的歪斜。在校正图形中配置有孤立的黑模 块,使得更容易检测出中心坐标。 n编码区域 编码区域包括表示数据码字、纠错码字、版本信息和格式信息的符号字符。 n空白区 空白区为环绕在符号四周的4个模块宽的区域,其反射率应与浅色模块相同。 QR码的编码 编码综述 p第一步 数据分析 分析所输入的数据流,确定要进行编码的字符的类型。QR码支持扩充解释, 可以对与缺省的字符集不同的数据进行编码。 p第二步 数据编码 将数据字符转换为位

7、流。在当需要进行模式转换时,在新的模式段开始前加入 模式指示符进行模式转换。在数据序列后面加入终止符。将产生的位流分为每 8位一个码字。必要时加入填充字符以填满按照版本要求的数据码字数。 p第三步 纠错编码 按需要将码字序列分块,以便按块生成相应的纠错码字,并将其加入到相应的 数据码字序列的后面。 p第四步 构造最终信息 在每一块中置入数据和纠错码字,必要时加剩余位。 p第五步 在矩阵中布置模块 将寻象图形、分隔符、定位图形、校正图形与码字模块一起放入矩阵。 p第六步 掩模 依次将掩模图形用于符号的编码区域。评价结果,并选择其中使深色浅色模块 比率最优且使不希望出现的图形最少化的结果。 p第七

8、步 格式和版本信息 生成格式和版本信息(如果用到时),形成符号。 QR码的编码 数据分析 p数字模式 数字模式对十进制数字09(ASCII值30HEX 至39HEX)编码,通常的密度为每 10位表示3个字符。 p字母数字模式 字母数字模式对45个字符的字符集进行编码,即:10个数字09(ASCII值 30HEX 至39HEX),26个字母字符AZ(ASCII值41HEX 至5AHEX)以及9个符号 SP、$、%、*、+、-、.、/、:(ASCII值分别为20HEX,24HEX,25HEX,2AHEX, 2BHEX,2DHEX,2EHEX,2FHEX,3AHEX)。通常情况下,两个输入字符用11

9、位 表示。 p8位字节模式 8位字节模式用于表示与JIS X 0201一致的8位拉丁/假名字符集(字符值为 00HEX 至FFHEX),其编码密度为每个字符8位。 p日本汉字模式 日本汉字模式用于表示与基于JIS X 0208的转换JIS系统一致的日本汉字字 符。转换JIS值由JIS X 0208转换而来。具体内容见JIS X 0208附录1转换代码 表示法。每个双字节字符由13位二进制码字表示。 p中国汉字模式 p混合模式 QR码的编码 数据编码 模式指示符 ECI0111 数字0001 字母数字0010 8位字节0100 日本汉字1000 中国汉字1101 结构链接0011 FNC1010

10、1 (第一位置) 1001 (第二位置) 终止符 (信息结尾)0000 版本数字模式 字母数字模式8位字节模式日本汉字模式中国汉字模式 1910988 102612111610 274014131612 模式指示符 字符计数指示符的位数 整个符号的结束由4位终止符0000表示,当 符号数据位流后所余的容量不足4位时,终 止符将被截短。终止符本身不是模式指示 符。 QR码的编码 数据编码 数字模式 将输入的数据每三位分为一组,将每组数据转换为10位二进制数。如果所 输入的数据的位数不是3的整数倍,所余的1位或2位数字应分别转换为4位或7位 二进制数。将二进制数据连接起来并在前面加上模式指示符和字

11、符计数指示符。 数字模式中字符计数指示符如表3中定义的有10、12或14位。输入的数据字符的 数量转换为10、12或14位二进制数后,放置在模式指示符之后,二进制数据序列 之前。 例1 (符号版本1-H) 输入的数据:01234567 1) 分为3位一组:012 345 67 2) 将每组转换为二进制:0120000001100 3450101011001 67 1000011 3) 将二进制数连接为一个序列:0000001100 0101011001 1000011 4) 将字符计数指示符转换为二进制(版本1-H为10位): 字符数为:80000001000 5) 加入模式指示符0001以及

12、字符计数指示符的二进制数据: 0001 0000001000 0000001100 0101011001 1000011 . QR码的编码 数据编码 例2 (符号版本1-H) 输入的数据:0123456789012345 1) 分为3位一组:012 345 678 901 234 5 2) 将每组转换为二进制:0120000001100 3450101011001 6781010100110 9011110000101 2340011101010 50101 3) 将二进制数连接为一个序列: 0000001100 0101011001 1010100110 1110000101 0011101

13、010 0101 4) 将字符计数指示符转换为二进制(版本1-H为10位): 字符数为:160000010000 5) 加入模式指示符0001以及字符计数指示符的二进制数据: 0001 0000010000 0000001100 0101011001 1010100110 1110000101 0011101010 0101 数字模式中位流的长度计算公式如下: B = 4 + C + 10(D DIV 3) + R 其中:B=位流的位数 C=字符计数指示符的位数(根据表3) D=输入的数据字符数 R=0 当(D MOD 3)=0 R=4 当(D MOD 3)=1 R=7 当(D MOD 3)=

14、2 将输入的数据分为两个字符一组,用11位二进制表示。将前面字符的值乘以45与第 二个字符的值相加,将所得的结果转换为11位二进制数。如果输入的数据的字符数 不是2的整数倍,将最后一个字符编码为6位二进制数。将所得的二进制数据连接起 来并在前面加上模式指示符和字符计数指示符,按表3的规定在字母数字模式中,字 符计数指示符的长度为9、11或13位。将输入的字符数编码为9、11或13位二进制数 ,放在模式指示符之后,二进制数据序列之前。 QR码的编码 数据编码 字母数字模式 按照下表,每个输入的字符赋于一个数值V,它的值为0到44。 字符值字符值字符值字符值字符值字符值字符值字符值 0066C12

15、I18O24U30SP36.42 1177D13J19P25V31$37/43 2288E14K20Q26W32%38:44 3399F15L21R27X33*39 44A10G16M22S28Y34+40 55B11H17N23T29Z35-41 QR码的编码 数据编码 8位字节模式 在本模式中,一个8位 码字直接表示一个输入数 据字符的JIS8字符值,即 密度为每个字符8位,如 下表所示。在非缺省的其 它ECI中,它直接表示一个 8位字节的值。 将二进制数据连接起来并 在前面加上模式指示符和 字符计数指示符。8位字节 模式的字符计数指示符为8 位或16位,将输入字符数 转换为8位或16位二

16、进制数 据放在模式指示符之后, 二进制数据序列之前。 8位字节模式的位流的位数 计算公式如下: D = 4 + C + 8D 其中:B=位流的位数 C=字符计数指示符的位数 D=输入数据的字符数 QR码的编码 数据编码 日本汉字模式 在转换JIS系统中,两个字节表示一个日本汉字字符。字节的值由JIS X 0208的值转 换而来。将输入数据字符按下面定义转换为13位二进制码字。随后将二进制数据 连接起来并在前面加上模式指示符和字符计数指示符。日本汉字模式的字符计数 指示符的位数按表3规定为8、10或12位,将字符计数指示符转换为相应的8、10或 12位二进制数,放在模式指示符之后,二进制数据序列

17、之前。 1 对于转换JIS值为8140HEX 到 9FFCHEX之间的字符: a将转换JIS值减去8140HEX; b将高位字节乘以C0HEX; c将b的结果加上低位字节; d将结果转换为13位二进制串。 2 转换JIS值为E040HEX 到EBBFHEX之间的字符: 将转换JIS值减去C140HEX; 将高位字节乘以C0HEX; 将b的结果加上低位字节; 将结果转为13位二进制串。 QR码的编码 数据编码 例: 3对于所有的字符: 在输入的数据字符的二进制队列前加上模式指示符(1000)和字符计数指示符的二进 制表示(8,10或12位); 日本汉字模式的位流的位数由以下公式计算: B = 4

18、 + C + 13D 其中:B=位流的位数 C=字符计数指示符的位数 D=输入的数据字符数 QR码的编码 数据编码 混合模式 根据数据内容的要求或者为了增加编码密度,可以从一种模式转换到另 一种模式来表示数据。每一段数据按以上数据编码中给出的相应模式进行编 码。基本结构为模式指示符/字符计数指示符/数据,其后紧跟下一段的模式指 示符开始另一段。下图为有N段数据的结构。 段1段2段 n 模式指示符 1 字符计数 指示符 数据模式指示 符 2 字符计数指 示符 数据模式指示符 n 字符计数 指示符 数据 终止符 符号的数据结尾由紧跟在最后一个模式段后面的终止符序列0000表示, 当数据位流数量正好

19、填满符号的容量时,它可以省略,或者当符号所余的容 量不足4位时它可以截短。 QR码的编码 数据编码 位流到码字的转换 每个模式段的位流需要按顺序连接在一起,最后添加终止符,除非数据位流正好 填满符号容量。所得的数据位流将被分为一个个码字;所有的码字的长度都是8 位,如果位流长度最后一个码字不足8位,则用二进制值为0的填充位填充至8位 ,填充位应加在数据位流最后1位(最低位)的后面。然后按定义的版本和纠错 等级交替添加填充码字11101100和00010001,将数据位流扩展,以填满符号的数 据容量,所得结果的数据码字序列加入纠错码字。为了正好填满符号容量,有些 版本也许需要在信息的最后添加3、

20、4或7个剩余位(全为0)。 QR码的编码 数据编码 符号字符数和数据容量 QR码的编码 纠错 纠错码字的生成 将数据码字(必要时包括填充码字在内)按照上表分为相应数量的块,每一块分别 计算出纠错码字并添加到数据码字后。 QR码的多项式算法用位的模2算法和字节的模100011101算法。这是加罗瓦域28以 100011101表示主模块多项式:X8+X4+X3+X2+1。 数据码字为多项式各项的系数,第一个数据码字为最高次项的系数,最低次项的系 数是第一个纠错码字前的最后一个数据码字。 纠错码字是数据码字被纠错码多项式g(x)除得的余数。余数的最高次项系数为第一 个纠错码字,最低次项系数为最后一个

21、纠错码字,也是整个块的最后一个码字。 构造信息的最终码字序列 最终码字序列中的码字数应总是与上表所列的符号能够表示的码字总数相同。 按如下步骤构造最终的码字序列(数据码字加上纠错码字,必要时加上剩余码字)。 1)按表13-22,根据版本和纠错等级将数据码字序列分为n块。 2)对每一块,计算相应块的纠错码字。 3)依次将每一块的数据和纠错码字装配成最终的序列:数据块1的码字1;数据块2的码 字1;数据块3的码字1;以此类推至数据块n-1的最后的码字;数据块n的最后的码字;随后 ,纠错块1的码字1,纠错块2的码字1,以此类推至纠错块n-1的最后的码字;纠错块n的 最后的码字。QR码符号所包含的数据

22、和纠错块通常正好填满符号的码字容量,而在某些版 本中,也许需要3、4或7个剩余位,添加在最终的信息位流中以正好填满编码区域的模块 数。 QR码的编码 将整个码字序列视为一个单独的位流,将其(最高位开始)按从右向左,按向上 和向下的方向交替的布置于两个模块宽的纵列中。并跳过功能图形占用的区域,在纵 列的顶部或底部改变方向,每一位应放在第一个可用的位置。 当符号的数据容量不能恰好分为整数个8位符号字符时,要用相应的剩余位填充符 号的容量。在进行掩模以前,这些剩余位的值为0。 版本2-M符号的符号字符布置 QR码的编码 掩模 为了QR码阅读的可靠性,最好均衡地安排深色与浅色模块。应尽可能避免位置 探

23、测图形的位图1011101出现在符号的其他区域。为了满足上述条件,应按以下步骤进 行掩模。 1)掩模不用于功能图形 2)用多个矩阵图形连续地对已知的编码区域的模块图形(格式信息和版本信息除外) 进行XOR操作。XOR操作将模块图形依次放在每个掩模图形上,并将对应于掩模图形的 深色模块的模块取反(浅色变成深色,或相反)。 3)对每个结果图形的不合要求的部分记分,以评估这些结果。 4)选择得分最低的图形。 下表给出了掩模图形的参考(放置于格式信息中的二进制参考)和掩模图形生成的 条件。掩模图形是通过将编码区域(不包括为格式信息和版本信息保留的部分)内那 些条件为真的模块定义为深色而产生的。所示的条

24、件中,i代表模块的行位置,j代表 模块的列位置,(i,j)=(0,0)代表符号中左上角的位置。 掩模图形参考条件 000(i + j) mod 2 = 0 001i mod 2 = 0 010j mod 3 = 0 011(i + j) mod 3 = 0 100(i div 2) + (j div 3) mod 2 = 0 101(i j) mod 2 + (i j) mod 3 = 0 110(i j) mod 2 + (i j) mod 3) mod 2 = 0 111(i j) mod 3 + (i+j) mod 2) mod 2 = 0 QR码的编码 掩模 版本1符号的所有的掩模图形

25、,用掩模图形参考000到111的掩模结果。 QR码的编码 掩模 符号的掩模过程 QR码的编码 掩模 在依次用每一个掩模图形进行掩模操作之后,要通过对每一次如下情况的出现进行罚点 记分,以便对每一个结果进行评估,分数越高,其结果越不可用。在下表中,N1到N4 为对不好的特征所罚分数的权重(N1=3,N2=3,N3=40,N4=10),i为紧邻的颜色相同 模块数大于5的次数,k为符号深色模块所占比率离50%的差距,步长为5%。虽然掩模操 作仅对编码区域进行,不包括格式信息,但评价是对整个符号进行的。 特征评价条件分数 行/列中相临的模块的颜色相同模块数 = (5 + i)N1 + i 模块块的颜色

26、相同 颜色相同的模块组成*块 块尺寸 = mnN2 (m - 1)(n - 1) 在行/纵列中出现1:1:3:1:1(深浅深浅深)图形 N3 整个符号中深色模块的比率50(5k)% 到 50(5(k + 1)%N4k 应选择掩模结果中罚分最低的掩模图形用于符号掩模。 QR码的编码 版本信息 QR码的解码 从识读一个QR码符号到输出数据字符的译码步骤是编码程序的逆过程。 1、定位并获取符号图像。深色与浅色模块识别为“ 0”与“1”的阵列。 2、识读格式信息(如果需要,去除掩模图形并完成对格式信息模块的纠错,识别 纠错等级与掩模图形参考。) 3、识读版本信息,确定符号的版本。 4、用掩模图形掩模图

27、形参考已经从格式信息中得出对编码区的位图进行异或处理 消除掩模。 5、根据模块排列规则,识读符号字符,恢复信息的数据与纠错码字。 6、用与纠错级别信息相对应的纠错码字检测错误,如果发现错误,立即纠错。 7、根据模式指示符和字符计数指示符将数据码字划分成多个部分。 8、最后,按照使用的模式译码得出数据字符并输出结果。 QR码的解码 QR码的解码 译码算法 参考译码算法在图像中寻找符号并进行译码,译码算法参照图象中的深色浅色状 态。 1、选择图象的反射率最大值与最小值之间的中值确定阈值,使用阈值将图象转化 为一系列深色与浅色像素。 2、确定寻象图形,在QR码中的寻象图形由位于符号的4个角中的3个角

28、上的3个相同 的位置探测图形组成。每一位置探测图形的模块序列由一个深色浅色深色浅色 深色次序构成,各元素的相对宽度的比例是11311。对本译码算法,每一元素宽 度的允许偏差为0.5(即单个模块的方块的尺寸允许范围为0.51.5,3个模块宽度的方 块的宽度允许尺寸范围为2.53.5)。 a、当探测到预选区时,注意图像中一行像素与位置探测图形的外边缘相遇的 第一点和最后一点A和B(如下图)。对该图像中的相邻象素行重复探测,直 到在中心方块X轴方向所有穿过位置探测图形的直线被全部识别。 位置探测图形扫描线 QR码的解码 译码算法 b、重复步骤a,在图象的Y轴方向,识别穿过位置探测图形中心方块的所有象

29、 素行。 c、确定探测图形中心,通过在X轴方向穿过位置探测图形中心块的最外层的 象素线上A、B两点连线的中点连一直线,用同样方法在另一垂直方向上划一 直线,两条直线的交点就是位置探测图形的中心。 d、重复步骤a至c,确定其它两个位置探测图形的中心位置。 3、通过分析位置探测图形中心的坐标,识别哪一个位置探测图形是左上角图形以 及符号的旋转角度来确定符号的方位。 4、确定:a、 距离D,是左上角位置探测图形中心与右上角位置探测图形中心之间 的距离,b、 两个探测图形的宽度,WUL和WUR。 上部位置探测图形 QR码的解码 . 译码算法 5、计算符号的名义模块宽度尺寸X X=(WUL+WUR)/1

30、4 6、初步确定符号的版本 V = (D/X) - 10 / 4 7、如果初步确定的符号版本等于或小于6,那么该计算值即为版本号。如果初步确 定的符号版本等于或大于7,那么版本信息应按下列步骤译码: a、用7除以右上角位置探测图形的宽度尺寸WUR,得到模块尺寸CPUR CPUR=WUR/7 b、由A,B和C找出通过三个位置探测图形中心的导向线AC、AB。根据与导向线相平 行的直线、位置探测图形的中心坐标和模块尺寸CPUR 确定在版本信息1区域中每一模块 中心的取样网格。二进制值0和1根据采样网格上的深色浅色的图形来确定。 位置探测图形与版本信息 QR码的解码 译码算法 c、通过检测并纠错确定版

31、本,如果有错,根据BCH纠错原理,对版本信息模块出现 的错误进行纠错。 d、如果发现错误超过纠错容量,那末计算左下方位置探测图形的宽度尺寸WDL,并 按上述步骤a,b,c对版本信息2进行译码。 8、对于没有校正图形的版本1符号,继续以下的算法的第7步和第8步进行译码,然 后转至本算法的第9步。版本2以及更高版本的符号的译码要求由定义的坐标决定的每 一校正图形的中心坐标来确定取样网格。 7、重新确定定位图形中,深色和浅色模块的中心点的水平平均间距X。用类似的 方法,计算左边定位图形中,深色与浅色模块的中心点的垂直平均间距Y。 8、建立一个取样网格:(a)穿过上部定位图形的水平线,以及与之平行以Y

32、值为 垂直间距的水平线,在水平参考线之上形成六条与之平行的水平线,水平参考线下方 与之平行的水平线的数量由符号版本要求决定。(b)通过左边定位图形的垂直线, 以及与之平行的以X值为水平间距的垂直线,在垂直参考线左边形成与之平行的六条 垂直线,垂直参考线右边与之平行的线的数量由符号的版本决定。 QR码的解码 译码算法 位置探测 图形与校 正图形 校正图形的中心坐标 a、左上角位置探测图形的宽度WUL除以7,计算模块尺寸CPUL CPUL=WUL/7 b、根据左上角位置探测图形PUL的中心A的坐标,平行于从第7c)得到的导向直线 AB和AC的直线以及模块尺寸CPUL初步确定校正图形P1和P2的中心

33、坐标。 c、从初定的中心坐标的象素开始,扫描校正图形P1和P2中的空白方块的轮廓,确 定实际的中心坐标Xi和 Yj d、根据左上角位置探测图形PUL的中心坐标和在c中得到的校正图形P1和P2的实际 中心坐标值,估计校正图形P3的初步中心坐标。 QR码的解码 译码算法 e、按照c中同样的步骤找到校正图形P3的实际中心坐标。 f、确定LX和Ly,LX是指校正图形P2和P3两中心之间的距离,Ly是指校正图形P1和P3两中 心之间的距离。用校正图形的已定义的间距除Lx和Ly,获得位于符号左上角区域下边的 模块节距CPX和右边的模块节距CPy值。 CPx=Lx/AP CPy=Ly/AP 其中,AP是校正

34、图形中心的模块间距 以同样方式,找出Lx,和Ly,Lx,是左上部位置探测图形PUL与校正图形P1的中心坐标之 间的水平距离。Ly,是左上部位置探测图形PUL的中心坐标与校正图形P2的中心坐标之间 的垂直距离。由下面给出的公式计算符号左上角区域中上边的模块节距CPx和左边的节 距CPx,值。 CPx,=Lx,/(校正图形P1的中心模块的列坐标 左上部位置探测图 形PUL的中心模块的列坐标) CPy,=Ly,/(校正图形P2的中心模块的行坐标 左上部位置探测图 形PUL的中心模块的行坐标) (符号的左上区域) QR码的解码 译码算法 校正图形中心的模块间距(AP) . QR码的解码 译码算法 校正

35、图形中心的模块间距(AP) QR码的解码 译码算法 g、依据代表符号左上区的每一边的模块节距值CPx,CPx,CPy和CPy,确定覆盖符 号的左上区的采样网格。 h、在同样方式下,确定符号右上区(被右上角位置探测图形PUR,校正图形P1,P3 和P4所覆盖)和符号左下区(被右上区位置探测图形PUR,校正图形P2,P3和P5覆盖) 的采样网格。 i、对校正图形P6,由校正图形P3、P4和P5的间距,穿过校正图形P3和P4,P4和P5的 中心的导向直线以及这些图形的中心坐标值得到的模块间距CPx,和CP符号右下区 ,值 ,估计它的初步的中心坐标。 (符号右下区) j、重复步骤eh,确定符号右下区的

36、采样网格。 k、用同样原则确定符号未覆盖区的采样网格。 QR码的解码 译码算法 9、对网格的每一交点上的图象象素取样,并根据阈值确定是深色块还是浅色块,构 造一个位图,用二进制的“1”表示深色的象素,用二进制的“0”表示浅色的象素。 10、对与左上区位置探测图形相邻的格式信息译码,得到纠错等级和用于符号的掩模 图形。如果检测出错误超过格式信息的纠错容量,那么,采用同样的程序对与右上部和 左下部位置探测图形相邻的格式信息进行译码。 11、用掩模图形对符号编码区进行异或(XOR)处理,解除掩模并恢复表示数据和纠 错码字的符号字符。这与在编码程序中采用的掩模处理过程的作用正好相反。 12、根据符号字

37、符的布置中的排列规则确定符号码字。 13、根据符号版本和纠错等级需求,按照码字序列构造的交替处理的逆过程,重新将 码字序列按块排列。 14、执行错误检测与纠错译码程序,纠正替化错误与拒读错误,直到符号版本和纠错 等级所规定的最大纠错容量。 15、通过重新组配数据块序列,恢复原始信息的位流。 16、将数据位流分成若干段,每一段由模式指示符开始,段的长度由在模式指标符后 的字符计数指示符确定。 17、根据采用的模式的规则,对每一段进行译码。 QR码的解码 从识读一个QR码符号到输出数据字符的译码步骤是编码程序的逆过程。 1、定位并获取符号图像。深色与浅色模块识别为“ 0”与“1”的阵列。 2、识读

38、格式信息(如果需要,去除掩模图形并完成对格式信息模块的纠错,识别 纠错等级与掩模图形参考。) 3、识读版本信息,确定符号的版本。 4、用掩模图形掩模图形参考已经从格式信息中得出对编码区的位图进行异或处理 消除掩模。 5、根据模块排列规则,识读符号字符,恢复信息的数据与纠错码字。 6、用与纠错级别信息相对应的纠错码字检测错误,如果发现错误,立即纠错。 7、根据模式指示符和字符计数指示符将数据码字划分成多个部分。 8、最后,按照使用的模式译码得出数据字符并输出结果。 QR码的解码 QR码的解码 译码算法 参考译码算法在图像中寻找符号并进行译码,译码算法参照图象中的深色浅色状 态。 1、选择图象的反

39、射率最大值与最小值之间的中值确定阈值,使用阈值将图象转化 为一系列深色与浅色像素。 2、确定寻象图形,在QR码中的寻象图形由位于符号的4个角中的3个角上的3个相同 的位置探测图形组成。每一位置探测图形的模块序列由一个深色浅色深色浅色 深色次序构成,各元素的相对宽度的比例是11311。对本译码算法,每一元素宽 度的允许偏差为0.5(即单个模块的方块的尺寸允许范围为0.51.5,3个模块宽度的方 块的宽度允许尺寸范围为2.53.5)。 a、当探测到预选区时,注意图像中一行像素与位置探测图形的外边缘相遇的 第一点和最后一点A和B(如下图)。对该图像中的相邻象素行重复探测,直 到在中心方块X轴方向所有

40、穿过位置探测图形的直线被全部识别。 位置探测图形扫描线 QR码的解码 译码算法 b、重复步骤a,在图象的Y轴方向,识别穿过位置探测图形中心方块的所有象 素行。 c、确定探测图形中心,通过在X轴方向穿过位置探测图形中心块的最外层的 象素线上A、B两点连线的中点连一直线,用同样方法在另一垂直方向上划一 直线,两条直线的交点就是位置探测图形的中心。 d、重复步骤a至c,确定其它两个位置探测图形的中心位置。 3、通过分析位置探测图形中心的坐标,识别哪一个位置探测图形是左上角图形以 及符号的旋转角度来确定符号的方位。 4、确定:a、 距离D,是左上角位置探测图形中心与右上角位置探测图形中心之间 的距离,

41、b、 两个探测图形的宽度,WUL和WUR。 上部位置探测图形 QR码的解码 译码算法 5、计算符号的名义模块宽度尺寸X X=(WUL+WUR)/14 6、初步确定符号的版本 V = (D/X) - 10 / 4 7、如果初步确定的符号版本等于或小于6,那么该计算值即为版本号。如果初步确 定的符号版本等于或大于7,那么版本信息应按下列步骤译码: a、用7除以右上角位置探测图形的宽度尺寸WUR,得到模块尺寸CPUR CPUR=WUR/7 b、由A,B和C找出通过三个位置探测图形中心的导向线AC、AB。根据与导向线相平 行的直线、位置探测图形的中心坐标和模块尺寸CPUR 确定在版本信息1区域中每一模

42、块 中心的取样网格。二进制值0和1根据采样网格上的深色浅色的图形来确定。 位置探测图形与版本信息 QR码的解码 译码算法 c、通过检测并纠错确定版本,如果有错,根据BCH纠错原理,对版本信息模块出现 的错误进行纠错。 d、如果发现错误超过纠错容量,那末计算左下方位置探测图形的宽度尺寸WDL,并 按上述步骤a,b,c对版本信息2进行译码。 8、对于没有校正图形的版本1符号,继续以下的算法的第7步和第8步进行译码,然 后转至本算法的第9步。版本2以及更高版本的符号的译码要求由定义的坐标决定的每 一校正图形的中心坐标来确定取样网格。 7、重新确定定位图形中,深色和浅色模块的中心点的水平平均间距X。用

43、类似的 方法,计算左边定位图形中,深色与浅色模块的中心点的垂直平均间距Y。 8、建立一个取样网格:(a)穿过上部定位图形的水平线,以及与之平行以Y值为 垂直间距的水平线,在水平参考线之上形成六条与之平行的水平线,水平参考线下方 与之平行的水平线的数量由符号版本要求决定。(b)通过左边定位图形的垂直线, 以及与之平行的以X值为水平间距的垂直线,在垂直参考线左边形成与之平行的六条 垂直线,垂直参考线右边与之平行的线的数量由符号的版本决定。 QR码的解码 译码算法 位置探测 图形与校 正图形 校正图形的中心坐标 a、左上角位置探测图形的宽度WUL除以7,计算模块尺寸CPUL CPUL=WUL/7 b

44、、根据左上角位置探测图形PUL的中心A的坐标,平行于从第7c)得到的导向直线 AB和AC的直线以及模块尺寸CPUL初步确定校正图形P1和P2的中心坐标。 c、从初定的中心坐标的象素开始,扫描校正图形P1和P2中的空白方块的轮廓,确 定实际的中心坐标Xi和 Yj d、根据左上角位置探测图形PUL的中心坐标和在c中得到的校正图形P1和P2的实际 中心坐标值,估计校正图形P3的初步中心坐标。 QR码的解码 译码算法 e、按照c中同样的步骤找到校正图形P3的实际中心坐标。 f、确定LX和Ly,LX是指校正图形P2和P3两中心之间的距离,Ly是指校正图形P1和P3两中 心之间的距离。用校正图形的已定义的

45、间距除Lx和Ly,获得位于符号左上角区域下边的 模块节距CPX和右边的模块节距CPy值。 CPx=Lx/AP CPy=Ly/AP 其中,AP是校正图形中心的模块间距 以同样方式,找出Lx,和Ly,Lx,是左上部位置探测图形PUL与校正图形P1的中心坐标之 间的水平距离。Ly,是左上部位置探测图形PUL的中心坐标与校正图形P2的中心坐标之间 的垂直距离。由下面给出的公式计算符号左上角区域中上边的模块节距CPx和左边的节 距CPx,值。 CPx,=Lx,/(校正图形P1的中心模块的列坐标 左上部位置探测图 形PUL的中心模块的列坐标) CPy,=Ly,/(校正图形P2的中心模块的行坐标 左上部位置

46、探测图 形PUL的中心模块的行坐标) (符号的左上区域) QR码的解码 译码算法 校正图形中心的模块间距(AP) QR码的解码 译码算法 校正图形中心的模块间距(AP) QR码的解码 译码算法 g、依据代表符号左上区的每一边的模块节距值CPx,CPx,CPy和CPy,确定覆盖符 号的左上区的采样网格。 h、在同样方式下,确定符号右上区(被右上角位置探测图形PUR,校正图形P1,P3 和P4所覆盖)和符号左下区(被右上区位置探测图形PUR,校正图形P2,P3和P5覆盖) 的采样网格。 i、对校正图形P6,由校正图形P3、P4和P5的间距,穿过校正图形P3和P4,P4和P5的 中心的导向直线以及这

47、些图形的中心坐标值得到的模块间距CPx,和CP符号右下区 ,值 ,估计它的初步的中心坐标。 (符号右下区) j、重复步骤eh,确定符号右下区的采样网格。 k、用同样原则确定符号未覆盖区的采样网格。 QR码的解码 译码算法 9、对网格的每一交点上的图象象素取样,并根据阈值确定是深色块还是浅色块,构 造一个位图,用二进制的“1”表示深色的象素,用二进制的“0”表示浅色的象素。 10、对与左上区位置探测图形相邻的格式信息译码,得到纠错等级和用于符号的掩模 图形。如果检测出错误超过格式信息的纠错容量,那么,采用同样的程序对与右上部和 左下部位置探测图形相邻的格式信息进行译码。 11、用掩模图形对符号编

48、码区进行异或(XOR)处理,解除掩模并恢复表示数据和纠 错码字的符号字符。这与在编码程序中采用的掩模处理过程的作用正好相反。 12、根据符号字符的布置中的排列规则确定符号码字。 13、根据符号版本和纠错等级需求,按照码字序列构造的交替处理的逆过程,重新将 码字序列按块排列。 14、执行错误检测与纠错译码程序,纠正替化错误与拒读错误,直到符号版本和纠错 等级所规定的最大纠错容量。 15、通过重新组配数据块序列,恢复原始信息的位流。 16、将数据位流分成若干段,每一段由模式指示符开始,段的长度由在模式指标符后 的字符计数指示符确定。 17、根据采用的模式的规则,对每一段进行译码。 接下来的学习 1.纠错码生成算法 2.解码算法 3.代码实现 实现显式的二维码 在生成的二维码图像中,能够看到你要表达的信息。 1.优化掩模方案,导入图片,根据图片来生成掩模图形。 2.增加二维码码的颜色,例如加入灰色,使颜色的对比度减小。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1