本申请涉及计算机技术领域,尤其涉及一种二维码的生成方法、装置以及二维码的解码方法、装置。
背景技术:
目前常用的防伪技术,包括条码防伪、二维码防伪等。条码是由一组按一定编码规则排列的条、空符号,用以表示一定的字符、数字及符号组成的信息。一维条形码简称一维码,它是根据一组水平方向的条的宽度不同,从而将其编成由“0”、“1”组成的一系列字符,该二进制字符按照一定的系统约定进行编码。在水平和垂直方向的二维空间存储信息的条形码,称为二维条形码(2-dimensionalbarcode),简称二维码。从它的编码原理而言,通常可分为以下两种类型:行排式二维条码和矩阵式二维码。行排式二维条码具有代表性的矩阵式二维条码有Code16K、Code49、PDF417等。矩阵式二维码具有代表性的矩阵式二维条码有:CodeOne、MaxiCode、QRCode、DataMatrix等。QRCode码(QuickResponseCode)是日本Denso公司在1994年9月研制的一种矩阵二维条码,它除了具有一维条码及其他二维条码所具有的信息容量大、可靠性高以外,还具有超高速识度、全方位识读、可表示汉字,并且有很强的保密防伪性等优点。
随着网络技术的快速发展以及电子商务的普及化,越来越多的商家希望二维码图片中能够包含更多的二维码信息。虽然,现有的二维码设计通过将黑白两种颜色增加到多种(如四种)颜色来表示信息,以使得二维码包含更多的二维码信息。
但是目前存在的问题是,只是单纯的将颜色种类从两种增加到多种,而并没有对多种颜色信息进行特殊处理,也就是说,通过现有的二维码技术生成的彩色二维码中所包含的信息均为标准QRCODE信息,并没有包含特殊的非标准QRCODE信息(即隐藏信息),例如代表二维码生成者的身份标识信息等,使得二维码生成不能做到人无我有的效果。
技术实现要素:
本申请的目的旨在至少在一定程度上解决上述的技术问题之一。
为此,本申请的第一个目的在于提出一种二维码的生成方法。该方法在传统的QRCODE点阵的黑点的基础上,使用多色(如红、绿、蓝、黑)附带更多的信息,利用QRCODE的大 众认知及多色编码信息的隐藏性,以区分是否是自己生成的码,即能够做到人无我有的效果。
本申请的第二个目的在于提出一种二维码的生成装置。
本申请的第三个目的在于提出一种二维码的解码方法。
本申请的第四个目的在于提出一种二维码的解码装置。
为达上述目的,本申请第一方面实施例的二维码的生成方法,包括:对隐藏信息进行多进制编码以生成多进制隐藏编码信息;根据二维码版本级别选择对应的二维码版本对标准信息进行编码以生成待定标准编码信息;根据所述待定标准编码信息选择对应的掩码生成所述二维码的比特矩阵,并提取所述比特矩阵中黑点的点数;根据所述比特矩阵中黑点的点数与所述隐藏编码信息的长度对选择的所述掩码和所述二维码版本进行更新以确定最终选择的掩码和二维码版本;根据所述最终选择的掩码和二维码版本生成标准编码信息;以及根据所述隐藏编码信息和所述标准编码信息生成所述二维码。
本申请实施例的二维码的生成方法,可先对隐藏信息进行多进制编码以生成多进制隐藏编码信息,之后可根据二维码版本级别选择对应的二维码版本对标准信息进行编码以生成待定标准编码信息,之后可根据待定标准编码信息选择对应的掩码生成二维码的比特矩阵,并提取比特矩阵中黑点的点数,然后,根据比特矩阵中黑点的点数与隐藏编码信息的长度对选择的掩码和二维码版本进行更新以确定最终选择的掩码和二维码版本,之后可根据最终选择的掩码和二维码版本生成标准编码信息,最后,根据隐藏编码信息和标准编码信息生成二维码。通过上述技术方案,在传统的QRCODE点阵的黑点的基础上,使用多色(如红、绿、蓝、黑)附带更多的信息,利用QRCODE的大众认知及多色编码信息的隐藏性,以区分是否是自己生成的码,即能够做到人无我有的效果。
为达上述目的,本申请第二方面实施例的二维码的生成装置,包括:第一编码模块,用于对隐藏信息进行多进制编码以生成多进制隐藏编码信息;第二编码模块,用于根据二维码版本级别选择对应的二维码版本对标准信息进行编码以生成待定标准编码信息;比特矩阵生成模块,用于根据所述待定标准编码信息选择对应的掩码生成所述二维码的比特矩阵,并提取所述比特矩阵中黑点的点数;确定模块,用于根据所述比特矩阵中黑点的点数与所述隐藏编码信息的长度对选择的所述掩码和所述二维码版本进行更新以确定最终选择的掩码和二维码版本;标准编码信息生成模块,用于根据所述最终选择的掩码和二维码版本生成标准编码信息;以及二维码生成模块,用于根据所述隐藏编码信息和所述标准编码信息生成所述二维码。
本申请实施例的二维码的生成装置,可通过第一编码模块对隐藏信息进行多进制编码以生成多进制隐藏编码信息,第二编码模块可根据二维码版本级别选择对应的二维码版本对标准信息进行编码以生成待定标准编码信息,比特矩阵生成模块可根据待定标准编码信 息选择对应的掩码生成二维码的比特矩阵,并提取比特矩阵中黑点的点数,确定模块根据比特矩阵中黑点的点数与隐藏编码信息的长度对选择的掩码和二维码版本进行更新以确定最终选择的掩码和二维码版本,标准编码信息生成模块根据最终选择的掩码和二维码版本生成标准编码信息,二维码生成模块根据隐藏编码信息和标准编码信息生成二维码。通过上述技术方案,在传统的QRCODE点阵的黑点的基础上,使用多色(如红、绿、蓝、黑)附带更多的信息,利用QRCODE的大众认知及多色编码信息的隐藏性,以区分是否是自己生成的码,即能够做到人无我有的效果。
为达上述目的,本申请第三方面实施例的二维码的解码方法,包括:扫描二维码并生成二维码图像;对所述二维码图像进行图像处理,并记录所述二维码图像的变换方法参数以及黑白点单元切分参数;对图像处理后的二维码图像进行解码以生成标准信息,并根据所述变换方法参数以及黑白点单元切分参数对所述二维码图像进行形状校正;根据所述变换方法参数以及黑白点单元切分参数对形状校正后的二维码图像进行码区域切割;对切割后的二维码图像进行白平衡校正,并对白平衡校正后的二维码图像进行色数转换以获取多进制隐藏编码信息;以及对所述多进制隐藏编码信息进行解码以生成隐藏信息。
本申请实施例的二维码的解码方法,可扫描彩色二维码并生成彩色二维码图像,之后可对该图像进行图像处理,并记录处理过程中的处理参数,然后对图像处理后的二维码图像进行解码以得到标准信息,并根据上述处理参数对二维码图像进行形状校正,以及根据该处理参数对形状校正后的二维码图像进行码区域切割,之后可对该切割后的二维码图像进行白平衡校正,并对白平衡校正后的二维码图像进行色数转换以获取多进制隐藏编码信息,最后对该多进制隐藏编码信息进行解码以生成隐藏信息,从而得到该彩色二维码中所包含的所有内容信息,即标准信息和隐藏信息。通过上述技术方案,不仅能够识别出标准QRCODE中所包含的标准信息,还能够识别出彩色QRCODE中所包含的标准信息和隐藏信息,增加了现有二维码扫码器的功能,扩大了使用范围。
为达上述目的,本申请第四方面实施例的二维码的解码装置,包括:扫描模块,用于扫描二维码并生成二维码图像;图像处理模块,用于对所述二维码图像进行图像处理,并记录所述二维码图像的变换方法参数以及黑白点单元切分参数;生成模块,用于对图像处理后的二维码图像进行解码以生成标准信息;形状校正模块,用于根据所述变换方法参数以及黑白点单元切分参数对所述二维码图像进行形状校正;切割模块,用于根据所述变换方法参数以及黑白点单元切分参数对形状校正后的二维码图像进行码区域切割;白平衡校正模块,用于对切割后的二维码图像进行白平衡校正;转换模块,用于对白平衡校正后的二维码图像进行色数转换以获取多进制隐藏编码信息;以及解码模块,用于对所述多进制隐藏编码信息进行解码以生成隐藏信息。
本申请实施例的二维码的解码装置,可通过扫描模块扫描彩色二维码并生成彩色二维 码图像,图像处理模块可对该图像进行图像处理,并记录处理过程中的处理参数,生成模块对图像处理后的二维码图像进行解码以得到标准信息,形状校正模块根据上述处理参数对二维码图像进行形状校正,切割模块根据该处理参数对形状校正后的二维码图像进行码区域切割,白平衡校正模块可对该切割后的二维码图像进行白平衡校正,转换模块对白平衡校正后的二维码图像进行色数转换以获取多进制隐藏编码信息,解码模块对该多进制隐藏编码信息进行解码以生成隐藏信息,从而得到该彩色二维码中所包含的所有内容信息,即标准信息和隐藏信息。通过上述技术方案,不仅能够识别出标准QRCODE中所包含的标准信息,还能够识别出彩色QRCODE中所包含的标准信息和隐藏信息,增加了现有二维码扫码器的功能,扩大了使用范围。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,
图1是根据本申请一个实施例的二维码的生成方法的流程图;
图2是根据本申请实施例的绘制彩色二维码的信息分布的示例图;
图3是根据本申请一个具体实施例的二维码的生成方法的流程图;
图4是根据本申请一个实施例的二维码的生成装置的结构框图;
图5是根据本申请一个实施例的确定模块的结构框图;
图6是根据本申请一个实施例的二维码生成模块的结构框图;
图7是根据本申请一个实施例的二维码的解码方法流程图;以及
图8是根据本申请一个实施例的二维码的解码装置的结构框图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的二维码的生成方法、装置以及二维码的解码方法、装置。
图1是根据本申请一个实施例的二维码的生成方法的流程图。如图1所示,该二维码的生成方法可以包括:
S101,对隐藏信息进行多进制编码以生成多进制隐藏编码信息。
需要说明的是,在本申请的实施例中,隐藏信息可理解为非QRCODE(矩阵二维码)标准信息,即具有特殊意义的信息(如个人信息、商户信息等),并且编码后的隐藏信息需要使用专用扫码器才能够识别出该隐藏信息内容。
其中,在本申请的实施例中,多进制隐藏编码信息的每一个进制位对应一种颜色。此外,在本申请的实施例中,多进制隐藏编码可为四进制隐藏编码。
举例而言,以四进制隐藏编码为例,可对隐藏信息进行四进制隐藏编码,得到四进制隐藏编码信息,如四进制IntArray(即一组值由0~3范围内的值组成的比特流数组)和该四进制IntArray的长度L0(即该隐藏编码信息的长度)等。可以理解,在本实施例中,对隐藏信息进行编码的编码算法不局限于某个编码算法,可以是QRCODE数据的编码,如可包括RS编码(即里德所罗门编码)等,还可以是其他编码算法,此处不作具体限定。
S102,根据二维码版本级别选择对应的二维码版本对标准信息进行编码以生成待定标准编码信息。
其中,在本申请的实施例中,二维码可为QRCODE。
具体地,可先获取标准信息的信息长度,之后可根据该信息长度从二维码版本级别中选择对应的QRCODE版本,然后,可根据该对应的QRCODE版本对该标准信息进行编码,得到待定标准编码信息。其中,在本申请的实施例中,标准信息可理解为标准QRCODE信息。可以理解,二维码版本级别具有多个QRCODE版本,该多个QRCODE版本具有版本高低级别区分。
S103,根据待定标准编码信息选择对应的掩码生成二维码的比特矩阵,并提取比特矩阵中黑点的点数。
需要说明的是,在生成QRCODE二维码的比特矩阵时,为了使得该比特矩阵中的黑白点分布均匀而使生成的QRCODE具有更好的健壮性,可打散该黑白点阵,即可采取掩码MASK对待定标准编码信息进行编码,以得到已被打散的黑白点阵,即比特矩阵。可以理解,在本申请的实施例中,掩码MASK可具有优先级之分,即在生成二维码的比特矩阵的过程中,可从8个不同优先级的掩码MASK中进行相应的选择。
具体而言,在本申请的实施例中,可先根据待定标准编码信息确定掩码的优先级,之后,可根据掩码的优先级确定对应的掩码,并根据对应的掩码生成二维码的比特矩阵,最后,可提取比特矩阵中黑点的点数L1。其中,该二维码的比特矩阵是由一维和二维1(true)或0(false)组成的矩阵数据集合。此外,可以理解,上述黑点的点数不包括比特矩阵中定位符黑点。
S104,根据比特矩阵中黑点的点数与隐藏编码信息的长度对选择的掩码和二维码版本进行更新以确定最终选择的掩码和二维码版本。
具体而言,在本申请的实施例中,可先判断隐藏编码信息的长度L0是否小于比特矩阵 中黑点的点数L1,如果隐藏编码信息的长度L0大于比特矩阵中黑点的点数L1,则可选择次优先级的掩码,并根据该次优先级的掩码生成二维码的比特矩阵,并提取此时比特矩阵中黑点的点数,以及将该比特矩阵中黑点的点数与隐藏编码信息的长度进行大小比较,直至隐藏编码信息的长度小于比特矩阵中黑点的点数,此时可将当前的掩码作为最终选择的掩码,并将当前的二维码版本作为最终选择的二维码版本;如果隐藏编码信息的长度L0小于比特矩阵中黑点的点数L1,则可将此时当前的掩码作为最终选择的掩码,并将当前的二维码版本作为最终选择的二维码版本。
进一步的,在本申请的实施例中,如果掩码的优先级达到最低优先级之后,隐藏编码信息的长度L0依然大于比特矩阵中黑点的点数L1,则可选择级别更高一级的二维码版本,并重新执行上述步骤S102至S104,直至隐藏编码信息的长度L0小于比特矩阵中黑点的点数L1,此时可将当前的掩码作为最终选择的掩码,并将当前的二维码版本作为最终选择的二维码版本。
由此,通过选择最佳的掩码好最佳的二维码版本,以使得标准QRCODE的黑点数能够存储隐藏编码信息。
S105,根据最终选择的掩码和二维码版本生成标准编码信息。
具体地,可根据最终选择的掩码和二维码版本对待定标准编码信息进行编码,得到标准编码信息。
S106,根据隐藏编码信息和标准编码信息生成二维码。
具体而言,在本申请的实施例中,可先获取解码辅助信息,并对解码辅助信息进行多进制编码以生成多进制解码辅助信息,其中,二维码包括多个定位符,定位符用于绘制多进制解码辅助信息,然后,可根据隐藏编码信息和标准编码信息对二维码的资料存储区进行绘制。此外,该解码辅助信息可以包括编码隐藏信息时所用到的编码版本信息、纠错级别、编码算法等。
更具体地,在本申请的实施例中,根据隐藏编码信息和标准编码信息对二维码的资料存储区进行绘制的具体实现过程可如下:从资料存储区的左下角开始绘制标准编码信息;当遇到黑点时,从隐藏编码信息中相继取出一位值进行填充;当隐藏编码信息中的值被取完时,从多进制隐藏编码信息对应的多种颜色中随机选择一个颜色对黑点进行填充,直至资料存储区绘制完成。
举例而言,以多进制隐藏编码为四进制隐藏编码为例,四进制隐藏编码信息中进制位可由0~3范围内的值组成,0~3所对应的颜色如分别为红(R)、绿(G)、蓝(B)、黑(K)(可以理解还可以是其他颜色,不限于这四种颜色),根据隐藏编码信息和标准编码信息进行绘制以生成彩色二维码的过程可如下:如图2所示,二维码中3个定位符A的中间9点可用四色(红绿蓝黑即四进制)绘制解码辅助信息,如隐藏信息数据编码的版本信息、纠 错级别、算法等,3个定位符A外框的24黑点为保留位,即暂不绘制四色(可以理解QRCODE本身即为黑色),3个定位符A有三个冗余三份数据,用于容错。然后,从二维码的资料存储区的左下角开始绘制QRCODE标准编码信息,当遇到黑点时,则从隐藏编码信息中相继取出一位值并用该位置对应的颜色来绘制QRCODE的点阵,直到从隐藏编码信息中的值取完,如果隐藏编码信息中的值取完、而此时QRCODE还没绘制结束,则从多进制隐藏编码信息对应的多种颜色中随机选择一个颜色来对QRCODE黑点进行填充,直至资料存储区绘制完成。可以理解,如图2所示,隐藏编码信息的绘制数据区域不包含资料存储区中的空白。
可选的,在本申请的实施例中,上述步骤S101和S102可不区分先后执行顺序。
本申请实施例的二维码的生成方法,可先对隐藏信息进行多进制编码以生成多进制隐藏编码信息,之后可根据二维码版本级别选择对应的二维码版本对标准信息进行编码以生成待定标准编码信息,之后可根据待定标准编码信息选择对应的掩码生成二维码的比特矩阵,并提取比特矩阵中黑点的点数,然后,根据比特矩阵中黑点的点数与隐藏编码信息的长度对选择的掩码和二维码版本进行更新以确定最终选择的掩码和二维码版本,之后可根据最终选择的掩码和二维码版本生成标准编码信息,最后,根据隐藏编码信息和标准编码信息生成二维码。通过上述技术方案,在传统的QRCODE点阵的黑点的基础上,使用多色(如红、绿、蓝、黑)附带更多的信息,利用QRCODE的大众认知及多色编码信息的隐藏性,以区分是否是自己生成的码,即能够做到人无我有的效果。
为了使得本领域的技术人员能够更加清楚地了解本申请,下面将举例说明。
举例而言,如图3所示,首先,可对隐藏信息进行多进制编码以得到多进制隐藏编码信息,如四进制隐藏信息IntArray和长度L0等(S301)。之后,可根据标准信息的信息长度从二维码版本级别选择出对应的二维码版本,并根据该二维码版本对标准信息进行编码以生成待定标准编码信息(S302)。之后,可根据待定标准编码信息选择对应的掩码Mask以生成QRCODE比特矩阵BitMatrix,并得到BitMatrix中黑点(不包括定位符黑点)的点数L1(S303)。然后,将隐藏编码信息的长度与BitMatrix中黑点的点数L1进行长度对比,以对比L0的长度是否小于L1(S304),如果L0大于L1,则重复上述S303以选择次优先级的掩码Mask,继续对比L0和L1;如果掩码Mask优先级达到最低优先级之后,L0依然大于L1,则重复上述S302选择高一级QRCODE版本,并重复执行上述S303、S304,直至L0小于L1,以满足标准QRCode的黑点数能存储隐藏信息(S305),最后进行绘制以生成彩色QRCODE,如二维码中3个定位符A的中间9点可用四色(红绿蓝黑即四进制)绘制解码辅助信息,如隐藏信息数据编码的版本信息、纠错级别、算法等,3个定位符A外框的24黑点为保留位,即暂不绘制四色(可以理解QRCODE本身即为黑色),3个定位符A有三个冗余三份数据,用于容错,然后,从二维码的资料存储区的左下角开始绘制QRCODE标准编码信息,当遇到黑点时,则从隐藏编码信息中相继取出一位值并用该位置对应的颜色来绘制 QRCODE的点阵,直到从隐藏编码信息中的值取完,如果隐藏编码信息中的值取完、而此时QRCODE还没绘制结束,则从多进制隐藏编码信息对应的多种颜色中随机选择一个颜色来对QRCODE黑点进行填充,直至资料存储区绘制完成(S306)。
为了实现上述实施例,本申请还提出了一种二维码的生成装置。
图4是根据本申请一个实施例的二维码的生成装置的结构框图。如图4所示,该二维码的生成装置可以包括:第一编码模块10、第二编码模块20、比特矩阵生成模块30、确定模块40、标准编码信息生成模块50和二维码生成模块60。
具体地,第一编码模块10可用于对隐藏信息进行多进制编码以生成多进制隐藏编码信息。
需要说明的是,在本申请的实施例中,隐藏信息可理解为非QRCODE(矩阵二维码)标准信息,即具有特殊意义的信息(如个人信息、商户信息等),并且编码后的隐藏信息需要使用专用扫码器才能够识别出该隐藏信息内容。
其中,在本申请的实施例中,多进制隐藏编码信息的每一个进制位对应一种颜色。此外,多进制隐藏编码可为四进制隐藏编码。
举例而言,以四进制隐藏编码为例,第一编码模块10可对隐藏信息进行四进制隐藏编码,得到四进制隐藏编码信息,如四进制IntArray(即一组值由0~3范围内的值组成的比特流数组)和该四进制IntArray的长度L0(即该隐藏编码信息的长度)等。可以理解,在本实施例中,对隐藏信息进行编码的编码算法不局限于某个编码算法,可以是QRCODE数据的编码,如可包括RS编码(即里德所罗门编码)等,还可以是其他编码算法,此处不作具体限定。
第二编码模块20可用于根据二维码版本级别选择对应的二维码版本对标准信息进行编码以生成待定标准编码信息。
其中,在本申请的实施例中,二维码可为QRCODE。
更具体地,第二编码模块20可先获取标准信息的信息长度,之后可根据该信息长度从二维码版本级别中选择对应的QRCODE版本,然后,可根据该对应的QRCODE版本对该标准信息进行编码,得到待定标准编码信息。其中,在本申请的实施例中,标准信息可理解为标准QRCODE信息。可以理解,二维码版本级别具有多个QRCODE版本,该多个QRCODE版本具有版本高低级别区分。
比特矩阵生成模块30可用于根据待定标准编码信息选择对应的掩码生成二维码的比特矩阵,并提取比特矩阵中黑点的点数。
需要说明的是,在生成QRCODE二维码的比特矩阵时,为了使得该比特矩阵中的黑白点分布均匀而使生成的QRCODE具有更好的健壮性,可打散该黑白点阵,即可采取掩码MASK对待定标准编码信息进行编码,以得到已被打散的黑白点阵,即比特矩阵。可以理解,在 本申请的实施例中,掩码MASK可具有优先级之分,即在生成二维码的比特矩阵的过程中,可从8个不同优先级的掩码MASK中进行相应的选择。
具体而言,在本申请的实施例中,比特矩阵生成模块30可先根据待定标准编码信息确定掩码的优先级,之后可根据掩码的优先级确定对应的掩码,最后,根据对应的掩码生成二维码的比特矩阵,并提取比特矩阵中黑点的点数L1。其中,该二维码的比特矩阵是由一维和二维1(true)或0(false)组成的矩阵数据集合。此外,可以理解,上述黑点的点数不包括比特矩阵中定位符黑点。
确定模块40可用于根据比特矩阵中黑点的点数与隐藏编码信息的长度对选择的掩码和二维码版本进行更新以确定最终选择的掩码和二维码版本。
具体而言,在本申请的一个实施例中,如图5所示,该确定模块40可包括:判断子模块41和确定子模块42。其中,判断子模块41可用于判断隐藏编码信息的长度是否小于比特矩阵中黑点的点数。确定子模块42可用于在隐藏编码信息的长度大于比特矩阵中黑点的点数时,则选择次优先级的掩码,并根据选择的次优先级的掩码进一步比对隐藏编码信息的长度是否小于比特矩阵中黑点的点数,直至隐藏编码信息的长度小于比特矩阵中黑点的点数,将当前的掩码作为最终选择的掩码,并将当前的二维码版本作为最终选择的二维码版本;以及在隐藏编码信息的长度小于比特矩阵中黑点的点数时,将当前的掩码作为最终选择的掩码,并将当前的二维码版本作为最终选择的二维码版本。
进一步的,在本申请的实施例中,确定子模块42还可用于在掩码的优先级达到最低优先级之后,隐藏编码信息的长度依然大于比特矩阵中黑点的点数时,选择更高一级二维码版本,并重新比对隐藏编码信息的长度是否小于比特矩阵中黑点的点数,直至隐藏编码信息的长度小于比特矩阵中黑点的点数,此时将当前的掩码作为最终选择的掩码,并将当前的二维码版本作为最终选择的二维码版本。
由此,通过选择最佳的掩码好最佳的二维码版本,以使得标准QRCODE的黑点数能够存储隐藏编码信息。
标准编码信息生成模块50可用于根据最终选择的掩码和二维码版本生成标准编码信息。更具体地,标准编码信息生成模块50可根据最终选择的掩码和二维码版本对待定标准编码信息进行编码,得到标准编码信息。
二维码生成模块60可用于根据隐藏编码信息和标准编码信息生成二维码。
具体而言,在本申请的一个实施例中,如图6所示,该二维码生成模块60可包括编码子模块61和绘制子模块62。其中,编码子模块61可用于获取解码辅助信息,并对解码辅助信息进行多进制编码以生成多进制解码辅助信息,其中,二维码包括多个定位符,定位符用于绘制多进制加密辅助信息。绘制子模块62可用于根据隐藏编码信息和标准编码信息对二维码的资料存储区进行绘制。
在本申请的实施例中,绘制子模块62根据隐藏编码信息和标准编码信息对二维码的资料存储区进行绘制的具体实现过程可如下:从资料存储区的左下角开始绘制标准编码信息,并当遇到黑点时,从隐藏编码信息中相继取出一位值进行填充,以及当隐藏编码信息中的值被取完时,从多进制隐藏编码信息对应的多种颜色中随机选择一个颜色对黑点进行填充,直至资料存储区绘制完成。
举例而言,以多进制隐藏编码为四进制隐藏编码为例,四进制隐藏编码信息中进制位可由0~3范围内的值组成,0~3所对应的颜色如分别为红(R)、绿(G)、蓝(B)、黑(K)(可以理解还可以是其他颜色,不限于这四种颜色),绘制子模块62根据隐藏编码信息和标准编码信息进行绘制以生成彩色二维码的过程可如下:如图2所示,二维码中3个定位符A的中间9点可用四色(红绿蓝黑即四进制)绘制解码辅助信息,如隐藏信息数据编码的版本信息、纠错级别、算法等,3个定位符A外框的24黑点为保留位,即暂不绘制四色(可以理解QRCODE本身即为黑色),3个定位符A有三个冗余三份数据,用于容错。然后,从二维码的资料存储区的左下角开始绘制QRCODE标准编码信息,当遇到黑点时,则从隐藏编码信息中相继取出一位值并用该位置对应的颜色来绘制QRCODE的点阵,直到从隐藏编码信息中的值取完,如果隐藏编码信息中的值取完、而此时QRCODE还没绘制结束,则从多进制隐藏编码信息对应的多种颜色中随机选择一个颜色来对QRCODE黑点进行填充,直至资料存储区绘制完成。可以理解,如图2所示,隐藏编码信息的绘制数据区域不包含资料存储区中的空白。
本申请实施例的二维码的生成装置,可通过第一编码模块对隐藏信息进行多进制编码以生成多进制隐藏编码信息,第二编码模块可根据二维码版本级别选择对应的二维码版本对标准信息进行编码以生成待定标准编码信息,比特矩阵生成模块可根据待定标准编码信息选择对应的掩码生成二维码的比特矩阵,并提取比特矩阵中黑点的点数,确定模块根据比特矩阵中黑点的点数与隐藏编码信息的长度对选择的掩码和二维码版本进行更新以确定最终选择的掩码和二维码版本,标准编码信息生成模块根据最终选择的掩码和二维码版本生成标准编码信息,二维码生成模块根据隐藏编码信息和标准编码信息生成二维码。通过上述技术方案,在传统的QRCODE点阵的黑点的基础上,使用多色(如红、绿、蓝、黑)附带更多的信息,利用QRCODE的大众认知及多色编码信息的隐藏性,以区分是否是自己生成的码,即能够做到人无我有的效果。
需要说明的是,由于本申请实施例的二维码的生成方法生成的二维码中的信息内容包括标准信息和隐藏信息,标准信息部分能够被通用扫码器识别标准信息,而隐藏信息需要固定的扫码器才能够被识别。因此,为了能够识别出本申请实施例的二维码的生成方法生成的二维码中的信息内容,本申请还提出了一种针对上述二维码的解码方法。
图7是根据本申请一个实施例的二维码的解码方法的流程图。如图7所示,该二维码的解码方法可以包括:
S701,扫描二维码并生成二维码图像。
其中,可以理解,本申请实施例的二维码为彩色QRCODE二维码,该二维码中的信息内容可由标准信息和隐藏信息等组成。
S702,对二维码图像进行图像处理,并记录二维码图像的变换方法参数以及黑白点单元切分参数。
具体地,可通过业界通用方式来对该二维码图像进行灰度化、二值化图像校正等图像处理,并可记录图像的变换方法及黑白点单元切分等参数。
S703,对图像处理后的二维码图像进行解码以生成标准信息,并根据变换方法参数以及黑白点单元切分参数对二维码图像进行形状校正。
具体地,可对图像处理后的二维码图像进行解码,得到该二维码中信息内容中的标准信息,然后在标准信息读取并解码成功时,可根据上述变换方法参数以及黑白点单元切分等参数重新对原图像(即上述的二维码图像)进行形状校正。
S704,根据变换方法参数以及黑白点单元切分参数对形状校正后的二维码图像进行码区域切割。
具体地,可按照上述得到的变换方法参数以及黑白点单元切分参数对形状校正后的二维码图像分别进行二维码区域切割、单元点切割。
S705,对切割后的二维码图像进行白平衡校正,并对白平衡校正后的二维码图像进行色数转换以获取多进制隐藏编码信息。
具体地,在对切割后的二维码图像进行白平衡校正之后,可对此时的二维码图像进行颜色位数转换,得到该二维码图像对应的多进制隐藏编码信息。其中,在本申请的实施例中,多进制隐藏编码可为四进制隐藏编码,且四进制隐藏编码信息中的每一个进制位对应一种颜色。
S706,对多进制隐藏编码信息进行解码以生成隐藏信息。
由此,可得到彩色二维码中所包含的全部信息内容,即标准信息和隐藏信息。
需要说明的是,在本申请的实施例中,可通过使用计算机语言C语言来对二维码图像进行图像处理,即通过使用C语言可以提高处理效率。
本申请实施例的二维码的解码方法,可扫描彩色二维码并生成彩色二维码图像,之后可对该图像进行图像处理,并记录处理过程中的处理参数,然后对图像处理后的二维码图像进行解码以得到标准信息,并根据上述处理参数对二维码图像进行形状校正,以及根据该处理参数对形状校正后的二维码图像进行码区域切割,之后可对该切割后的二维码图像进行白平衡校正,并对白平衡校正后的二维码图像进行色数转换以获取多进制隐藏编码信 息,最后对该多进制隐藏编码信息进行解码以生成隐藏信息,从而得到该彩色二维码中所包含的所有内容信息,即标准信息和隐藏信息。通过上述技术方案,不仅能够识别出标准QRCODE中所包含的标准信息,还能够识别出彩色QRCODE中所包含的标准信息和隐藏信息,增加了现有二维码扫码器的功能,扩大了使用范围。
为了实现上述实施例,本申请还提出了一种二维码的解码装置。
图8是根据本申请一个实施例的二维码的解码装置的结构框图。如图8所示,该二维码的解码装置可以包括:扫描模块210、图像处理模块220、生成模块230、形状校正模块240、切割模块250、白平衡校正模块260、转换模块270和解码模块280。
具体地,扫描模块210可用于扫描二维码并生成二维码图像。其中,可以理解,本申请实施例的二维码为彩色QRCODE二维码,该二维码中的信息内容可由标准信息和隐藏信息等组成。
图像处理模块220可用于对二维码图像进行图像处理,并记录二维码图像的变换方法参数以及黑白点单元切分参数。更具体地,图像处理模块220可通过业界通用方式来对该二维码图像进行灰度化、二值化图像校正等图像处理,并可记录图像的变换方法及黑白点单元切分等参数。
生成模块230可用于对图像处理后的二维码图像进行解码以生成标准信息。
形状校正模块240可用于根据变换方法参数以及黑白点单元切分参数对二维码图像进行形状校正。更具体地,在生成模块230可对图像处理后的二维码图像进行解码,得到该二维码中信息内容中的标准信息之后,形状校正模块240在标准信息读取并解码成功时,可根据上述变换方法参数以及黑白点单元切分等参数重新对原图像(即上述的二维码图像)进行形状校正。
切割模块250可用于根据变换方法参数以及黑白点单元切分参数对形状校正后的二维码图像进行码区域切割。更具体地,切割模块250可按照上述得到的变换方法参数以及黑白点单元切分参数对形状校正后的二维码图像分别进行二维码区域切割、单元点切割。
白平衡校正模块260可用于对切割后的二维码图像进行白平衡校正。转换模块270可用于对白平衡校正后的二维码图像进行色数转换以获取多进制隐藏编码信息。
更具体地,在白平衡校正模块260对切割后的二维码图像进行白平衡校正之后,换模块270可对此时的二维码图像进行颜色位数转换,得到该二维码图像对应的多进制隐藏编码信息。其中,在本申请的实施例中,多进制隐藏编码可为四进制隐藏编码,且四进制隐藏编码信息中的每一个进制位对应一种颜色。
解码模块280可用于对多进制隐藏编码信息进行解码以生成隐藏信息。由此,可得到彩色二维码中所包含的全部信息内容,即标准信息和隐藏信息。
本申请实施例的二维码的解码装置,可通过扫描模块扫描彩色二维码并生成彩色二维 码图像,图像处理模块可对该图像进行图像处理,并记录处理过程中的处理参数,生成模块对图像处理后的二维码图像进行解码以得到标准信息,形状校正模块根据上述处理参数对二维码图像进行形状校正,切割模块根据该处理参数对形状校正后的二维码图像进行码区域切割,白平衡校正模块可对该切割后的二维码图像进行白平衡校正,转换模块对白平衡校正后的二维码图像进行色数转换以获取多进制隐藏编码信息,解码模块对该多进制隐藏编码信息进行解码以生成隐藏信息,从而得到该彩色二维码中所包含的所有内容信息,即标准信息和隐藏信息。通过上述技术方案,不仅能够识别出标准QRCODE中所包含的标准信息,还能够识别出彩色QRCODE中所包含的标准信息和隐藏信息,增加了现有二维码扫码器的功能,扩大了使用范围。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读 存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。