彩色qr码的编/解码方法
【技术领域】
[0001] 本发明涉及二维码,具体是彩色QR码的编/解码方法。
【背景技术】
[0002] 条码技术的应用极大的提高了数据采集和信息处理的速度,已成为自动识别领域 的重要分支。国内常用的一维条码如欧洲商品编号(EuropeanArticleNumber,EAN),通 用商品代码(UniversalProductCode,UPC)、39码、交叉25码等的普遍局限性是信息密度 低、数据容量小、只能在一个维度上表示信息,无纠错能力、不具备加密功能、严格依赖于数 据库或联网等。由于一维条码容量的局限性,已经不能满足日益增长的生产需求,于是二维 条码应运而生。二维条码可以在有限的几何空间内,在横纵两个维度上表示更多的信息,在 编码范围、信息密度和纠错能力等方面有了很大的提高,但是作为黑白二维码中容量最大 的快速响应矩阵码(QuickResponseCode,QR码),版本为40,纠错等级为L的QR码也只 能存放7089个数字或4296个大写字母或2953个ASCII字符或1817个中国汉字。条码的 应用普及对条码的信息容量提出了更高的要求,人们迫切的希望在更小的储存空间内储存 更多的数据容量、兼容更多的字符类型。尽管现有的彩色二维码,如ColorCode、高容量的彩 色条码(HighCapacityColorBarcode,HCCB)、移动多彩色复合码(MobileMulti-Colour Composit,MMCC)、高容量的彩色二维码(HighCapacityColoredTwoDimensional Code,HCC2D)等在不同程度上实现了数据容量的扩充,但是其容量最多为标准黑白QR码的 4倍,而且现有的彩色二维码存在以下缺陷:
[0003] 1.对光照条件十分敏感,因为同一种颜色在不同的光照条件下呈现的颜色不一 样;
[0004] 2.要求编码颜色在RGB颜色空间中相距最远,以提高颜色的辨识率;
[0005] 3.彩色二维码在编码/解码过程中,颜色空间的转换会导致颜色信息的丢失;
[0006] 4.需要利用参考颜色来处理彩色二维码的偏色问题,计算复杂度大幅增加;
[0007] 5?解码正确率不高。
【发明内容】
[0008] 本发明的目的是提供一种彩色QR码的编/解码方法,该编码方法保留了标准黑白 QR码的可靠性和鲁棒性,利用无损压缩算法使得彩色QR码的数据容量远大于同类型的彩 色二维码。且编码颜色不要求在RGB颜色空间中相距最远来提高颜色的辨识度,彩色QR码 的编/解码过程不需要进行颜色空间的转换,即不会导致颜色信息的丢失,彩色QR码解码 时对环境光照无特殊要求,不需要利用参考颜色作为调色板,计算复杂度大大降低,且解码 正确率为100%。
[0009] 实现本发明目的的技术方案是:
[0010] 彩色QR码的编码方法,包括以下步骤:
[0011] 1)输入待编码的字符串,形成源数据信息流;
[0012] 2)用压缩算法对源数据信息流进行压缩;
[0013] 3)根据QR码的编码规则,进行数据分析形成数据码字流;
[0014] 4)根据数据码字流的字节数,利用最小尺寸原则初始化彩色QR码;
[0015] 5)在步骤3)的基础上,用理德-所罗门码(Reed-Solomon,RS)算法对数据码字流 进行分块纠错,形成纠错码字流;
[0016] 6)将生成的纠错码字流添加到数据码字流后面形成总码字流,构造信息的最终码 字序列,必要时加入剩余位;
[0017] 7)填充功能图形区域,其中功能图形包括寻像图形、分隔符、定位图形、校正图 形;
[0018] 8)填充格式信息和版本信息;
[0019] 9)对数据和纠错码字区域进行掩膜;
[0020] 10)根据QR码符号字符的排列规则,在步骤8)和步骤9)的基础上填充数据码字 和纠错码字;
[0021] 11)根据颜色映射表,生成彩色QR码。
[0022] 上述编码方法中,步骤2)中压缩算法只要是无损压缩算法均可实现其功能。
[0023] 上述编码方法中,步骤4)彩色QR码初始化过程中,随着颜色种类的增多,QR码的 数据密度也随之增大,假定使用的颜色数为2k种,每个模块可储存的比特数定义为:
[0024] BMP(BitsPerModule) =log2 (2k) =k,其码字总数、剩余位、数据码字数、纠错码 字数、纠错的块数等均变为标准黑白QR码的K倍。
[0025] 上述编码方法中,步骤6)中依次将每一块的数据和纠错码字装配成最终的序列: 数据块1的码字1,数据块2的码字1,数据块3的码字1,以此类推至数据块n-1的最后一 个码字,数据块n的最后一个码字;随后,纠错块1的码字1,纠错块2的码字1,以此类推至 纠错块n-1的最后一个码字,纠错块n的最后一个码字。
[0026] 彩色QR码的解码方法,包括以下步骤:
[0027]1)加载彩色QR码图像;
[0028] 2)遍历彩色QR码图像,得到图像中每个像素点的RGB值;
[0029] 3)检测寻像图形是否存在;若成功检测到寻像图形,则进入步骤4),否则进入步 骤13)结束本次解码;
[0030] 4)返回寻像图形中心点的坐标值,并继续检测校正图形,返回校正图形中心点的 坐标值;
[0031]5)利用透视变换,栅格化QR码,识别颜色模块;
[0032] 6)根据颜色映射表,识读格式信息和版本信息;
[0033] 7)消除掩膜,恢复数据码字和纠错码字;
[0034] 8)用纠错码字进行错误检查,若发现错误,则进入步骤9),否则进入步骤10);
[0035]9)分块纠错,根据接收码字多项式,计算伴随式并求解错误位置,对每一个错误位 值取反来纠正出现的错误,最终实现分块纠错;
[0036] 10)将数据解压缩,恢复源数据信息流;
[0037]11)数据码字译码,根据模式指示符和字符计数指示符,将数据码字划分成多个部 分,按照使用的模式进行译码;
[0038] 12)根据数据码字译码结果,输出源数据信息流;
[0039] 13)结束本次解码。
[0040] 上述解码方法中,步骤3)中,检测寻像图形时,遍历彩色QR码图像,先在水平方 向上统计彩色QR码图像中5种颜色的相对宽度比例是否为1:1:3:1: 1,此处比例允许小于 50%的偏差;满足上述比例条件后,再垂直检测彩色QR码图像中5种颜色的相对宽度比例 是否为此处比例允许小于40%的偏差;满足上述两个比例条件后,再次水平方 向上检测彩色QR码图像中5种颜色的相对宽度比例是否为1:1:3:1: 1,此处比例允许小于 20%的偏差。偏差的存在主要是为了检测扭曲、变形等失真的彩色QR码。
[0041] 上述解码方法中,步骤4)中,检测校正图形时,先在水平方向上统计3种颜色的相 对宽度比例是否为1:1:1,此处比例允许小于50%的偏差;满足上述比例条件后,再垂直检 测彩色QR码图像中3种颜色的相对宽度比例是否为1:1:1,此处比例允许小于40%的偏 差。偏差的存在主要是为了检测扭曲、变形等失真的彩色QR码。
[0042] 上述解码方法中,步骤5)利用步骤3)和步骤4)得到的寻像图形和校正图形中心 点的坐标,利用以下公式得到输入图像坐标与输出图像坐标之间的映射关系:
[0044] 其中(u,v)代表输入图像的坐标,(X,y)表示输出图像的坐标,a,b,c,e,f,g,h,i ,j均为常数项系数。
[0045] 本发明的有益效果是:
[0046] 1.本发明提供彩色QR码利用无损压缩算法使得彩色QR码的数据容量远大于同类 型的彩色二维码。与标准黑白QR码相比,其数据容量得到了显著的提升,采用4种颜色编 码时,数字模式的容量提升了 26. 28倍,字母数字模式的容量提升了 61. 32倍,8位字节模式 的容量提升了 25. 18倍,中国汉字的容量提升了 32. 58倍;采用16种颜色编码时,数字模式 的容量提升了 52. 97倍,字母数字模式的容量提升了 123. 36倍,8位字节模式的容量提升了 50. 86倍,中国汉字的容量提升了 83. 29倍;
[0047] 2.彩色QR码解码时,对环境光照无特殊要求;
[0048] 3.彩色QR码的编码颜色不要求在RGB颜色空间中相距最远来提高辨识度;
[0049] 4.彩色QR码的编/解码过程不需要进行颜色空间的转换,即不会导致颜色信息的 丢失;
[0050] 5.彩色QR码不存在偏色问题,不需要利用参考颜色,计算复杂度明显降低;
[0051] 6.解码正确率为100%。
【附图说明】
[0052] 图1是本发明彩色QR码的编码流程图;
[0053] 图2是4种颜色的彩色QR码图像示意图;
[0054] 图3是16种颜色的彩色QR码图像示意图;
[0055] 图4是本发明彩色QR码的解码流程图。
【具体实施方式】
[0056] 下面结合附图对本
【发明内容】
作进一步的说明,但不是对本发明的限定。
[0057] 实施例1
[0058] 如图1所示,本发明实施例彩色QR码的编码流程图,其编码方法包括以下步骤:
[0059] S101)输入待编码的字符串,形成源数据信息流;
[0060] S102)用压缩算法对源数据信息流进行压缩;
[0061] S103)根据QR码的编码规则,进行数据分析,将不同模式的源数据信息流转换为 二进制数据,在二进制数据后逐位添加终止符,必要时添加填充字符,形成数据码字流;
[0062] S104)根据数据码字流的字节数,确定彩色QR码的版本、纠错等级、码字总数、数 据码字数、纠错码字数以及纠错的块数,根据QR码初始化后的版本和纠错等级,交替的添 加填充码字11101100和00010001 ;
[0063] S105)在S103)的基础上,用RS算法对数据码字流进行分块纠错,形成纠错码字 流;
[0064] S106)将生成的纠错码字流添加到数据码字流之后形成总码字流,为了正好填满 S104)中彩色QR码初始化后的码字总数,当编码颜色为2k种时,版本14、15、16、17、18、19、 20、28、29、30、31、32、33、34 需要添加 3k个剩余位、版本 21、22、23、24、25、26、27 需要添加 4k个剩余位、版本2、3、4、5、6需要添加7k个剩余位;
[0065] S107)填充功能图形区域,其中功能图形包括寻像图形、分隔符、定位图形、校正图 形;
[0066] S108)填充格式信息和版本信息;
[0067] S109)对数据和纠错码字区域进行掩膜;
[0068] S110)根据QR码符号字符的排列规则,在S108和S109的基础上填
充数据码字和 纠错码字;
[0069] S111)根据颜色映射表,生成彩色QR码。
[0070] 上述编码方法中,步骤S102)中压缩算法只要是无损压缩算法均可实现其功能。
[0071] 上述编码方法中,步骤S104)中初始化彩色QR码时,随着颜色种类的增多,QR码 的数据密度也随之增大,假定使用的颜色数为2k种,每个模块可储存的比特数定义为:
[0072] BMP(BitsPerModule) =log2 (2k) =k,其码字总数、剩余位、数据码字数、纠错码 字数、纠错的块数等均变为标准黑白QR码的K倍。
[0073] 低版本彩色QR码的数据容量如下表所示:
[0074]
[0075] 低版本彩色QR码符号字符数和数据容量如下表所示:
[0077] 由于彩色QR码较标准黑白QR码而言,其数据密度更高,所以彩色QR码的字符计 数指示符的位数需要相应的增加,彩色QR码数字模式、字母数字模式、中国汉字模式的字 符计数指示符定义为:CC/@+rSMP/2l,其中CCIQK表示标准黑白QR码的字符计数指示 符的位数,而彩色QR码8位字节模式的字符计数指示符均为16。
[0078] 彩色QR码的字符计数指示符如下表所示:
[0079]
[0080] 上述编码方法中,步骤S105)中由于QR码使用RS码的伽罗华域为GF(28),即多项 式阶数不能高于255,因此,当遇到码字流长度小于等于255个字节的QR码,可直接使用RS 算法计算纠错码字;当码字流长度超过255个字节时,QR码进行分块纠错,分别计算各块数 据码字子序列对应的纠错码字子序列,按照S106)的规则组合成总码字流。
[0081] 上述编码方法中,步骤S106)中依次将每一块的数据和纠错码字装配成最终的序 列:数据块1的码字1,数据块2的码字1,数据块3的码字1,以此类推至数据块n-1的最 后一个码字,数据块n的最后一个码字;随后,纠错块1的码字1,纠错块2的码字1,以此类 推至纠错块n-1的最后一个码字,纠错块n的最后一个码字。当编码颜色为2k种时,QR码 符号所包含的数据和纠错块通常正好填满符号的码字容量,但是版本14、15、16、17、18、19、 20、28、29、30、31、32、33、34 需要添加 3k个剩余位、版本 21、22、23、24、25、26、27 需要添加 4k个剩余位、版本2、3、4、5、6需要添加7k个剩余位,添加在最终的信息位流后以正好填满 编码区域的模块数。
[0082] 上述编码方法中,步骤S111)中彩色QR码的编码颜色可任意选取,本发明实施例 选取的颜色映射表如下表所示:
[0084]
[0085] 本发明的显著优势是彩色QR码的容量得到了显著的提升,如下表所示:
[0087] 采用本实施例的编码方法得到的4种颜色、版本为7、纠错等级为L的彩色QR码如 图2所示。
[0088] 采用本实施例的编码方法得到的生成16种颜色、版本为7、纠错等级为L的彩色 QR码如图3所示。
[0089] 实施例2
[0090] 如图4所示,为本发明实施例提供的彩色QR码的解码流程图,其解码方法包括以 下步骤:
[0091] S201)加载彩色QR码图像;
[0092] S202)遍历彩色QR码图像,得到图像中每个像素点的RGB值;
[0093] S203)检测寻像图形是否存在;若成功检测到寻像图形,则进入步骤S204),否则 进入步骤S213)结束本次解码;
[0094] S204)返回寻像图形中心点的坐标值,并继续检测校正图形,返回校正图形中心点 的坐标值;
[0095] S205)利用透视变换,栅格化QR码,识别颜色模块;
[0096] S206)根据颜色映射表,识读格式信息和版本信息;
[0097] S207)消除掩膜,恢复数据码字和纠错码字;
[0098] S208)用纠错码字进行错误检查,若发现错误,则进入步骤S209);否则进入步骤 S210);
[0099] S209)分块纠错,根据接收码字多项式,计算伴随式并求解错误位置,对每一个错 误位值取反来纠正出现的错误,最终实现分块纠错;
[0100] S210)将数据解压缩,恢复源数据信息流;
[0101] S211)数据码字译码,根据模式指示符和字符计数指示符,将数据码字划分成多个 部分,按照使用的模式进行译码;
[0102] S212)根据数据码字译码结果,输出源数据信息流;
[0103] S213)结束本次解码。
[0104] 上述解码方法中,步骤S203)中,检测寻像图形时,遍历彩色QR码图像,先在水平 方向上统计彩色QR码图像中5种颜色的相对宽度比例是否为1:1:3:1: 1,此处比例允许小 于50%的偏差;满足上述比例条件后,再垂直检测彩色QR码图像中5种颜色的相对宽度比 例是否为1:1:3:1: 1,此处比例允许小于40%的偏差;满足上述两个比例条件后,再次水平 方向上检测彩色QR码图像中5种颜色的相对宽度比例是否为1:1:3:1: 1,此处比例允许小 于20%的偏差。偏差的存在主要是为了检测扭曲、变形等失真的彩色QR码。
[0105] 上述解码方法中,步骤S204)中,检测校正图形时,先在水平方向上统计3种颜色 的相对宽度比例是否为1:1:1,此处比例允许小于50%的偏差;满足上述比例条件后,再垂 直检测彩色QR码图像中3种颜色的相对宽度比例是否为1:1: 1,此处比例允许小于40%的 偏差。偏差的存在主要是为了检测扭曲、变形等失真的彩色QR码。
[0106] 上述解码方法中,步骤S205)中利用S204)得到的寻像图形和校正图形中心点的 坐标,利用以下公式得到输入图像坐标与输出图像坐标之间的映射关系:
[0108] 其中(u,v)代表输入图像的坐标,(X,y)表示输出图像的坐标,a,b,c,e,f,g,h,i,j均为常数项系数。
【主权项】
1. 彩色QR码的编码方法,其特征是包括以下步骤: 1) 输入待编码的字符串,形成源数据信息流; 2) 用压缩算法对源数据信息流进行压缩; 3) 根据QR码的编码规则,进行数据分析形成数据码字流; 4) 根据数据码字流的字节数,利用最小尺寸原则初始化彩色QR码; 5) 在步骤3)的基础上,用理德-所罗门码(Reed-S〇l〇m〇n,RS)算法对数据码字流进行 分块纠错,形成纠错码字流; 6) 将生成的纠错码字流添加到数据码字流后面形成总码字流,构造信息的最终码字序 列,必要时加入剩余位; 7) 填充功能图形区域,其中功能图形包括寻像图形、分隔符、定位图形、校正图形; 8) 填充格式信息和版本信息; 9) 对数据和纠错码字区域进行掩膜; 10) 根据QR码符号字符的排列规则,在步骤8)和步骤9)的基础上填充数据码字和纠 错码字; 11) 根据颜色映射表,生成彩色QR码。2. 根据权利要求1所述的彩色QR码的编码方法,其特征是:步骤4)彩色QR码初始化 过程中,随着颜色种类的增多,QR码的数据密度也随之增大,假定使用的颜色数为2k种,每 个模块可储存的比特数定义为:BMP(Bits Per Module) = Iog2 (2k) =k,其码字总数、剩余 位、数据码字数、纠错码字数、纠错的块数等均变为标准黑白QR码的K倍。3. 根据权利要求1所述的彩色QR码的编码方法,其特征是:步骤6)中依次将每一块 的数据和纠错码字装配成最终的序列:数据块1的码字1,数据块2的码字1,数据块3的码 字1,以此类推至数据块n-1的最后一个码字,数据块η的最后一个码字;随后,纠错块1的 码字1,纠错块2的码字1,以此类推至纠错块η-1的最后一个码字,纠错块η的最后一个码 字。4. 彩色QR码的编码方法,其特征是包括以下步骤: 1) 加载彩色QR码图像; 2) 遍历彩色QR码图像,得到图像中每个像素点的RGB值; 3) 检测寻像图形是否存在;若成功检测到寻像图形,则进入步骤4),否则进入步骤13) 结束本次解码; 4) 返回寻像图形中心点的坐标值,并继续检测校正图形,返回校正图形中心点的坐标 值; 5) 利用透视变换,栅格化QR码,识别颜色模块; 6) 根据颜色映射表,识读格式信息和版本信息; 7) 消除掩膜,恢复数据码字和纠错码字; 8) 用纠错码字进行错误检查,若发现错误,则进入步骤9),否则进入步骤10); 9) 分块纠错,根据接收码字多项式,计算伴随式并求解错误位置,对每一个错误位值取 反来纠正出现的错误,最终实现分块纠错; 10) 将数据解压缩,恢复源数据信息流; 11) 数据码字译码,根据模式指示符和字符计数指示符,将数据码字划分成多个部分, 按照使用的模式进行译码; 12) 根据数据码字译码结果,输出源数据信息流; 13) 结束本次解码。5. 根据权利要求4所述的彩色QR码的编码方法,其特征是:步骤3)中,检测寻像图形 时,遍历彩色QR码图像,先在水平方向上统计彩色QR码图像中5种颜色的相对宽度比例是 否为1: 1:3:1:1,此处比例允许小于50 %的偏差;满足上述比例条件后,再垂直检测彩色QR 码图像中5种颜色的相对宽度比例是否为1:1:3:1:1,此处比例允许小于40%的偏差;满足 上述两个比例条件后,再次水平方向上检测彩色QR码图像中5种颜色的相对宽度比例是否 为1:1:3:1:1,此处比例允许小于20%的偏差。6. 根据权利要求4所述的彩色QR码的编码方法,其特征是:步骤4)中,检测校正图形 时,先在水平方向上统计3种颜色的相对宽度比例是否为1:1: 1,此处比例允许小于50%的 偏差;满足上述比例条件后,再垂直检测彩色QR码图像中3种颜色的相对宽度比例是否为 1:1:1,此处比例允许小于40%的偏差。7. 根据权利要求4所述的彩色QR码的编码方法,其特征是:步骤5)利用步骤3)和步 骤4)得到的寻像图形和校正图形中心点的坐标,利用以下公式得到输入图像坐标与输出 图像坐标之间的映射关系:其中(u, V)代表输入图像的坐标,(X,y)表示输出图像的坐标,a, b, c, e, f, g, h, i, j均 为常数项系数。
【专利摘要】本发明公开了一种彩色QR码的编/解码方法,该编码方法保留了标准黑白QR码的可靠性和鲁棒性,利用无损压缩算法使得彩色QR码的数据容量远大于同类型的彩色二维码。且编码颜色不要求在RGB颜色空间中相距最远来提高颜色的辨识度,彩色QR码的编/解码过程不需要进行颜色空间的转换,即不会导致颜色信息的丢失,彩色QR码解码时对环境光照无特殊要求,不需要利用参考颜色作为调色板,计算复杂度大大降低,且解码正确率为100%。
【IPC分类】G06K19/06, G06K7/10
【公开号】CN104899630
【申请号】CN201510340217
【发明人】陈元枝, 邓艳, 史绍亮, 姜文英
【申请人】桂林电子科技大学
【公开日】2015年9月9日
【申请日】2015年6月18日