一种透视二维码生成方法及装置与流程

文档序号:14519632阅读:748来源:国知局
一种透视二维码生成方法及装置与流程

本发明涉及二维码技术领域,具体地说,是一种透视二维码生成方法及装置。



背景技术:

二维码是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理:它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化点。

现有技术中的二维码一般都是由黑白双色的图形构成,也有部分二维码使用了多种颜色,但其构成依然很单一,显示效果简单。而在现有技术中为了将更具有代表性的图案融入二维码,通常采用的做法是利用二维码的容错率,将图片缩小后直接覆盖到二维码中某个小区域中,通常面积不大于二维码面积的10%。无论哪种做法,都无法满足人们日益提高的审美要求。再一种技术虽然可以将彩色图像与二维码融合,可以看到背景效果,但是版面黑白色点明显,不能很好的展示图片的细节部分,特别是对人脸的高精度的部分更是大打折扣。



技术实现要素:

本发明要解决的技术问题是提供一种二维码的生成方法及装置,可以将二维码与图案融合在一起,在保证二维码信息功能的同时,提高二维码在视觉上的可观赏性。

为了解决上述技术问题,本发明提供了一种透视二维码生成方法,包括:

选择背景图像并计算所述背景图像的平均灰度值;

生成基础二维码并将所述基础二维码划分为多个基本单元;

分别计算所述背景图像上与基础二维码每个基本单元相对应的基本区域的平均灰度值,判断每个基本区域的平均灰度值相对于整个背景图像平均灰度值的偏移方向是否与所述基础二维码对应基本单元一致且偏移量达到了预设值,若否,调整背景图像上基本区域的灰度值使其与所述基础二维码上对应基本单元一致且偏移量达到预设值;

输出调整后的背景图像得到所述透视二维码。

进一步地,所述背景图像的尺寸不小于所述基础二维码的尺寸,所述基础二维码中每个单点划分为一个基本单元。

进一步地,将所述背景图像的每个基本区域划分为多个子区域,在计算每个基本区域的平均灰度值时,中间子区域的权重大于周边子区域的权重。

进一步地,所述中间子区域的权重为55%-65%;所述周边子区域的权重为5%-10%。

进一步地,将所述背景图像的每个基本区域中的中间子区域进一步划分为多个孙区域,在计算每个基本区域的平均灰度值时,中间孙区域的权重大于周边孙区域的权重。

进一步地,将所述背景图像的每个基本区域划分为多个子区域,在调整背景图像上基本区域的灰度值时,对中间子区域的调整量大于对周边子区域的调整量。

进一步地,将所述背景图像的每个基本区域中的中间子区域进一步划分为多个孙区域,在调整背景图像上基本区域的灰度值时,对中间孙区域的调整量大于对周边孙区域的调整量。

进一步地,调整背景图像上基本区域的灰度值时,调整量由中间孙区域向周边区域呈梯度递减。

进一步地,所述梯度递减为:将中间孙区域的灰度值调整到目标灰度值;由所述中间孙区域向周围每隔一预设距离按预设比例减少一级调整量。

本发明还提供了一种透视二维码生成装置,包括:

输入模块,用于选择背景图像和生成基础二维码,并将所述基础二维码划分为多个基本单元;

计算模块,用于计算所述背景图像的平均灰度值和与基础二维码每个基本单元相对应的基本区域的平均灰度值;

判断模块,用于判断每个基本区域的平均灰度值相对于整个背景图像平均灰度值的偏移方向是否与所述基础二维码对应基本单元一致且偏移量达到了预设值;

调整模块,用于在所述判断模块输出的判断结果为否时,调整背景图像上基本区域的灰度值使其与所述基础二维码上对应基本单元一致且偏移量达到预设值;

输出模块,用于输出基于所述调整模块调整后的背景图像而得到的透视二维码。

本发明的透视二维码生成方法及装置,可以将二维码融合到背景图像中,在保证二维码高识别率的情况下,大大提高了二维码本身的可观赏性;同时本发明还能通过背景图像提供可视化的直观信息,大大丰富了二维码可包含的信息量。

附图说明

图1是本发明的透视二维码的生成方法的流程图。

图2是本发明中基础二维码的一实施例。

图3是本发明中基本区域划分方法的一实施例示意图。

图4是二维码中定位点的示意图。

图5是由本发明的方法生成的透视二维码一实施例的示意图。

图6是由本发明的方法生成的透视二维码另一实施例的示意图。

图7是本发明的透视二维码的生成装置一实施例的原理图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。

如图1所示,本发明的透视二维码一实施例的生成方法,包括以下步骤:

步骤101:选择背景图像并计算所述背景图像的平均灰度值;

步骤102:生成基础二维码并将所述基础二维码划分为多个基本单元;

步骤103:分别计算所述背景图像上与基础二维码每个基本单元相对应的基本区域的平均灰度值,判断每个基本区域的平均灰度值相对于整个背景图像平均灰度值的偏移方向是否与所述基础二维码一致且偏移量达到了预设值,若否,调整背景图像上对应的基本区域的灰度值使其与所述基础二维码一致且偏移量达到预设值;

步骤104:输出调整后的背景图像得到所述透视二维码。

其中,在步骤101中,所选择的背景图像可以由用户导入或上传。背景图像的内容可以与二维码信息内容相关,例如当二维码信息为某公司的网站链接时,背景图像可以选择该公司的logo;或者当二维码信息为一个人的微信号时,背景图像可以是该人的头像。计算所述背景图像的平均灰度值可以由通用的灰度算法来实现。

在步骤102中,所述基础二维码可以由用户直接导入或上传,也可以由用户输入原始信息,然后将用户输入的原始信息根据用户的要求或预设的参数(包括容错、大小等)生成基础二维码。基础二维码可以是二维码可识别的任意颜色。优选地,如图2所示,基础二维码由黑、白两色构成。黑白两色的基础二维码生成过程简单,计算量小,同时也更便于后期与背景图像融合,减少处理量。

本发明中,为了达到更好的视觉效果,背景图像的尺寸一般不小于基础二维码的尺寸。例如背景图像的尺寸可以与基础二维码的尺寸一致,这样最终生成的透视二维码的整个图像就是二维码。背景图像的尺寸也可以大于基础二维码的尺寸,这样最终生成的透视二维码中的二维码信息占据背景图像的一部分。当然,本发明不限于此,在需要时,背景图像的尺寸也可以小于基础二维码的尺寸,此时背景图像表现为二维码的一部分。

在将基础二维码划分为多个基本单元时,优选是将基础二维码中每个单点划分为一个基本单元,也即将每个构成二维码的最基本的白色方块或黑色方块作为一个基本单元。例如图2中a处的黑色方块构成的单点即为一个基本单元。

在所述步骤103中,在计算所述背景图像上与基础二维码每个基本单元相对应的基本区域的平均灰度值时,可以将基础二维码覆盖在背景图像上,也可以将基础二维码置于背景图像底层,这样就可以方便直观地找到与基础二维码的每个基本单元相对应的背景图像区域。或者也可以为基础二维码和背景图像分别建立相同的坐标系,根据坐标系内的坐标点也可以方便地找到与基础二维码的每个基本单元相对应的背景图像区域。例如将坐标系的原点分别置于基础二维码和背景图像的左下角,则具有相同坐标的区域即背景图像与基础二维码相对应的区域。

在计算出背景图像的每个基本区域的平均灰度值后,首先判断该区域的平均灰度值相对于整个背景图像平均灰度值的偏移方向,也即该区域的灰度与整个图像相比更亮还是更暗(也可以称更白还是更黑),并判断偏移方向是否与基础二维码上相对应的基本单元一致。如果该区域的灰度与整个图像相比更亮,而基础二维码上对应该区域的基本单元为白点,则说明偏移方向一致;如果基础二维码上对应该区域的基本单元为黑点,则说明偏移方向不一致。反之亦然。

然后再判断该区域的平均灰度值相对于整个背景图像平均灰度值的偏移量是否达到了预设值。如果该基本区域的平均灰度值相对于整个背景图像平均灰度值的偏移方向与基础二维码对应基本单元一致且偏移量达到了预设值,则不需要对该基本区域的背景图像进行处理。如果该基本区域的平均灰度值相对于整个背景图像平均灰度值的偏移方向与基础二维码对应基本单元不一致,或者虽然不一致但偏移量未达到预设值,则需要对该基本区域的背景图像进笔调整。

其中,所述预设值根据二维码的复杂程度、信息含量、识别率要求以及识别效率要求等条件设定。二维码越复杂、信息含量越大、识别率要求或识别效率要求越高,该预设值取值应该越大,反之预设值取值可以相对较小。本领域的技术人员根据需要可以通过试验来获得合理的取值。

对背景图像上的基本区域的灰度值进行调整,即增加或减少该基本区域的灰度值。该调整一般可以通过增加或减少该基本区域图像的曝光度,来调整该基本区域各像素的rgb值实现。对于调整量,如果该基本区域的平均灰度值相对于整个背景图像平均灰度值的偏移方向与基础二维码对应基本单元一致,但未达到预设的偏移量,则调整该基本区域图像的曝光度,使该区域的平均灰度相对整个背景图像平均灰度的偏移量达到预设值即可。

如果该基本区域的平均灰度值相对于整个背景图像平均灰度值的偏移方向与基础二维码对应基本单元不一致,则先调整该基本区域图像的曝光度,使该区域的平均灰度与整个背景图像平均灰度相同,然后继续调整,使该区域的平均灰度相对整个背景图像平均灰度的偏移量达到预设值,也即调整量为该区域的平均灰度与整个背景图像平均灰度的差值的绝对值加上偏移量预设值。

例如,整个背景图像的平均灰度为g1,预设的偏移量为p1,背景图像上某基本区域的平均灰度为g2,而该基本区域对应的基础二维码上基本单元为黑点。则判断g2<g1-p1是否成立,若成立,说明该背景图像上该基本区域的颜色符合识别要求,无须进行任何处理。如果上述条件不成立,则调整背景图像上该基本区域的曝光量,降低该基本区域的灰度,直至满足上述条件。调整量t1=g2-(g1-p1)=g2-g1+p1。

具体地,如果该基本区域的平均灰度值相对于整个背景图像平均灰度值的偏移方向与基础二维码对应基本单元一致但偏移量未达到预设值,即g2<g1,但g2>g1-p1,则调整t1=g2-(g1-p1)后该基本区域的平均灰度为g2-(g2-g1+p1)=g2-g2+g1-p1=g1-p1,符合二维码识别要求。

如果该基本区域的平均灰度值相对于整个背景图像平均灰度值的偏移方向与基础二维码对应基本单元不一致,即g2>g1,则先将背景图像的该基本区域的灰度值调整到g1,调整量为g2-g1,再继续调整p1,总调整量为(g2-g1)+p1。

再例如,整个背景图像的平均灰度为g1,预设的偏移量为p1,背景图像上某基本区域的平均灰度为g2,而该基本区域对应的基础二维码上基本单元为白点。则判断g2>g1+p1是否成立,若成立,说明该背景图像上该基本区域的颜色符合识别要求,无须进行任何处理。如果上述条件不成立,则调整背景图像上该基本区域的曝光量,提高该基本区域的灰度,直至满足上述条件。调整量t2=(g1+p1)-g2。

具体地,如果该基本区域的平均灰度值相对于整个背景图像平均灰度值的偏移方向与基础二维码对应基本单元一致但偏移量未达到预设值,即g2>g1,但g2<g1+p1,则调整t2=g1+p1-g2后该基本区域的平均灰度为g2+(g1+p1-g2)=g1+p1,符合二维码识别要求。

如果该基本区域的平均灰度值相对于整个背景图像平均灰度值的偏移方向与基础二维码对应基本单元不一致,即g2<g1,则先将背景图像的该基本区域的灰度值调整到g1,调整量为g1-g2,再继续调整p1,总调整量为(g1-g2)+p1。可见,无论背景图像上的基本区域对应的基础二维码上的基本单元是黑点还是白点,当该基本区域的平均灰度值相对于整个背景图像平均灰度值的偏移方向与基础二维码对应基本单元不一致时,调整量均为|g1-g2|+p1。

经过上述调整后,背景图像上各基本区域的平均灰度均达到了二维码识别的要求,调整后的背景图像本身即构成了二维码,相当于透过图像可以识别的二维码,即透视二维码。

作为对本发明的进一步优选,可以将所述背景图像的每个基本区域划分为多个子区域,在计算每个基本区域的平均灰度值时,中间子区域的权重大于周边子区域的权重。同时,在调整背景图像上基本区域的灰度值时,对中间子区域的调整量大于对周边子区域的调整量。所述中间子区域的权重优选为55%-65%;所述周边子区域的权重优选为5%-10%。

还可以更进一步地将所述背景图像的每个基本区域中的中间子区域进一步划分为多个孙区域,在计算每个基本区域的平均灰度值时,中间孙区域的权重大于周边孙区域的权重。同时,在调整背景图像上基本区域的灰度值时,对中间孙区域的调整量大于对周边孙区域的调整量。

优选地,调整背景图像上基本区域的灰度值时,调整量由中间孙区域向周边区域呈梯度递减。所述梯度递减为:将中间孙区域的灰度值调整到目标灰度值;由所述中间孙区域向周围每隔一预设距离按预设比例减少一级调整量。

具体地,如图3所示的实施例。在本实施例中,将背景图像上对应基础二维码每个基本单元的基本区域划分为3*3个子区域a1-a9,然后进一步将中间的子区域a5划分为3*3个孙区域b1-b9。

如果背景图像上该基本区域对应的基础二维码基本单元是黑点,则进行如下处理:

计算图3中背景图像的b5区域内像素的平均灰度值g2,若g2<g1-p1,则该像素满足要求,即不用对该像素做任何处理;否则,则该像素不满足要求,采用降低曝光度的算法来调整该像素的rgb,使得g2<g1-p1。

优选地,将该黑点所对应的背景图像的基本区域平均划分成9个子区域,取这个区域的灰度加权平均值g3(其中中间子区域a5的权重取60%,其余子区域的权重取5%);

判断g3<g1-p1是否成立,若成立,则该黑点满足要求,即不用对该背景图像区域做任何处理;否则,则该基本区域不满足要求,计算灰度差值gd=g3-(g1-p1);

设置扩散梯度d1(即分几级调整),其中中间孙区域b5的边界为最高梯度,为gd。以中间孙区域b5的边界为基点,每向外延伸一定距离(例如5个像素)即比例降低一个梯度,各梯度灰度降低值为:gd,gd*(d1-1)/d1,gd*(d1-2)/d1,……,0。其中,扩散梯度d1的取值可以根据基本区域的大小来确定。一般基本区域越大,则扩散梯度d1取值越大;一般基本区域越小,则扩散梯度d1取值越小。可以先设定扩散梯度d1,然后根据基本区域大小和设定的扩散梯度d1计算出每级梯度的像素宽度;也可以先设定每级梯度的像素宽度,然后根据基本区域大小和设定的每级梯度的像素宽度计算出扩散梯度d1;

针对每级梯度,计算每个像素调整后的灰度值(原灰度值减去灰度降低值),通过降低曝光度算法,调整其rgb值使得满足调整后的灰度值。

进行调整时,优选先调整中间孙区域b5的灰度,然后依次向外调整其它孙区域b1-b4、b6-b9,最后调整子区域a1-a4、a6-a9,直至gd<=0的梯度,即完成该区域的图像处理。

同理,如果背景图像上该基本区域对应的基础二维码基本单元是黑点,则进行如下处理:

计算图3中背景图像的b5区域内像素的平均灰度值g2,若g2>g1+p1,则该像素满足要求,即不用对该像素做任何处理;否则,则该像素不满足要求,采用提高曝光度的算法来调整该像素的rgb,使得g2>g1+p1。

优选地,将该白点所对应的背景图像的基本区域平均划分成9个子区域,取这个区域的灰度加权平均值g3(其中中间子区域a5的权重取60%,其余子区域的权重取5%);

判断g3>g1+p1是否成立,若成立,则该白点满足要求,即不用对该背景图像区域做任何处理;否则,则该基本区域不满足要求,计算灰度差值gd=(g1+p1)-g3;

设置扩散梯度d1(即分几级调整),其中中间孙区域b5的边界为最高梯度,为gd。以中间孙区域b5的边界为基点,每向外延伸一定距离(例如5个像素)即比例降低一个梯度,各梯度灰度降低值为:gd,gd*(d1-1)/d1,gd*(d1-2)/d1,……,0。其中,扩散梯度d1的取值可以根据基本区域的大小来确定。一般基本区域越大,则扩散梯度d1取值越大;一般基本区域越小,则扩散梯度d1取值越小。可以先设定扩散梯度d1,然后根据基本区域大小和设定的扩散梯度d1计算出每级梯度的像素宽度;也可以先设定每级梯度的像素宽度,然后根据基本区域大小和设定的每级梯度的像素宽度计算出扩散梯度d1;

针对每级梯度,计算每个像素调整后的灰度值(原灰度值减去灰度降低值),通过降低曝光度算法,调整其rgb值使得满足调整后的灰度值。

进行调整时,优选先调整中间孙区域b5的灰度,然后依次向外调整其它孙区域b1-b4、b6-b9,最后调整子区域a1-a4、a6-a9,直至gd<=0的梯度,即完成该区域的图像处理。

如图4所示,对于二维码中的三个定位点401(即码眼),进行如下处理:

对于三个定位点401的黑色部分,依次计算其所对应的背景图像每个像素的灰度值,若灰度值小于g1-p1,则满足要求,该像素不做处理;否则,通过降低曝光度的算法,调整该像素的rgb值,使得其满足要求;

对于三个定位点401的白色部分,依次计算其所对应的背景图像每个像素的灰度值,若灰度值大于g1+p1,则满足要求,该像素不做处理;否则,通过增加曝光度的算法,调整该像素的rgb值,使得其满足要求。

将调整曝光度后的图像输出,即为透视二维码。其效果如图5和图6所示实施例。本发明使得二维码突破原有的黑白色,并且在不消耗二维码自身容错的情况下插入图片、logo等,不仅解决了单调二维码带来的视觉疲劳,同时也增加了二维码的扫码度。本发明不仅可以应用于黑白或灰度图像,也可以应用于彩色图像。

本发明还提供一种通过上述方法生成透视二维码的装置。具体地,该透视二维码生成装置的一实施例如图7所示,包括:

输入模块701,用于选择背景图像和生成基础二维码,并将所述基础二维码划分为多个基本单元;

计算模块702,用于计算所述背景图像的平均灰度值和与基础二维码每个基本单元相对应的基本区域的平均灰度值;

判断模块703,用于判断每个基本区域的平均灰度值相对于整个背景图像平均灰度值的偏移方向是否与所述基础二维码对应基本单元一致且偏移量达到了预设值;

调整模块704,用于在所述判断模块输出的判断结果为否时,调整背景图像上基本区域的灰度值使其与所述基础二维码上对应基本单元一致且偏移量达到预设值;

输出模块705,用于输出基于所述调整模块调整后的背景图像而得到的透视二维码。

以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1