发明内容
本发明实施例公开了合成型彩色二维图码的生成、识读方法及装置,用于解决现有的彩色二维图码中颜色信息不包含任何有效信息的问题。技术方案如下:
第一方面,本发明实施例提供了一种合成型彩色二维图码的生成方法,包括:
获取第一黑白二维图码的第一像素矩阵和特征信息区域中的特征信息、第二黑白二维图码的第二像素矩阵及第三黑白二维图码的第三像素矩阵,其中,所述第一黑白二维图码、所述第二黑白二维图码和所述第三黑白二维图码的特征信息区域中的特征信息相同;
按照预设的用于将像素矩阵中的元素转换为0或1的量化规则,分别将所述第一像素矩阵量化为第一量化矩阵、所述第二像素矩阵量化为第二量化矩阵以及所述第三像素矩阵量化为第三量化矩阵;
将所述第一量化矩阵、所述第二量化矩阵及所述第三量化矩阵按照预设的编码重置规则组合成第四像素矩阵;
根据预设的关于元素与颜色的对应关系,确定所述第四像素矩阵中的元素对应的颜色;
将所确定出的颜色填充入待生成的彩色二维图码的数据存储区域中,并将所述特征信息区域中的特征信息填充入当前的所述彩色二维图码的特征信息区域中,完成彩色二维图码的生成。
优选的,所述按照预设的用于将像素矩阵中的元素转换为0或1的量化规则,分别将所述第一像素矩阵量化为第一量化矩阵、所述第二像素矩阵量化为第二量化矩阵以及所述第三像素矩阵量化为第三量化矩阵具体为:
将所述第一像素矩阵中每个元素中的R、G、B值的平均值与预设的阈值进行比较;若所述平均值大于所述预设的阈值,则将该元素量化为1;若所述平均值小于所述预设的阈值,则将该元素量化为0,得到所述第一量化矩阵;
将所述第二像素矩阵中每个元素中的R、G、B值的平均值与预设的阈值进行比较;若所述平均值大于所述预设的阈值,则将该元素量化为1;若所述平均值小于所述预设的阈值,则将该元素量化为0,得到所述第二量化矩阵;
将所述第三像素矩阵中每个元素中的R、G、B值的平均值与预设的阈值进行比较;若所述平均值大于所述预设的阈值,则将该元素量化为1;若所述平均值小于所述预设的阈值,则将该元素量化为0,得到所述第三量化矩阵。
优选的,所述将所述第一量化矩阵、所述第二量化矩阵及所述第三量化矩阵按照预设的编码重置规则组合成第四像素矩阵具体为:
将所述第一量化矩阵中的元素作为R值、所述第二量化矩阵中的元素作为G值以及所述第三量化矩阵中的元素作为B值;
将在所述第一量化矩阵、所述第二量化矩阵及所述第三量化矩阵中位置相同的所述R值、所述G值及所述B值组合成所述第四像素矩阵中对应位置的元素,得到所述第四像素矩阵。
优选的,所述预设的关于元素与颜色的对应关系为:
元素(0,0,0)对应黑色;元素(0,0,1)对应蓝色;元素(0,1,0)对应绿色;元素(0,1,1)对应青蓝色;元素(1,0,0)对应红色;元素(1,0,1)对应洋红色;元素(1,1,0)对应黄色;元素(1,1,1)对应白色。
优选的,所述将所述特征信息区域中的特征信息填充入当前的所述彩色二维图码的特征信息区域中之后,还包括:
对所述特征信息区域进行掩模处理。
第二方面,本发明实施例提供了一种合成型彩色二维图码的识读方法,包括:
获取待识读的彩色二维图码的第五像素矩阵和特征信息区域中的特征信息,其中,所述待识读的彩色二维图码为通过上述合成型彩色二维图码的生成方法生成的彩色二维图码;
将所述第五像素矩阵中每一个元素缩小预定倍数,得到第六像素矩阵,其中,所述预定倍数基于所述待识读的彩色二维图码的颜色模型确定;
按照生成所述彩色二维图码时所利用的预设的编码重置规则的逆过程,将所述第六像素矩阵分解为第四量化矩阵、第五量化矩阵及第六量化矩阵;
按照预设的用于将量化矩阵中的元素转换为(0,0,0)或(255,255,255)的转换规则,分别将所述第四量化矩阵转换为第七像素矩阵、所述第五量化矩阵转换为第八像素矩阵以及所述第六量化矩阵转换为第九像素矩阵;
分别将所述第七像素矩阵与所述特征信息区域中的特征信息进行整合,生成第四黑白二维图码,将所述第八像素矩阵与所述特征信息区域中的特征信息进行整合,生成第五黑白二维图码,将所述第九像素矩阵与所述特征信息区域中的特征信息进行整合,生成第六黑白二维图码;
分别识读所述第四黑白二维图码、所述第五黑白二维图码以及所述第六黑白二维图码,得到所述第四黑白二维图码、所述第五黑白二维图码以及所述第六黑白二维图码中存储的有效信息。
优选的,所述将所述第五像素矩阵中每一个元素缩小预定倍数,得到第六像素矩阵,包括:
对所述第五像素矩阵进行纠错处理;
将纠错处理后的第五像素矩阵中每一个元素缩小预定倍数,确定出第六像素矩阵;
其中,所述纠错处理包括:
根据公式:
计算出所述第五像素矩阵中的元素与预设的元素的欧氏距离值r
1~r
8,其中,x为所述第五像素矩阵中的元素的R值,y为所述第五像素矩阵中的元素的G值,z为所述第五像素矩阵中的元素的B值,n=1,2…8,R、G、B分别为所述预设的元素的R值、G值、B值;
比较所述欧氏距离值r1~r8的大小,用值最小的rn对应的所述预设的元素替换所述第五像素矩阵中的元素,完成纠错处理;
所述预设的元素包括:
(0,0,0)、(0,0,255)、(0,255,0)、(0,255,255)、(255,0,0)、(255,0,255)、(255,255,0)及(255,255,255)。
优选的,所述预设的用于将量化矩阵中的元素转换为(0,0,0)或(255,255,255)的转换规则为:
将量化矩阵中的元素0转换为(0,0,0),将量化矩阵中的元素1转换为(255,255,255)。
第三方面,本发明实施例提供了一种合成型彩色二维图码的生成装置,包括:
第一获取模块,用于获取第一黑白二维图码的第一像素矩阵和特征信息区域中的特征信息、第二黑白二维图码的第二像素矩阵及第三黑白二维图码的第三像素矩阵,其中,所述第一黑白二维图码、所述第二黑白二维图码和所述第三黑白二维图码的特征信息区域中的特征信息相同;
量化模块,用于按照预设的用于将像素矩阵中的元素转换为0或1的量化规则,分别将所述第一像素矩阵量化为第一量化矩阵、所述第二像素矩阵量化为第二量化矩阵以及所述第三像素矩阵量化为第三量化矩阵;
编码重置模块,用于将所述第一量化矩阵、所述第二量化矩阵及所述第三量化矩阵按照预设的编码重置规则组合成第四像素矩阵;
颜色确定模块,用于根据预设的关于元素与颜色的对应关系,确定所述第四像素矩阵中的元素对应的颜色;
生成模块,用于将所确定出的颜色填充入待生成的彩色二维图码的数据存储区域中,并将所述特征信息区域中的特征信息填充入当前的所述彩色二维图码的特征信息区域中,完成彩色二维图码的生成。
第四方面,本发明实施例提供了一种合成型彩色二维图码的识读装置,包括:
第二获取模块,用于获取待识读的彩色二维图码的第五像素矩阵和特征信息区域中的特征信息,其中,所述待识读的彩色二维图码为通过上述合成型彩色二维图码的生成方法生成的彩色二维图码;
元素缩小模块,用于将所述第五像素矩阵中每一个元素缩小预定倍数,得到第六像素矩阵,其中,所述预定倍数基于所述待识读的彩色二维图码的颜色模型确定;
分解模块,用于按照生成所述彩色二维图码时所利用的预设的编码重置规则的逆过程,将所述第六像素矩阵分解为第四量化矩阵、第五量化矩阵及第六量化矩阵;
转换模块,用于按照预设的用于将量化矩阵中的元素转换为(0,0,0)或(255,255,255)的转换规则,分别将所述第四量化矩阵转换为第七像素矩阵、所述第五量化矩阵转换为第八像素矩阵以及所述第六量化矩阵转换为第九像素矩阵;
整合模块,用于分别将所述第七像素矩阵与所述特征信息区域中的特征信息进行整合,生成第四黑白二维图码,将所述第八像素矩阵与所述特征信息区域中的特征信息进行整合,生成第五黑白二维图码,将所述第九像素矩阵与所述特征信息区域中的特征信息进行整合,生成第六黑白二维图码;
识读模块,用于分别识读所述第四黑白二维图码、所述第五黑白二维图码以及所述第六黑白二维图码,得到所述第四黑白二维图码、所述第五黑白二维图码以及所述第六黑白二维图码中存储的有效信息。
本方案中,首先获取第一黑白二维图码的第一像素矩阵和特征信息区域中的特征信息、第二黑白二维图码的第二像素矩阵及第三黑白二维图码的第三像素矩阵,按照预设的用于将像素矩阵中的元素转换为0或1的量化规则,分别将该第一像素矩阵量化为第一量化矩阵、该第二像素矩阵量化为第二量化矩阵以及该第三像素矩阵量化为第三量化矩阵,然后将第一量化矩阵、第二量化矩阵及第三量化矩阵按照预设的编码重置规则组合成第四像素矩阵,再根据预设的关于元素与颜色的对应关系,确定该第四像素矩阵中的元素对应的颜色,最后将所确定出的颜色填充入待生成的彩色二维图码的数据存储区域中,并将该特征信息区域中的特征信息填充入当前的该彩色二维图码的特征信息区域中,完成彩色二维图码的生成。采用该生成方法生成的彩色二维图码中的颜色信息包含有效信息,而不仅仅是视觉上的冲击。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了使彩色二维图码中颜色信息包含有效信息,而不仅仅是给人带来视觉上的冲击,本发明实施例提供了合成型彩色二维图码的生成、识读方法及装置。
下面首先对本发明实施例所提供的一种合成型彩色二维图码的生成方法进行介绍。
如图1所示,一种合成型彩色二维图码的生成方法,可以包括:
S101,获取第一黑白二维图码的第一像素矩阵和特征信息区域中的特征信息、第二黑白二维图码的第二像素矩阵及第三黑白二维图码的第三像素矩阵;
其中,该第一黑白二维图码、该第二黑白二维图码和该第三黑白二维图码的特征信息区域中的特征信息相同。实际应用中,可以采用现有的黑白二维图码作为该第一黑白二维图码、该第二黑白二维图码和该第三黑白二维图码,例如QR码、D9ing码等。需要说明的是该第一黑白二维图码、该第二黑白二维图码和该第三黑白二维图码的特征信息区域中的特征信息相同,即该第一黑白二维图码、该第二黑白二维图码和该第三黑白二维图码需要为具有相同格式信息和版本信息的黑白二维图码,获取的该第一像素矩阵、该第二像素矩阵和该第三像素矩阵具有相同的元素数量,且行数、列数分别相同。
需要说明的是,该第一像素矩阵中的一个元素与该第一黑白二维图码中的一个像素对应,由R值、G值和B值组成,例如,一个像素为黑色,那么在该第一像素矩阵中与其对应的元素即为(0,0,0);一个像素为白色,那么在该第一像素矩阵中与其对应的元素即为(255,255,255)。该第二像素矩阵与该第二黑白二维图码中像素的颜色的对应关系,以及该第三像素矩阵与该第三黑白二维图码中像素的颜色的对应关系与上述该第一像素矩阵与该第一黑白二维图码中像素的颜色的对应关系相同,在此不再重复说明。获取该第一像素矩阵、该第二像素矩阵和该第三像素矩阵及该特征信息的方式可以采用任意一种现有的获取方式,在此不做具体限定。
需要强调的是,“第一黑白二维图码”中的“第一”、“第二黑白二维图码”中的“第二”以及“第三黑白二维图码”中的“第三”仅仅为了从命名上区分三个黑白二维图码,并不具有任何限定意义;类似的,“第一像素矩阵”中的“第一”、“第二像素矩阵”中的“第二”以及“第三像素矩阵”中的“第三”仅仅为了从命名上区分三个像素矩阵,并不具有任何限定意义。
S102,按照预设的用于将像素矩阵中的元素转换为0或1的量化规则,分别将所述第一像素矩阵量化为第一量化矩阵、所述第二像素矩阵量化为第二量化矩阵以及所述第三像素矩阵量化为第三量化矩阵;
具体的,在实际应用中,预设的用于将像素矩阵中的元素转换为0或1的量化规则可以为:将像素矩阵中每个元素中的R、G、B值的平均值与预设的阈值进行比较;若该平均值大于该预设的阈值,则将该元素量化为1;若该平均值小于该预设的阈值,则将该元素量化为0,得到该像素矩阵所对应的量化矩阵。举例而言,若像素矩阵中的一元素为(255,255,255),该预设的阈值为127.5,由于该元素中的R、G、B值的平均值为255,大于127.5,则将该元素量化为1;若像素矩阵中的一元素为(0,0,0),该预设的阈值为127.5,由于该元素中的R、G、B值的平均值为0,小于127.5,则将该元素量化为0。
可以理解的是,利用上述所给出的具体的量化规则,可以将该第一像素矩阵中每个元素中的R、G、B值的平均值与预设的阈值进行比较;若该平均值大于该预设的阈值,则将该元素量化为1;若该平均值小于该预设的阈值,则将该元素量化为0,得到该第一量化矩阵,其中,该第一量化矩阵由0和/或1组成。其中,该预设的阈值可以根据实际获取的该第一像素矩阵中的元素确定,由于实际获取该第一像素矩阵时可能存在误差,例如一个像素为白色,获取的与其对应的元素可能为(255,253,254),为了避免这种误差造成的影响,一般将0和255的平均值127.5作为预设的阈值,这样即使在误差较大的情况下,也仍然可以准确的获得该第一量化矩阵,但该预设的阈值并不局限于此,例如可以将该预设的阈值设置为128等任意一个接近于127.5的数值;在误差较小的情况下,可以将该预设的阈值设置为与127.5相差较大的数值,例如100、200等方便计算的数值,这都是合理的。类似的,将该第二像素矩阵中每个元素中的R、G、B值的平均值与预设的阈值进行比较;若该平均值大于该预设的阈值,则将该元素量化为1;若该平均值小于该预设的阈值,则将该元素量化为0,得到该第二量化矩阵。同样的,将该第三像素矩阵中每个元素中的R、G、B值的平均值与预设的阈值进行比较;若该平均值大于该预设的阈值,则将该元素量化为1;若该平均值小于该预设的阈值,则将该元素量化为0,得到该第三量化矩阵。得到该第二量化矩阵和该第三量化矩阵的具体方式与上述得到第一量化矩阵的方式类似,在此不再做详细描述。
S103,将所述第一量化矩阵、所述第二量化矩阵及所述第三量化矩阵按照预设的编码重置规则组合成第四像素矩阵;
具体的,将该第一量化矩阵中的元素作为R值、该第二量化矩阵中的元素作为G值以及该第三量化矩阵中的元素作为B值,然后将在该第一量化矩阵、该第二量化矩阵及该第三量化矩阵中位置相同的R值、G值及B值组合成所述第四像素矩阵中对应位置的元素,得到该第四像素矩阵。其中,上述的位置相同即指所在行数和列数相同。
举例而言,该第一量化矩阵、该第二量化矩阵和该第三量化矩阵分别为:
将该三个量化矩阵中第一行第一列的元素1、0和1组合成该第四像素矩阵中第一行第一列的元素(1,0,1),以此类推,得到该第四像素矩阵中其他三个元素分别为(0,0,1)、(1,0,0)和(1,1,1),按照上述编码重置规则组合成的第四像素矩阵即为
S104,根据预设的关于元素与颜色的对应关系,确定所述第四像素矩阵中的元素对应的颜色;
具体的,预设的关于元素与颜色的对应关系可以如下表所示:
序号 |
元素 |
颜色 |
1 |
(0,0,0) |
黑色 |
2 |
(0,0,1) |
蓝色 |
3 |
(0,1,0) |
绿色 |
4 |
(0,1,1) |
青蓝色 |
5 |
(1,0,0) |
红色 |
6 |
(1,0,1) |
洋红色 |
7 |
(1,1,0) |
黄色 |
8 |
(1,1,1) |
白色 |
由于在实际应用中,使用的设备镜头等对颜色的分辨能力可能不同,该预设的关于元素与颜色的对应关系可以根据实际需要进行修改,并不局限于此。
S105,将所确定出的颜色填充入待生成的彩色二维图码的数据存储区域中,并将所述特征信息区域中的特征信息填充入当前的所述彩色二维图码的特征信息区域中,完成彩色二维图码的生成。
可以理解的是,该待生成的彩色二维图码的数据存储区域的像素个数与该第四像素矩阵中的元素的数量相同,每行像素的个数与该第四像素矩阵中每行的元素的数量相同,每列像素的个数与该第四像素矩阵中每列的元素的数量相同,该待生成的彩色二维图码的数据存储区域的像素与该第四像素矩阵中的元素存在一一对应关系。确定出该元素对应的颜色后,也就确定出了该待生成的彩色二维图码的数据存储区域中每个位置的像素对应的颜色,例如,上述第四像素矩阵
对应的待生成的彩色二维图码的数据存储区域的四个位置的像素对应的颜色即为
将这些颜色按照对应的位置关系填入该待生成的彩色二维图码的数据存储区域即完成对待生成的彩色二维图码的数据存储区域的填充。
进一步的,该待生成的彩色二维图码的数据存储区域填充完成后,将上述特征信息区域中的特征信息填充入当前的彩色二维图码的特征信息区域中,完成彩色二维图码的生成。
需要说明的是,将上述特征信息区域中的特征信息填充入当前的彩色二维图码的特征信息区域中的方式可以采用现有技术,例如,若上述第一黑白二维图码、第二黑白二维图码及第三黑白二维图码为D9ing码,则采用现有的D9ing码的特征信息填充方式,若上述第一黑白二维图码、第二黑白二维图码及第三黑白二维图码为QR码,则采用现有的QR码的特征信息填充方式,在此不做具体限定。
进一步需要说明的是,在将该特征信息区域中的特征信息填充入当前的彩色二维图码的特征信息区域中之后,上述方法还可以包括:
对该特征信息区域进行掩模处理。
具体的掩模处理可以根据实际需要采用现有的掩模处理中的一种,一般是将该特征信息区域中的格式信息区域进行掩模处理,使生成的该彩色二维图码更加美观,同时增加该彩色二维图码的保密性。进一步的,也可以对上述数据存储区域进行掩模处理,以增加该彩色二维图码的美观性,使保密性更好。
可见,本方案提供的一种合成型彩色二维图码的生成方法中,首先获取第一黑白二维图码的第一像素矩阵和特征信息区域中的特征信息、第二黑白二维图码的第二像素矩阵及第三黑白二维图码的第三像素矩阵,按照预设的用于将像素矩阵中的元素转换为0或1的量化规则,分别将该第一像素矩阵量化为第一量化矩阵、该第二像素矩阵量化为第二量化矩阵以及该第三像素矩阵量化为第三量化矩阵,然后将第一量化矩阵、第二量化矩阵及第三量化矩阵按照预设的编码重置规则组合成第四像素矩阵,再根据预设的关于元素与颜色的对应关系,确定该第四像素矩阵中的元素对应的颜色,最后将所确定出的颜色填充入待生成的彩色二维图码的数据存储区域中,并将该特征信息区域中的特征信息填充入当前的该彩色二维图码的特征信息区域中,完成彩色二维图码的生成。采用该生成方法生成的彩色二维图码中的颜色信息包含有效信息,而不仅仅是视觉上的冲击。
基于上述的合成型彩色二维图码的生成方法,本发明实施例还提供了一种合成型彩色二维图码的识读方法。
如图2所示,本实施例所提供的一种合成型彩色二维图码的识读方法,可以包括:
S201,获取待识读的彩色二维图码的第五像素矩阵和特征信息区域中的特征信息;
需要说明的是,该待识读的彩色二维图码为通过本发明实施例上述所提供的合成型彩色二维图码的生成方法所生成的彩色二维图码,该特征信息区域中的特征信息包括格式信息和版本信息,获取该待识读的彩色二维图码的第五像素矩阵和特征信息区域中的特征信息的方式可以采用任意一种现有的获取方式,在此不做具体限定。
S202,将所述第五像素矩阵中每一个元素缩小预定倍数,得到第六像素矩阵;
其中,该预定倍数基于该待识读的彩色二维图码的颜色模型确定,可以理解的是,该待识读的彩色二维图码的颜色模型与通过上述的彩色二维图码的生成方法生成的彩色二维图码的颜色模型是一致的,例如,该颜色模型可以是RGB模式的,相应的,该预定倍数即为255倍。
具体的,将该第五像素矩阵中每一个元素缩小预定倍数,得到第六像素矩阵,可以包括:
对该第五像素矩阵进行纠错处理;
该纠错处理具体可以包括:
根据公式:
计算出该第五像素矩阵中的元素与预设的元素的欧氏距离值r
1~r
8,其中,x为该第五像素矩阵中的元素的R值,y为该第五像素矩阵中的元素的G值,z为该第五像素矩阵中的元素的B值,n=1,2…8,R、G、B分别为该预设的元素的R值、G值、B值;
比较该欧氏距离值r1~r8的大小,用值最小的rn对应的该预设的元素替换该第五像素矩阵中的元素,完成纠错处理;
其中,该预设的元素包括:(0,0,0)、(0,0,255)、(0,255,0)、(0,255,255)、(255,0,0)、(255,0,255)、(255,255,0)及(255,255,255)。
将完成纠错处理后的第五像素矩阵中每一个元素缩小预定倍数,确定出第六像素矩阵。
举例而言,该第五像素矩阵中的一个元素为(2,0,250),对其进行纠错处理具体为:根据上述公式,将其与预设的八个元素分别进行欧氏距离计算,得到r1~r8分别为:250、6、357、255、356、253、438及439,可以明显的看出r2的值最小,则用元素(0,0,255)替换该第五像素矩阵中的元素(2,0,250),通过同样的方法可以对该第五像素矩阵中的所有元素进行纠错处理,由于在实际应用时获取的该第五像素矩阵可能纯在误差,会导致识读的不准确,进行纠错处理可消除误差,使得到的该第五像素矩阵更加准确。
纠错处理完成后,将该第五像素矩阵中每一个元素缩小预定倍数,例如,上述元素(0,0,255)缩小255倍,得到元素(0,0,1),将该该第五像素矩阵中每一个元素都缩小预定倍数后便得到该第六像素矩阵。
S203,按照生成所述彩色二维图码时所利用的预设的编码重置规则的逆过程,将所述第六像素矩阵分解为第四量化矩阵、第五量化矩阵及第六量化矩阵;
具体的,按照生成所述彩色二维图码时所利用的预设的编码重置规则的逆过程,将该第六像素矩阵中的元素的R值作为该第四量化矩阵中位置相同的元素,该第六像素矩阵中的元素的G值作为该第五量化矩阵中位置相同的元素,该第六像素矩阵中的元素的B值作为该第六量化矩阵中位置相同的元素,其中,上述的位置相同即指所在行数和列数相同。
举例而言,该第六像素矩阵为
将该第六像素矩阵的元素的R值作为该第四量化矩阵中位置相同的元素,即将1、0、1及1作为该第四量化矩阵中位置相同的元素,得到该第四量化矩阵为
将该第六像素矩阵的元素的G值作为该第五量化矩阵中位置相同的元素,即将0、0、0及1作为该第五量化矩阵中位置相同的元素,得到该第五量化矩阵为
将该第六像素矩阵的元素的B值作为该第六量化矩阵中位置相同的元素,即将1、1、0及1作为该第六量化矩阵中位置相同的元素,得到该第六量化矩阵为
S204,按照预设的用于将量化矩阵中的元素转换为(0,0,0)或(255,255,255)的转换规则,分别将所述第四量化矩阵转换为第七像素矩阵、所述第五量化矩阵转换为第八像素矩阵以及所述第六量化矩阵转换为第九像素矩阵;
具体的,该预设的用于将量化矩阵中的元素转换为(0,0,0)或(255,255,255)的转换规则为:将量化矩阵中的元素0转换为(0,0,0),将量化矩阵中的元素1转换为(255,255,255)。以上述得到的第四量化矩阵
为例,将该第四量化矩阵中的元素0转化为(0,0,0),元素1全部转化为(255,255,255),得到该第七像素矩阵
S205,分别将所述第七像素矩阵与所述特征信息区域中的特征信息进行整合,生成第四黑白二维图码,将所述第八像素矩阵与所述特征信息区域中的特征信息进行整合,生成第五黑白二维图码,将所述第九像素矩阵与所述特征信息区域中的特征信息进行整合,生成第六黑白二维图码;
需要说明的是,将该第七像素矩阵与该特征信息区域中的特征信息进行整合,生成第四黑白二维图码的方式可以采用现有的方式,在此不做具体限定,可以根据该待识读的彩色二维图码的格式进行选择,若该待识读的彩色二维图码为QR码,则采用QR码的整合方式,若该待识读的彩色二维图码为D9ing码,则采用D9ing码的整合方式,当然并不局限于此。可以理解的是,生成的该第四黑白二维图码、该第五黑白二维图码和该第六黑白二维图码,即为生成该待识读的彩色二维图码过程中的三个黑白二维图码。
S206,分别识读所述第四黑白二维图码、所述第五黑白二维图码以及所述第六黑白二维图码,得到所述第四黑白二维图码、所述第五黑白二维图码以及所述第六黑白二维图码中存储的有效信息。
在生成该第四黑白二维图码、该第五黑白二维图码和该第六黑白二维图码后,将该第四黑白二维图码、该第五黑白二维图码和该第六黑白二维图码中存储的有效信息识读出来,即完成对该待识读的彩色二维图码的识读。具体识读该第四黑白二维图码、该第五黑白二维图码和该第六黑白二维图码的方式可以采用现有的识读方式,在此不做具体限定。
进一步的,在步骤S201之前,上述方法还可以包括:
对该待识读的彩色二维图码进行图像矫正处理;
具体的,该图像矫正处理可以包括:图像增强和去噪操作处理,可以采用现有的灰度增强算法和中值滤波算法等,对该待识读的彩色二维图码进行图像矫正处理,可以提高识读的正确率,避免识读错误发生。
可见,本方案提供的一种合成型彩色二维图码的识读方法,可以准确的识读通过本发明实施例所提供的合成型彩色二维图码的生成方法所生成的彩色二维图码中存储的有效信息。
相应于上述合成型彩色二维图码的生成方法,本发明实施例还提供了一种合成型彩色二维图码的生成装置,如图3所示,所述装置,可以包括:
第一获取模块310,用于获取第一黑白二维图码的第一像素矩阵和特征信息区域中的特征信息、第二黑白二维图码的第二像素矩阵及第三黑白二维图码的第三像素矩阵;
其中,所述第一黑白二维图码、所述第二黑白二维图码和所述第三黑白二维图码的特征信息区域中的特征信息相同;
量化模块320,用于按照预设的用于将像素矩阵中的元素转换为0或1的量化规则,分别将所述第一像素矩阵量化为第一量化矩阵、所述第二像素矩阵量化为第二量化矩阵以及所述第三像素矩阵量化为第三量化矩阵;
编码重置模块330,用于将所述第一量化矩阵、所述第二量化矩阵及所述第三量化矩阵按照预设的编码重置规则组合成第四像素矩阵;
颜色确定模块340,用于根据预设的关于元素与颜色的对应关系,确定所述第四像素矩阵中的元素对应的颜色;
生成模块350,用于将所确定出的颜色填充入待生成的彩色二维图码的数据存储区域中,并将所述特征信息区域中的特征信息填充入当前的所述彩色二维图码的特征信息区域中,完成彩色二维图码的生成。
可见,本方案提供的一种合成型彩色二维图码的生成装置中,首先获取第一黑白二维图码的第一像素矩阵和特征信息区域中的特征信息、第二黑白二维图码的第二像素矩阵及第三黑白二维图码的第三像素矩阵,按照预设的用于将像素矩阵中的元素转换为0或1的量化规则,分别将该第一像素矩阵量化为第一量化矩阵、该第二像素矩阵量化为第二量化矩阵以及该第三像素矩阵量化为第三量化矩阵,然后将第一量化矩阵、第二量化矩阵及第三量化矩阵按照预设的编码重置规则组合成第四像素矩阵,再根据预设的关于元素与颜色的对应关系,确定该第四像素矩阵中的元素对应的颜色,最后将所确定出的颜色填充入待生成的彩色二维图码的数据存储区域中,并将该特征信息区域中的特征信息填充入当前的该彩色二维图码的特征信息区域中,完成彩色二维图码的生成。采用该生成装置生成的彩色二维图码中的颜色信息包含有效信息,而不仅仅是视觉上的冲击。
具体的,该量化模块320具体用于:
将该第一像素矩阵中每个元素中的R、G、B值的平均值与预设的阈值进行比较;若该平均值大于该预设的阈值,则将该元素量化为1;若该平均值小于该预设的阈值,则将该元素量化为0,得到该第一量化矩阵;
将该第二像素矩阵中每个元素中的R、G、B值的平均值与预设的阈值进行比较;若该平均值大于该预设的阈值,则将该元素量化为1;若该平均值小于该预设的阈值,则将该元素量化为0,得到该第二量化矩阵;
将该第三像素矩阵中每个元素中的R、G、B值的平均值与预设的阈值进行比较;若该平均值大于该预设的阈值,则将该元素量化为1;若该平均值小于该预设的阈值,则将该元素量化为0,得到该第三量化矩阵。
具体的,该编码重置模块330具体用于:
将该第一量化矩阵中的元素作为R值、该第二量化矩阵中的元素作为G值以及该第三量化矩阵中的元素作为B值;
将在该第一量化矩阵、该第二量化矩阵及该第三量化矩阵中位置相同的该R值、该G值及该B值组合成该第四像素矩阵中对应位置的元素,得到该第四像素矩阵。
进一步的,该预设的关于元素与颜色的对应关系为:
元素(0,0,0)对应黑色;元素(0,0,1)对应蓝色;元素(0,1,0)对应绿色;元素(0,1,1)对应青蓝色;元素(1,0,0)对应红色;元素(1,0,1)对应洋红色;元素(1,1,0)对应黄色;元素(1,1,1)对应白色。
更进一步的,本发明实施例所提供的一种合成型彩色二维图码的生成装置,还可以包括:
掩模处理模块,用于在将该特征信息区域中的特征信息填充入当前的彩色二维图码的特征信息区域中之后,对该特征信息区域进行掩模处理。
相应于上述合成型彩色二维图码的识读方法,本发明实施例还提供了一种合成型彩色二维图码的识读装置,如图4所示,所述装置,可以包括:
第二获取模块410,用于获取待识读的彩色二维图码的第五像素矩阵和特征信息区域中的特征信息;
其中,所述待识读的彩色二维图码为通过本发明实施例所提供的合成型彩色二维图码的生成方法所生成的彩色二维图码。
元素缩小模块420,用于将所述第五像素矩阵中每一个元素缩小预定倍数,得到第六像素矩阵;
其中,所述预定倍数基于所述待识读的彩色二维图码的颜色模型确定。
分解模块430,用于按照生成所述彩色二维图码时所利用的预设的编码重置规则的逆过程,将所述第六像素矩阵分解为第四量化矩阵、第五量化矩阵及第六量化矩阵;
转换模块440,用于按照预设的用于将量化矩阵中的元素转换为(0,0,0)或(255,255,255)的转换规则,分别将所述第四量化矩阵转换为第七像素矩阵、所述第五量化矩阵转换为第八像素矩阵以及所述第六量化矩阵转换为第九像素矩阵;
整合模块450,用于分别将所述第七像素矩阵与所述特征信息区域中的特征信息进行整合,生成第四黑白二维图码,将所述第八像素矩阵与所述特征信息区域中的特征信息进行整合,生成第五黑白二维图码,将所述第九像素矩阵与所述特征信息区域中的特征信息进行整合,生成第六黑白二维图码;
识读模块460,用于分别识读所述第四黑白二维图码、所述第五黑白二维图码以及所述第六黑白二维图码,得到所述第四黑白二维图码、所述第五黑白二维图码以及所述第六黑白二维图码中存储的有效信息。
可见,本方案提供的一种合成型彩色二维图码的识读装置,可以准确的识读通过本发明实施例所提供的合成型彩色二维图码的生成方法所生成彩色二维图码中存储的有效信息。
具体的,该元素缩小模块420具体用于:
对该第五像素矩阵进行纠错处理;
将纠错处理后的第五像素矩阵中每一个元素缩小预定倍数,确定出第六像素矩阵;
其中,该纠错处理包括:
根据公式:
计算出该第五像素矩阵中的元素与预设的元素的欧氏距离值r
1~r
8,其中,x为该第五像素矩阵中的元素的R值,y为该第五像素矩阵中的元素的G值,z为该第五像素矩阵中的元素的B值,n=1,2…8,R、G、B分别为该预设的元素的R值、G值、B值;
比较该欧氏距离值r1~r8的大小,用值最小的rn对应的该预设的元素替换该第五像素矩阵中的元素,完成纠错处理;
该预设的元素包括:
(0,0,0)、(0,0,255)、(0,255,0)、(0,255,255)、(255,0,0)、(255,0,255)、(255,255,0)及(255,255,255)。
其中,该预设的用于将量化矩阵中的元素转换为(0,0,0)或(255,255,255)的转换规则为:
将量化矩阵中的元素0转换为(0,0,0),将量化矩阵中的元素1转换为(255,255,255)。
进一步的,本发明实施例所提供的一种合成型彩色二维图码的识读装置,还可以包括:
图像矫正处理模块,用于对该待识读的彩色二维图码进行图像增强和去噪操作处理。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。