彩色QR码的编/解码方法转让专利

申请号 : CN201510340217.1

文献号 : CN104899630B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈元枝邓艳史绍亮姜文英

申请人 : 桂林电子科技大学

摘要 :

本发明公开了一种彩色QR码的编/解码方法,该编码方法保留了标准黑白QR码的可靠性和鲁棒性,利用无损压缩算法使得彩色QR码的数据容量远大于同类型的彩色二维码。且编码颜色不要求在RGB颜色空间中相距最远来提高颜色的辨识度,彩色QR码的编/解码过程不需要进行颜色空间的转换,即不会导致颜色信息的丢失,彩色QR码解码时对环境光照无特殊要求,不需要利用参考颜色作为调色板,计算复杂度大大降低,且解码正确率为100%。

权利要求 :

1.彩色QR码的编码方法,包括以下步骤:

1)输入待编码的字符串,形成源数据信息流;

2)用压缩算法对源数据信息流进行压缩;

3)根据QR码的编码规则,进行数据分析形成数据码字流;

4)根据数据码字流的字节数,利用最小尺寸原则初始化彩色QR码;

5)在步骤3)的基础上,用理德-所罗门码(Reed-Solomon,RS)算法对数据码字流进行分块纠错,形成纠错码字流;

6)将生成的纠错码字流添加到数据码字流后面形成总码字流,构造信息的最终码字序列,必要时加入剩余位;

7)填充功能图形区域,其中功能图形包括寻像图形、分隔符、定位图形、校正图形;

8)填充格式信息和版本信息;

9)对数据和纠错码字区域进行掩膜;

10)根据QR码符号字符的排列规则,在步骤8)和步骤9)的基础上填充数据码字和纠错码字;

11)根据颜色映射表,生成彩色QR码;

其特征是:

步骤6)中依次将每一块的数据和纠错码字装配成最终的序列:数据块1的码字1,数据块2的码字1,数据块3的码字1,以此类推至数据块n-1的最后一个码字,数据块n的最后一个码字;随后,纠错块1的码字1,纠错块2的码字1,以此类推至纠错块n-1的最后一个码字,纠错块n的最后一个码字;

数据块和纠错块为n比特,n为大于等于5的正整数。

2.根据权利要求1所述的彩色QR码的编码方法,其特征是:步骤4)彩色QR码初始化过程中,随着颜色种类的增多,QR码的数据密度也随之增大,假定使用的颜色数为2k种,每个模块可储存的比特数定义为: ,其码字总数、剩余位、数据码字数、纠错码字数、纠错的块数等均变为标准黑白QR码的K倍。

3.彩色QR码的解码方法,包括以下步骤:

1)加载彩色QR码图像;

2)遍历彩色QR码图像,得到图像中每个像素点的RGB值;

3)检测寻像图形是否存在;若成功检测到寻像图形,则进入步骤4),否则进入步骤13)结束本次解码;

4)返回寻像图形中心点的坐标值,并继续检测校正图形,返回校正图形中心点的坐标值;

5)利用透视变换,栅格化QR码,识别颜色模块;

6)根据颜色映射表,识读格式信息和版本信息;

7)消除掩膜,恢复数据码字和纠错码字;

8)用纠错码字进行错误检查,若发现错误,则进入步骤9),否则进入步骤10);

9)分块纠错,根据接收码字多项式,计算伴随式并求解错误位置,对每一个错误位值取反来纠正出现的错误,最终实现分块纠错;

10)将数据解压缩,恢复源数据信息流;

11)数据码字译码,根据模式指示符和字符计数指示符,将数据码字划分成多个部分,按照使用的模式进行译码;

12)根据数据码字译码结果,输出源数据信息流;

13)结束本次解码;

其特征是:

步骤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%的偏差。

4.根据权利要求3所述的彩色QR码的解码方法,其特征是:步骤4)中,检测校正图形时,先在水平方向上统计3种颜色的相对宽度比例是否为1:1:1,此处比例允许小于50%的偏差;

满足上述比例条件后,再垂直检测彩色QR码图像中3种颜色的相对宽度比例是否为1:1:1,此处比例允许小于40%的偏差。

5.根据权利要求3所述的彩色QR码的解码方法,其特征是:步骤5)利用步骤3)和步骤4)得到的寻像图形和校正图形中心点的坐标,利用以下公式得到输入图像坐标与输出图像坐标之间的映射关系:其中(u,v)代表输入图像中任意一个像素点的坐标,(x,y)表示输出图像中任意一个像素点的坐标,a,b,c,e,f,g,h,i,j均为常数项系数。

说明书 :

彩色QR码的编/解码方法

技术领域

[0001] 本发明涉及二维码,具体是彩色QR码的编/解码方法。

背景技术

[0002] 条码技术的应用极大的提高了数据采集和信息处理的速度,已成为自动识别领域的重要分支。国内常用的一维条码如欧洲商品编号(European Article Number,EAN),通用商品代码(Universal Product Code,UPC)、39码、交叉25码等的普遍局限性是信息密度低、数据容量小、只能在一个维度上表示信息,无纠错能力、不具备加密功能、严格依赖于数据库或联网等。由于一维条码容量的局限性,已经不能满足日益增长的生产需求,于是二维条码应运而生。二维条码可以在有限的几何空间内,在横纵两个维度上表示更多的信息,在编码范围、信息密度和纠错能力等方面有了很大的提高,但是作为黑白二维码中容量最大的快速响应矩阵码(Quick Response Code,QR码),版本为40,纠错等级为L的QR码也只能存放7089个数字或4296个大写字母或2953个ASCII字符或1817个中国汉字。条码的应用普及对条码的信息容量提出了更高的要求,人们迫切的希望在更小的储存空间内储存更多的数据容量、兼容更多的字符类型。尽管现有的彩色二维码,如ColorCode、高容量的彩色条码(High Capacity Color Barcode,HCCB)、移动多彩色复合码(Mobile Multi-Colour Composit,MMCC)、高容量的彩色二维码(High Capacity Colored Two Dimensional 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码的数k据密度也随之增大,假定使用的颜色数为2种,每个模块可储存的比特数定义为:
[0024] BMP(Bits Per Module)=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种颜色的相对宽度比例是否为1:1:3:1:1,此处比例允许小于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)得到的寻像图形和校正图形中心点的坐标,利用以下公式得到输入图像坐标与输出图像坐标之间的映射关系:
[0043]
[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(Bits Per Module)=log2(2k)=k,其码字总数、剩余位、数据码字数、纠错码字数、纠错的块数等均变为标准黑白QR码的K倍。
[0073] 低版本彩色QR码的数据容量如下表所示:
[0074]
[0075] 低版本彩色QR码符号字符数和数据容量如下表所示:
[0076]
[0077] 由于彩色QR码较标准黑白QR码而言,其数据密度更高,所以彩色QR码的字符计数指示符的位数需要相应的增加,彩色QR码数字模式、字母数字模式、中国汉字模式的字符计数指示符定义为: 其中CCIQR表示标准黑白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码的编码颜色可任意选取,本发明实施例选取的颜色映射表如下表所示:
[0083]
[0084]
[0085] 本发明的显著优势是彩色QR码的容量得到了显著的提升,如下表所示:
[0086]
[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)得到的寻像图形和校正图形中心点的坐标,利用以下公式得到输入图像坐标与输出图像坐标之间的映射关系:
[0107]
[0108] 其中(u,v)代表输入图像的坐标,(x,y)表示输出图像的坐标,a,b,c,e,f,g,h,i,j均为常数项系数。