CN103377390B - 二维码的生成、识别方法和装置 - Google Patents

二维码的生成、识别方法和装置 Download PDF

Info

Publication number
CN103377390B
CN103377390B CN201210126625.3A CN201210126625A CN103377390B CN 103377390 B CN103377390 B CN 103377390B CN 201210126625 A CN201210126625 A CN 201210126625A CN 103377390 B CN103377390 B CN 103377390B
Authority
CN
China
Prior art keywords
data cube
quick response
amendment
response code
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210126625.3A
Other languages
English (en)
Other versions
CN103377390A (zh
Inventor
孙中炜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201210126625.3A priority Critical patent/CN103377390B/zh
Publication of CN103377390A publication Critical patent/CN103377390A/zh
Application granted granted Critical
Publication of CN103377390B publication Critical patent/CN103377390B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本申请涉及一种二维码的生成、识别方法和装置,该方法具体为对根据二维码的存储内容生成的数据方阵进行放大;对放大后的数据方阵进行元素值的修改;获取修改区域占全部区域的比率,和修改后的数据方阵的颜色对比度;判断修改区域占全部区域的比率是否小于预设的容错率阈值,以及修改后的数据方阵的颜色对比度值是否大于预设的颜色对比度阈值;当修改区域占全部区域的比率小于预设的容错率阈值,并且修改后的数据方阵的颜色对比度值大于颜色预设的对比度阈值时,则根据修改后的数据方阵来描点以生成二维码。因此,本申请实现了二维码具有颜色和结构变化,从而使二维码更加美观和实用,方便用户辨识,同时不影响二维码的译码使用。

Description

二维码的生成、识别方法和装置
技术领域
本申请涉及计算机图像处理领域,尤其涉及一种二维码的生成、识别方法和装置。
背景技术
条码技术自20世纪70年代初间世以来,发展十分迅速,一维条码通常是对物品的标识,而不是对物品的描述。所谓对物品的标识,就是给某物品分配一个代码,代码以条码的形式标识在物品上,用来标识该物品以便自动扫描设备的识读,代码或一维条码本身不表示该产品的描述性信息。
随着现代高新技术的发展,迫切需要用条码在有限的几何空间内表示更多的信息,以满足千变万化的信息表示的需要。
二维码,又称二维条码,是在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图案表示二进制数据,设备扫描二维条码,通过识别条码的长度和宽度中所记载的二进制数据,可获取其中所包含的信息。一维条码的宽度记载着数据,而其长度没有记载数据。二维条码的长度、宽度均记载着数据。相比一维条码,二维条码可以记载更多、更复杂的数据,比如图片、网络链接等。
二维条码可以分为堆叠式/行排式二维条码和矩阵式二维条码。堆叠式/行排式二维条码形态上是由多行短截的一维条码堆叠而成;矩阵式二维条码以矩阵的形式组成,在矩阵相应元素位置上用“点”表示二进制“1”,用“空”表示二进制“0”,由“点”和“空”的排列组成代码。
矩阵式二维条码(又称棋盘式二维条码)它是在一个矩形空间通过黑、白像素在矩阵中的不同分布进行编码。在矩阵相应元素位置上,用点(方点、圆点或其他形状)的出现表示二进制“1”,点的不出现表示二进制的“0”,点的排列组合确定了矩阵式二维条码所代表的意义。矩阵式二维条码是建立在计算机图像处理技术、组合编码原理等基础上的一种新型图形符号自动识读处理码制。
图1为快速反应(Quick Response,QR)码的生成方法流程图。QR码为矩阵式二维条码,其生成方法是,首先根据二维码需要存储的原始内容,该原始内容可以为图片、文字、签字、指纹等可以数字化的内容,可以为多种语言文字,还可以为图像数据,通过二维码算法生成一个二维码0-1数据方阵,然后根据目标图片的像素大小,按比例放大数据方阵,再根据该放大的数据方阵描点图像,0描成白色或其他浅色,1描成黑色或其他深色,最后生成目标二维码图片。其中,按比例放大数据方阵是根据使用场景来选择的,比如露天广告和杂志上的二维码大小肯定是不一样的。
QR码符号共有40种规格,分别为版本1、版本2、......、版本40。版本1规格为21模块×21模块,版本2为25模块×25模块,以此类推,每一版本符号比前一版本每边增加4个模块,直到版本40,规格为177模块×177模块。图2为QR码符号版本1的示例图,版本1规格为21模块×21模块,深色模块与浅色模块互相交错,深色模块表示二进制1,浅色模块表示二进制0。
现有技术生成的二维码图案,一般都是由黑色和白色方块组成,或者只是简单的用其他深颜色替换黑色和用其他浅颜色替换白色。这样无论是从结构上,还是色彩的变化上,该二维码图案比较单一,不借助二维码识读设备,用户无法辩识其中的内容,无法满足用户的个性化需求。
发明内容
本申请的目的是,提供一种二维码的生成、识别方法和装置。该方法在二维码中的图形中使用多种颜色的组合,而且还可以在结构上有所变化和调整,从而使二维码更加美观和实用,方便用户辨识,同时不影响二维码的译码使用。
为实现上述目的,本申请提供了一种二维码的生成方法,所述方法包括:对根据二维码的存储内容生成的数据方阵进行所述数据方阵的边长放大;对所述放大后的数据方阵进行元素值的修改;获取所述修改的数据区域占所述修改后的数据方阵的全部数据区域的比率,和所述修改后的数据方阵的颜色对比度;判断所述修改的数据区域占所述修改后的数据方阵的全部数据区域的比率是否小于预设的容错率阈值,以及所述修改后的数据方阵的颜色对比度值是否大于预设的颜色对比度阈值;当确定所述修改的数据区域占所述修改后的数据方阵的全部数据区域的比率小于预设的容错率阈值,并且所述修改后的数据方阵的颜色对比度值大于颜色预设的对比度阈值时,则根据所述修改后的数据方阵来描点以生成所述二维码。
本申请提供了一种二维码的识别方法,所述方法包括:将所述二维码定位并识别所述二维码的深浅模块,生成符号图像;识读所述符号图像的格式信息和版本信息并确定所述符号图像的版本;将所述符号图像消除掩模并恢复所述版本信息的数据和纠错码字;根据所述二维码的修改方式并利用所述纠错码字对所述符号图像进行错误检查;当所述符号图像有错误时,则对所述符号图像进行纠错,并对所述纠错后的符号图像进行译码并输出译码结果;当所述符号图像未有错误时,则直接对所述符号图像进行译码并输出译码结果。
本申请提供了一种二维码的生成装置,所述装置包括:放大单元,用于对根据二维码的存储内容生成的数据方阵进行所述数据方阵的边长放大;修改单元,用于对所述放大后的数据方阵进行元素值的修改;获取单元,用于获取所述修改的数据区域占所述修改后的数据方阵的全部数据区域的比率,和所述修改后的数据方阵的颜色对比度;判断单元,用于判断所述修改的数据区域占所述修改后的数据方阵的全部数据区域的比率是否小于预设的容错率阈值,以及所述修改后的数据方阵的颜色对比度值是否大于预设的颜色对比度阈值;生成单元,用于当确定所述修改的数据区域占所述修改后的数据方阵的全部数据区域的比率小于预设的容错率阈值,并且所述修改后的数据方阵的颜色对比度值大于颜色预设的对比度阈值时,则根据所述修改后的数据方阵来描点以生成所述二维码。
本申请提供了一种二维码的识别装置,所述装置包括:识别单元,用于将所述二维码定位并识别所述二维码的深浅模块,生成符号图像;识读单元,用于识读所述符号图像的格式信息和版本信息并确定所述符号图像的版本;消除单元,用于将所述符号图像消除掩模并恢复所述版本信息的数据和纠错码字;检查单元,用于根据所述二维码的修改方式并利用所述纠错码字对所述符号图像进行错误检查;当所述符号图像有错误时,则对所述符号图像进行纠错,并对所述纠错后的符号图像进行译码并输出译码结果;当所述符号图像未有错误时,则直接对所述符号图像进行译码并输出译码结果。
因此,本申请以对放大后的数据方阵进行元素值修改的形式,实现了二维码具有颜色和结构变化,,从而使二维码更加美观和实用,方便用户辨识,同时不影响二维码的译码使用。
附图说明
图1为QR码的生成方法流程图;
图2为QR码符号版本1的示例图;
图3为本申请实施例公开的二维码的生成方法流程图;
图4为本申请实施例公开的二维码的生成方法通过第一修改方式生成的二维码的示意图;
图5A为本申请实施例公开的二维码的生成方法通过第二修改方式生成的二维码的示意图一;
图5B为本申请实施例公开的二维码的生成方法通过第二修改方式生成的二维码的示意图二;
图6A为本申请实施例公开的二维码的生成方法通过第三修改方式生成的二维码的示意图一;
图6B为本申请实施例公开的二维码的生成方法通过第三修改方式生成的二维码的示意图二;
图7为本申请实施例公开的二维码的识别方法的流程图;
图8为本申请实施例公开的二维码的生成装置示意图;
图9为本申请实施例公开的二维码的生成装置的修改单元示意图;
图10为本申请实施例公开的二维码的识别装置的示意图。
具体实施方式
下面通过附图和实施例,对本申请的技术方案做进一步的详细描述。
本申请实施例根据用户的不同需求,对放大后的数据方阵做不同的修改,从而实现了在二维码中可以使用多种颜色,而且在结构上还可以有所变化和调整,从而使二维条码更加美观和实用,同时控制修改后的数据方阵的修改比率小于预设的容错率阈值以及修改后的数据方阵的颜色对比度值大于预设的颜色对比度阈值,使得修改区域不影响二维码的扫码使用。
图3为本申请实施例公开的二维码的生成方法流程图。如图所示,本实施例包括如下步骤:
步骤301:对根据二维码的存储内容生成的数据方阵进行所述数据方阵的边长放大。
具体地,首先,根据二维码存储的原始内容生成第一数据方阵,该原始内容可以为图片、文字、签字、指纹等可以数字化的内容,也可以为多种语言文字,还可以为图像数据。按照现有技术中的二维码算法,生成一个0-1数据方阵。二维码的种类很多,相应的二维码算法也很多。比如QR码是一种被广泛使用的二维码,根据二维码存储的原始内容按照QR算法生成一个21×21的数据方阵。
然后,根据目标图片的像素大小计算0-1数据方阵需要放大的倍数,并根据放大倍数将0-1数据方阵的边长按比例放大。如果固标图片的像素大小为84×84,那么0-1数据方阵的边长需要扩大的倍数为4。如果存储的内容过多可以使用另外的矩阵式二维码模式或者用户按照需要减少二维码存储的内容。其中,除了QR码外,其他具有代表性的矩阵式二维码还有数据矩阵(DataMatrix)码等。在长和宽两个方向按比例放大0-1数据方阵。比如0-1数据方阵的每一个点扩大4倍后,则放大后的0-1数据方阵每个点变成4×4的方阵,这样21×21的数据方阵变成了84×84的数据方阵。
步骤302,对放大后的数据方阵进行元素值的修改。
具体地,根据用户的需求选择修改放大后的数据方阵的方式,并修改放大后的数据方阵的元素值。其中,对放大后的数据方阵的元素值进行修改可以采用以下3种方式:
(1)第一修改方式,对所述放大后的数据方阵直接修改数据方阵的元素的二进制值,也就是将放大后的数据方阵中有些1的地方修改为0,0的地方修改为1;
(2)第二修改方式,对所述放大后的数据方阵的元素值直接赋予真实颜色代码,比如,一种红色代码#D70707,那么直接用D70707作为放大后的数据方阵那点元素的值,FFFFFF表示白色,000000表示黑色等;
(3)第三修改方式,将所述放大后的数据方阵的元素值修改为表示几何形状或预先设计好的图形的颜色代码值,也就是说,修改后的数据方阵中的有些点会成为圆角、倒角等几何形状或预先设计好的图形。例如,在需要加圆角的地方,把该地方的元素值修改为适用于圆角设计要求的颜色代码。在需要加三角形的地方,把该地方的元素值修改为适用于三角形设计要求的颜色代码。
当用户的需求为目标图片只需要两种颜色,比如黑白两色时,可采用第一修改方式,对放大后的数据方阵进行修改。
当用户的需求为目标图片需要增加其他颜色(黑白色除外)时,可采用第二修改方式对放大后的数据方阵进行修改。
当用户需求为目标图片在结构上要有所变化时,可采用第三修改方式对放大后的数据方阵进行修改。
当用户需求为目标图片只需要两种颜色但在结构上要有所变化时,则采用第一修改方式和第三修改方式对放大后的数据方阵进行修改,即将所述放大后的数据方阵的元素值修改为二进制值和表示几何形状或预先设计好的图形的颜色代码值的组合值。
当用户需求为目标图片增加其他颜色(黑白色除外)并在结构上要有所变化时,可采用第二修改方式和第三修改方式对放大后的数据方阵进行修改,即将所述放大后的数据方阵的元素值修改为真实颜色代码和表示几何形状或预先设计好的图形的颜色代码值的组合值。
步骤303:获取所述修改的数据区域占所述修改后的数据方阵的全部数据区域的比率,以及所述修改后的数据方阵的颜色对比度。
具体地,当采用第一修改方式对放大后的数据方阵进行修改时,修改的数据区域为有些1的地方改为0,0的地方改为1的区域,计算该修改的数据区域占修改后的数据方阵的全部数据区域的比率,并计算修改后的数据方阵的颜色对比度值,从而获取修改的数据区域占修改后的数据方阵的全部数据区域的比率和颜色对比度。
当采用第二种修改方式对放大后的数据方阵进行修改时,修改的数据区域为将有些地方修改为需要增加的其他颜色(黑白色除外)的区域,计算该修改的数据区域占修改后的数据方阵的全部数据区域的比率,并计算修改后的数据方阵的颜色对比度值,从而获取修改的数据区域占修改后的数据方阵的全部数据区域的比率和颜色对比度。
当采用第三修改方式对放大后的数据方阵进行修改时,修改的数据区域为将有些地方改为圆角、倒角等几何形状或预先设计好的图形的区域,计算该修改的数据区域占修改后的数据方阵的全部数据区域的比率,并计算修改后的数据方阵的颜色对比度值,从而得到修改的数据区域占修改后的数据方阵的全部数据区域的比率和颜色对比度。
当采用第一修改方式和第三修改方式对放大后的数据方阵进行组合修改时,修改的数据区域为将有些地方修改为二进制值和表示几何形状或预先设计好的图形的颜色代码值的组合值的区域,计算该修改的数据区域占修改后的数据方阵的全部数据区域的比率同时计算修改后的数据方阵的颜色对比度值,从而获取修改的数据区域占修改后的数据方阵的全部数据区域的比率和颜色对比度。
当采用第二修改方式和第三修改方式对放大后的数据方阵进行组合修改时,修改的数据区域为将有些地方修改为真实颜色代码和表示几何形状或预先设计好的图形的颜色代码值的组合值的区域,计算该修改的数据区域占修改后的数据方阵的全部数据区域的比率同时计算修改后的数据方阵的颜色对比度值,从而获取修改的数据区域占修改后的数据方阵的全部数据区域的比率和颜色对比度。
步骤304:判断所述修改的数据区域占所述修改后的数据方阵的全部数据区域的比率是否小于预设的容错率阈值,以及所述修改后的数据方阵的颜色对比度值是否大于预设的颜色对比度阈值。
具体地,根据实际情况和能够正确解码的需求设定一个容错率阈值和一个颜色对比度阈值。为了能够正确解码,修改的数据区域占修改后的数据方阵的全部数据区域的比率应该小于预设的容错率阈值。也就是说,为了提高解码率,修改的比率值与预设的容错率阈值之间可留有一定的空间,以尽量减少修改的比率。当有些没有容错的区域,也就是容错率阈值为0时,应该尽量保证其原始面貌,不要修改。同时修改后的数据方阵颜色对比度值应该大于预设的颜色对比度阈值,比如,黑白两色的颜色对比度最大。
当修改的数据区域占修改后的数据方阵的全部数据区域的比率小于预设的容错率阈值,并且修改后的数据方阵的颜色对比度值大于预设的颜色对比度阈值,则进入步骤304;当修改的数据区域占修改后的数据方阵的全部数据区域的比率大于或等于预设的容错率阈值时,和/或修改后的数据方阵的颜色对比度值小于或等于预设的颜色对比度阈值时,则返回到步骤301重新修改所述修改后的数据方阵。
步骤305:根据所述修改后的数据方阵来描点,以生成所述二维码。
具体地,当采用第一修改方式对放大后的数据方阵进行修改时,根据修改后的数据方阵的二进制值描点,比如0的地方描成淡颜色,1的地方描成深颜色,从而生成二维码,如图4所示;
当采用第二修改方式对放大后的数据方阵进行修改时,根据修改后的数据方阵的真实颜色代码描点,从而生成二维码,如图5A和图5B所示;
当采用第三修改方式对放大后的数据方阵进行修改时,根据修改后的数据方阵的表示几何形状或预先设计好的图形的颜色代码值描点,从而生成二维码。
当采用第一修改方式和第三修改方式对放大后的数据方阵进行组合修改时,根据修改后的数据方阵的二进制值和表示几何形状或预先设计好的图形的颜色代码值的组合值描点,从而生成二维码。例如,若需要把二维码中的深色图案圆角化,就可以通过计算,在图案深色突出直角位置把部分数据方阵中的值从1改成0,反之,在图案深色凹进直角位置把部分数据方阵中的值从0改成1,这样就能达到圆角的效果,如图6A所示。
当采用第二修改方式和第三修改方式对放大后的数据方阵进行组合修改时,根据修改后的数据方阵的真实颜色代码和表示几何形状或预先设计好的图形的颜色代码值的组合值描点,从而生成二维码。例如,既要修改形状,如圆角,又要整合多种颜色,首先采用第二修改方式,将放大后的数据方阵的元素值修改为多种颜色的真实颜色代码,然后在需要加圆角的地方直接把该地方的值修改为适用于圆角设计要求的颜色代码,然后按照修改后的数据方阵的颜色代码描点,从而生成二维码,如图6B所示。
因此,本申请实施例公开的二维码的生成方法,该方法实现了自动生成多样化的二维码图形,即根据用户的需求,在二维码中增加了多种色彩,还包含圆角、倒角等几何形状或预先设计好的图形,从而使得二维码富于更多变化和更加美化,同时通过判断修改区域占修改后的数据方阵的全部数据区域的比率是否小于容错率阈值来控制修改比率一定要小于容错率阈值和颜色对比度值一定要大于颜色对比度阈值,从而保证了修改区域不影响二维码的扫码使用。
图7为本申请实施例公开的二维码的识别方法的流程图。如图所示,本实施例具体包括以下步骤:
步骤701,将该二维码定位并识别该二维码的深浅模块。
具体地,选择二维码图像的放射率最大值和最小值之间的中值并将该中值确定为划分深浅模块的阈值,大于该阈值的模块为深色模块,不大于该阈值的模块为浅色模块,从而使用该阈值将二维码图像转化为一系列深色与浅色像素的符号图像。
步骤702,识读格式信息和版本信息并确定该符号图像的版本。
步骤703,消除掩模并恢复数据和纠错码字。
具体地,用掩模图形参考已经从格式信息中得出对编码区的位图进行异或处理消除掩模,并根据模块排列规则,识读符号字符,从而恢复信息的数据与纠错码字。
步骤704,根据二维码的修改方式并利用纠错码字对符号图像进行错误检查并判断是否有错误。
具体地,QR码采用纠错算法生成一系列纠错码字,添加在数据码字序列后,使得符号可以在遇到损坏时不致丢失数据。该纠错码字可以纠正两种类型的错误,一种为拒读错误,指的是对于错误码字的位置是已知的,该错误码字是未被扫描到或无法译码的符号字符;另一种是替代错误,指的是对于错误码字位置是未知的,该错误码字是被错误译码的符号字符。
由于QR码是矩阵型符号,如果一个缺陷使深色模块变成浅色模块或将浅色模块变成深色模块,将符号字符错误地译码为表面上有效,但却是另一个不同的码字。这种数据替代错误需要两个纠错码字来纠正。
上述拒读错误的数量、替代错误的数量、纠错码字的数量和错误译码保护码字的数量的关系如公式(1)所示。
e+2t≤d-p 公式(1)
其中:e为拒读错误的数量,t为替代错误的数量,d为纠错码字的数量,p为错误译码保护码字的数量。例如:版本6-H符号中共有172个码字,其中有112个纠错码字(其余60个为数据码字)。这112个纠错码字可纠正56个替代错误或112个拒读错误,即符号纠错容量为56/172或32.6%。
在公式(1)中,版本1-L符号的错误译码保护码字的数量p为3,版本1-M符号和版本2-L符号的p为2,版本1-H、1-Q和3-L符号的p为1,其他情况下p为0。当p大于0时,即有p个码字作为错误检测码字,防止从错误超过纠错容量的符号传输数据。这时拒读错误的数量e必须小于d/2。
对于通过第一修改方式生成的二维码中只有两种颜色,只要两种颜色对比度不是太接近,导致深浅颜色的识别错误很少。因为,对于一般的识别二维码设备,会将需要识别的二维码扫描成灰度图像,选择图像中对比度最大的灰度颜色,取中间值作为分界线,大于该中间值的为深色,小于该中间值的为浅色,所以只要两种颜色对比度不要太接近,都不会导致深浅颜色的识别错误。
对于通过第二修改方式生成的二维码中有两种或两种以上的颜色,但是也只是单纯的增加颜色,这样导致深浅颜色的识别错误也很少。因为,对于一般的识别二维码设备来说,若未修改前为深色数据值,即灰度颜色大于中间值的地方,修改后的颜色仍然是深色;若未修改前为浅色数据值,即颜色小于中间值的地方,修改后的颜色仍然是浅色。当经过识别设备扫描成灰度图像后,多种颜色只是表现形式,最终还是取决于灰度颜色的中间值,只要灰度颜色值没有质的变更,自然就可以正常识别译码了。
对于通过第三修改方式生成的二维码中不但有两种或两种以上的颜色,而且结构上还有所变化。在该修改方式中皆是替代错误,无拒读错误,则公式(1)转换为公式(2)。
2t≤d-p 公式(2)
根据纠错码字的数量d、错误译码保护码字的数量p并通过公式(2)计算替代错误的数量t。
当错误译码保护码字的数量p为最极限的情况是,即p为0,则公式(2)转换为公式(3)。
2t≤d 公式(3)
根据纠错码字的数量d并通过公式(2)计算替代错误的数量t。
从公式(3)看出,替代错误的数量的最大值为d/2,当然考虑到实际情况,为了提高译码率,以及在扫码过程中遇到的由设备或者环境等原因引起的其他“替代错误”或者“拒读错误”,所以替代错误的数量t应该永远保持小于d/2,当然前两种修改方式不受影响。
当用纠错码字进行错误检查后,若有错误,则进行步骤705;若无错误,则进行步骤706;
步骤705,纠错。
步骤706,对数据码字进行译码并输出译码结果。
具体地,根据模式指示符和字符计数指示符将数据码字划分成多个部分,并按照使用的模式译码得出数据字符并输出结果。因此,本申请实施例公开的二维码的识别方法,根据二维码的修改方式并利用纠错码字对符号图像进行错误检查并纠错,纠错后通过译码得到二维码中的信息。该装置能够满足基于用户的个性化需求而生成的二维码的解码需要,而且保证了一定的解码率。
图8为本申请实施例公开的二维码的生成装置示意图,如图所示,本实施例具体包括:放大单元11、修改单元12、获取单元13、判断单元14和生成单元15。
放大单元11,用于对根据二维码的存储内容生成的数据方阵进行所述数据方阵的边长放大。
具体地,首先根据二维码存储的原始内容生成第一数据方阵,该原始内容可以为图片、文字、签字、指纹等可以数字化的内容,也可以为多种语言文字,还可以为图像数据,按照现有技术中的二维码算法,生成一个0-1数据方阵。二维码的种类很多,相应的二维码算法也很多。比如QR码是一种被广泛使用的二维码,根据二维码存储的原始内容按照QR算法生成一个21×21的数据方阵。然后根据目标图片的像素大小计算0-1数据方阵需要放大的倍数并根据放大倍数将0-1数据方阵的边长按比例放大。如果目标图片的像素大小为84×84,那么0-1数据方阵的边长需要扩大的倍数为4。如果存储的内容过多可以使用另外的矩阵式二维码模式或者用户按照需要减少二维码存储的内容。其中,除了QR码外,其他具有代表性的矩阵式二维码还有:数据矩阵(Data Matrix)码等。在长和宽两个方向按比例放大0-1数据方阵。比如0-1数据方阵的每一个点扩大4倍后,则放大后的0-1数据方阵每个点变成4×4的方阵,这样21×21的数据方阵变成了84×84的数据方阵。
修改单元12,用于对所述放大后的数据方阵进行元素值的修改。
具体地,根据用户的需求选择修改放大后的数据方阵的方式并修改放大后的数据方阵的元素值。
另外,该修改单元12还包括第一修改子单元121、第二修改子单元122和第二修改子单元123,如图9所示。
第一修改子单元121,用于对所述放大后的数据方阵直接修改数据方阵的元素的二进制值,也就是将放大后的数据方阵中有些1的地方修改为0,0的地方修改为1。
第二修改子单元122,用于对所述放大后的数据方阵的元素值直接赋予真实颜色代码,比如一种红色代码#D70707,那么直接用D70707作为放大后的数据方阵那点的值,FFFFFF表示白色,000000表示黑色等。
第三修改子单元123,用于将所述放大后的数据方阵的元素值修改为表示几何形状或预先设计好的图形的颜色代码值,也就是说,修改后的数据方阵中的有些点会成为圆角、倒角等几何形状或预先设计好的图形。
获取单元13,用于获取所述修改的数据区域占所述修改后的数据方阵的全部数据区域的比率,和所述修改后的数据方阵的颜色对比度。
判断单元14,用于判断所述修改的数据区域占所述修改后的数据方阵的全部数据区域的比率是否小于预设的容错率阈值,以及所述修改后的数据方阵的颜色对比度值是否大于预设的颜色对比度阈值。当确定所述修改的数据区域占所述修改后的数据方阵的全部数据区域的比率大于或等于预设的容错率阈值,和/或所述修改后的数据方阵的颜色对比度值小于或等于颜色预设的对比度阈值时,则由修改单元11重新修改所述修改后的数据方阵。
生成单元15,用于当确定所述修改的数据区域占所述修改后的数据方阵的全部数据区域的比率小于预设的容错率阈值,并且所述修改后的数据方阵的颜色对比度值大于颜色预设的对比度阈值时,则根据所述修改后的数据方阵来描点以生成所述二维码。
因此,本申请实施例公开的二维码的生成装置,该装置实现了自动生成多样化的二维码图形,即根据用户的需求,通过修改单元在二维码中增加了多种色彩,还包含圆角、倒角等几何形状或预先设计好的图形,从而使得二维码富于更多变化和更加美化,同时通过判断单元来控制修改比率小于容错率阈值和颜色对比度值大于颜色对比度阈值,从而保证了修改区域不影响二维码的扫码使用。
图10为本申请实施例公开的二维码的识别装置的示意图,如图所示,本实施例具体包括:识别单元21、识读单元22、消除单元23和检查单元24。
识别单元21,用于将所述二维码定位并识别所述二维码的深浅模块,生成符号图像;
识读单元22,用于识读所述符号图像的格式信息和版本信息并确定所述符号图像的版本;
消除单元23,用于将所述符号图像消除掩模并恢复所述版本信息的数据和纠错码字;
检查单元24,用于根据所述二维码的修改方式并利用所述纠错码字对所述符号图像进行错误检查;当所述符号图像有错误时,则对所述符号图像进行纠错,并对所述纠错后的符号图像进行译码并输出译码结果;当所述符号图像未有错误时,则直接对所述符号图像进行译码并输出译码结果。
具体地,对于通过第一修改方式生成的二维码中只有两种颜色,只要两种颜色对比度不是太接近,导致检查单元24中设别出的有关深浅颜色的识别错误很少。因为,对于一般的识别二维码设备,会将需要识别的二维码扫描成灰度图像,选择图像中对比度最大的灰度颜色,取中间值作为分界线,大于该中间值的为深色,小于该中间值的为浅色,所以只要两种颜色对比度不要太接近,都不会导致深浅颜色的识别错误。
对于通过第二修改方式生成的二维码中有两种或两种以上的颜色,但是也只是单纯的增加颜色,这样导致检查单元24中设别出的有关深浅颜色的识别错误也很少。因为,对于一般的识别二维码设备来说,若未修改前为深色数据值,即灰度颜色大于中间值的地方,修改后的颜色仍然是深色;若未修改前为浅色数据值,即颜色小于中间值的地方,修改后的颜色仍然是浅色。当经过识别设备扫描成灰度图像后,多种颜色只是表现形式,最终还是取决于灰度颜色的中间值,只要灰度颜色值没有质的变更,自然就可以正常识别译码了。
对于通过第三修改方式生成的二维码中不但有两种或两种以上的颜色,而且结构上还有所变化。在该修改方式中检查单元24中设别出的皆是替代错误,为了提高译码率,以及在扫码过程中遇到的由设备或者环境等原因引起的其他“替代错误”或者“拒读错误”,所以替代错误的数量t应该永远保持小于d/2,当然前两种修改方式不受影响。
因此,本申请实施例公开的二维码的识别装置,根据二维码的修改方式并利用纠错码字对符号图像进行错误检查并纠错,纠错后通过译码得到二维码中的信息。该装置能够满足基于用户的个性化需求而生成的二维码的解码需要,而且保证了一定的解码率。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本申请中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (8)

1.一种二维码的生成方法,其特征在于,所述方法包括:
对根据二维码的存储内容生成的数据方阵进行所述数据方阵的边长放大;对所述放大后的数据方阵进行元素值的修改;
获取所述修改的数据区域占所述修改后的数据方阵的全部数据区域的比率,和所述修改后的数据方阵的颜色对比度;
判断所述修改的数据区域占所述修改后的数据方阵的全部数据区域的比率是否小于预设的容错率阈值,以及所述修改后的数据方阵的颜色对比度值是否大于预设的颜色对比度阈值;
当确定所述修改的数据区域占所述修改后的数据方阵的全部数据区域的比率小于预设的容错率阈值,并且所述修改后的数据方阵的颜色对比度值大于颜色预设的对比度阈值时,则根据所述修改后的数据方阵来描点以生成所述二维码。
2.根据权利要求1所述的二维码的生成方法,其特征在于,所述对所述放大后的数据方阵进行元素值的修改包括:对所述放大后的数据方阵直接修改数据方阵的元素的二进制值。
3.根据权利要求1所述的二维码的生成方法,其特征在于,所述对所述放大后的数据方阵进行元素值的修改包括:对所述放大后的数据方阵的元素值直接赋予真实颜色代码。
4.根据权利要求1所述的二维码的生成方法,其特征在于,所述对所述放大后的数据方阵进行元素值的修改包括:将所述放大后的数据方阵的元素值修改为表示几何形状或预先设计好的图形的颜色代码值。
5.根据权利要求1所述的二维码的生成方法,其特征在于,所述判断所述修改的数据区域占所述修改后的数据方阵的全部数据区域的比率是否小于预设的容错率阈值,以及所述修改后的数据方阵的颜色对比度值是否大于预设的颜色对比度阈值之后还包括:当确定所述修改的数据区域占所述修改后的数据方阵的全部数据区域的比率大于或等于预设的容错率阈值,和/或所述修改后的数据方阵的颜色对比度值小于或等于颜色预设的对比度阈值时,则重新修改所述修改后的数据方阵。
6.根据权利要求1所述的二维码的生成方法,其特征在于,所述容错率阈值和所述颜色对比度阈值是根据实际情况以及能够正确解码的需求设定的。
7.一种二维码的生成装置,其特征在于,所述装置包括:放大单元,用于对根据二维码的存储内容生成的数据方阵进行所述数据方阵的边长放大;修改单元,用于对所述放大后的数据方阵进行元素值的修改;获取单元,用于获取所述修改的数据区域占所述修改后的数据方阵的全部数据区域的比率,和所述修改后的数据方阵的颜色对比度;判断单元,用于判断所述修改的数据区域占所述修改后的数据方阵的全部数据区域的比率是否小于预设的容错率阈值,以及所述修改后的数据方阵的颜色对比度值是否大于预设的颜色对比度阈值;生成单元,用于当确定所述修改的数据区域占所述修改后的数据方阵的全部数据区域的比率小于预设的容错率阈值,并且所述修改后的数据方阵的颜色对比度值大于颜色预设的对比度阈值时,则根据所述修改后的数据方阵来描点以生成所述二维码。
8.根据权利要求7所述的二维码的生成装置,其特征在于,所述修改单元包括:第一修改子单元:用于对所述放大后的数据方阵直接修改数据方阵的元素的二进制值;第二修改子单元:用于对所述放大后的数据方阵的元素值直接赋予真实颜色代码;第三修改子单元:用于将所述放大后的数据方阵的元素值修改为表示几何形状或预先设计好的图形的颜色代码值。
CN201210126625.3A 2012-04-26 2012-04-26 二维码的生成、识别方法和装置 Active CN103377390B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210126625.3A CN103377390B (zh) 2012-04-26 2012-04-26 二维码的生成、识别方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210126625.3A CN103377390B (zh) 2012-04-26 2012-04-26 二维码的生成、识别方法和装置

Publications (2)

Publication Number Publication Date
CN103377390A CN103377390A (zh) 2013-10-30
CN103377390B true CN103377390B (zh) 2016-12-07

Family

ID=49462470

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210126625.3A Active CN103377390B (zh) 2012-04-26 2012-04-26 二维码的生成、识别方法和装置

Country Status (1)

Country Link
CN (1) CN103377390B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103778452B (zh) * 2014-01-10 2017-09-05 惠州Tcl移动通信有限公司 一种基于手机的二维码编码和解码的方法及系统
CN104778732B (zh) * 2015-01-30 2017-09-26 北大方正集团有限公司 图像的二维码生成方法及装置
CN106022431B (zh) * 2016-05-18 2022-05-03 北京鼎九信息工程研究院有限公司 颜色标识型彩色二维图码的生成、识读方法及装置
CN106938572B (zh) * 2017-03-05 2018-05-29 福州图腾易讯信息技术有限公司 一种二维码生成系统以及识别方法
CN108805244A (zh) * 2017-07-23 2018-11-13 宁波亿诺维信息技术有限公司 二维码生成系统
CN108021964B (zh) * 2017-12-17 2021-02-05 和宇健康科技股份有限公司 一种支付二维码生成系统以及识别方法
CN108280503A (zh) * 2018-01-20 2018-07-13 韩少卿 一种支付二维码生成系统以及安全交易方法
CA3089330A1 (en) * 2018-01-26 2019-08-01 Universitat De Barcelona Colour correction
CN109801173A (zh) * 2018-12-14 2019-05-24 平安普惠企业管理有限公司 基于生物特征识别的业绩管理方法、装置和计算机设备
US10990779B1 (en) * 2019-06-14 2021-04-27 Eric Johanson Securing and authenticating an item based on 2-D barcode encoding
CN116739022B (zh) * 2023-08-15 2023-11-07 北京紫光青藤微系统有限公司 用于条码图像的译码方法、装置和电子设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4569382B2 (ja) * 2005-05-20 2010-10-27 ブラザー工業株式会社 印刷データ編集装置、印刷データ編集プログラム及び記録媒体
CN1953362A (zh) * 2006-11-16 2007-04-25 钟杨 一种在二维条码中嵌入图案的方法及装置
CN101339599A (zh) * 2008-08-14 2009-01-07 深圳华为通信技术有限公司 一种获取二维码的方法和终端
JP2010165340A (ja) * 2008-12-18 2010-07-29 Exfrontier Co Ltd カラー画像と重畳した二次元コード生成方法

Also Published As

Publication number Publication date
CN103377390A (zh) 2013-10-30

Similar Documents

Publication Publication Date Title
CN103377390B (zh) 二维码的生成、识别方法和装置
CN106778996B (zh) 嵌入有视觉图像的二维码的生成系统和方法以及读取系统
CN106156820B (zh) 二维码生成方法及装置
JP4557866B2 (ja) 混合コード、及び、混合コードの生成方法と装置、記録媒体
KR101783337B1 (ko) 이미지 문서에서 텍스트를 추출하는 방법 및 장치
US5748809A (en) Active area identification on a machine readable form using form landmarks
US7707488B2 (en) Analyzing lines to detect tables in documents
US20090302114A1 (en) Two dimensional dot code, and decoding apparatus and method for a two dimensional dot code
CN102567938B (zh) 用于西文水印处理的水印图像分块方法和装置
JP2006134337A (ja) 混合コードのデコーディング方法及びその装置、記録媒体
JP2012008791A (ja) 帳票認識装置及び帳票認識方法
CN109190630A (zh) 字符识别方法
JP2010021771A (ja) 画像処理装置及び画像処理プログラム
CN107451507A (zh) 一种用于动态图像中的二维码识别方法及装置
CN112446262A (zh) 文本分析方法、装置、终端和计算机可读存储介质
CN103955730A (zh) 一种防伪用光刻二维码标签的制作方法
CN101359360A (zh) 一种图文融合的电子票编解码方法
CA3045391A1 (en) Method for detection and recognition of long-range high-density visual markers
JP5673257B2 (ja) コード読取装置、コード読取方法およびコード読取プログラム
CN111046770B (zh) 一种照片档案人物自动标注方法
CN102196120A (zh) 图像处理装置、方法以及计算机程序
CN110955889A (zh) 基于数字指纹的电子文档溯源方法
JP2017079082A (ja) 光学読取コード作成装置
JP5720182B2 (ja) 画像処理装置及び画像処理プログラム
JP2017191420A (ja) 二次元コード記録媒体および二次元コード読取方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1186818

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1186818

Country of ref document: HK