一种二维码生成方法、二维码识读方法及装置与流程

文档序号:17065902发布日期:2019-03-08 22:55阅读:189来源:国知局
一种二维码生成方法、二维码识读方法及装置与流程

本发明涉及移动应用技术领域,特别涉及一种二维码生成方法、二维码识读方法及装置。



背景技术:

随着电子商务模式的崛起,二维码已经广泛应用在电子设备之间的通信之中。比如,手机a扫描手机b展示的二维码,读取出手机b的二维码为加好友的二维码,可以实现将手机b的二维码所展示的好友,加为手机a用户的好友。

由于二维码是用某种特定的几何图形按一定规律,在二维平面分布的黑白相间的图形记录数据符号信息,这些数据符号信息可以表示加好友的信息以及手机付款的信息等等,因此可以通过二维码实现电子设备之间的通信。用户实现上述电子设备之间的通信,可以将电子设备的二维码展示在电子设备上,或者将电子设备所展示的二维码打印为纸质版的二维码,展示纸质版的二维码。

本申请发明人在实现本发明的过程中,发现目前用户使用手机扫描二维码,存在如下问题。

不论电子设备所展示的二维码,还是纸质版的二维码,一旦展示二维码,二维码的大小固定不变。由于二维码的大小固定不变,用户需要调整手机与所扫描的二维码之间的距离,比如,若没有扫描到所有二维码,就需要用户调整手机向远离所扫描的二维码移动,从而识读二维码,这样二维码的辨识方式较为单一。



技术实现要素:

本发明实施例的目的在于提供一种二维码生成方法、二维码识读方法及装置,解决目前二维码的辨识方式较为单一的问题。

具体技术方案如下:

第一方面,本发明实施提供了一种二维码生成方法,方法包括:

获取待处理二维码,所述待处理二维码包括:多个已设有亮度的区域,将已设有亮度的区域,作为被设区域,每一被设区域用于表示所述二维码的二进制序列中的一个二进制算符;

划分每一被设区域为l行×l列的重置亮度区域,所述l大于或等于2;

从与每一被设区域预先建立位置关联的l2个被设区域中,得到每一被设区域关联的l2个被设区域各自的二进制子序列,作为关联的二进制子序列,所述关联的二进制子序列是由所述每一被设区域关联的l2个被设区域各自表示的二进制算符组成的;

按照预设二进制子系列与预设重置亮度区域的重置亮度方式之间的一一对应关系,确定所述关联的二进制子序列对应的预设重置亮度区域的重置亮度方式,作为匹配的重置亮度方式;

基于每一被设区域的亮度及所述匹配的重置亮度方式,获得重置亮度区域中的l2个重置亮度;

将l2个重置亮度设置在l行×l列的重置亮度区域中,获得已处理的二维码。

进一步的,所述将l2个重置亮度设置在l行×l列的重置亮度区域中,获得已处理的二维码,包括:

将已设置重置亮度的重置亮度区域确定为被设区域,继续返回执行划分每一被设区域为l行×l列的重置亮度区域的步骤,直至达到预设划分条件,将l2个重置亮度设置在l行×l列的重置亮度区域中,获得已处理的二维码。

进一步的,所述基于每一被设区域的亮度及所述匹配的重置亮度方式,获得重置亮度区域中的l2个重置亮度,包括:

若每一被设区域的亮度大于或等于第一预设亮度,则将所述匹配的重置亮度方式中的每个重置亮度,确定为重置亮度区域各自的重置亮度;

若每一被设区域的亮度小于第一预设亮度,则将所述匹配的重置亮度方式中的每个重置亮度,与第二预设亮度之差的绝对值,确定为重置亮度区域各自的重置亮度。

进一步的,多个被设区域呈p行×p列;

采用如下步骤,每一被设区域与相关联的l2个被设区域建立位置关联:

所述每一被设区域为所述多个被设区域中第n行第m列的被设区域,所述n大于0,且小于或等于p的整数,所述m大于0,且小于或等于p的整数;

与所述每一被设区域各自相关联的l2个被设区域包括:所述多个被设区域中的第行第列的被设区域,

......,

行第列的被设区域,

......,

行第列的被设区域,

......,

行第列的被设区域。

进一步的,在按照预设二进制子系列与预设重置亮度区域的重置亮度方式之间的一一对应关系,确定所述关联的二进制子序列对应的预设重置亮度区域的重置亮度方式,作为匹配的重置亮度方式之前,所述方法还包括:

获取预设二进制子序列与预设重置亮度区域的重置亮度方式之间的多种对应关系;

从所述多种对应关系中,选择一种对应关系,作为目标对应关系;

将所述目标对应关系,确定预设二进制子序列与预设重置亮度区域的重置亮度之间的一一对应关系。

第二方面,本发明实施提供了一种二维码识读方法,所述二维码识读方法包括:

扫描二维码;

获取所述二维码中每个被设区域被划分的规则以及,基于被划分的规则,从所述二维码中扫描到的多个被设区域,所述每个被设区域被划分的规则为划分每一被设区域为l行×l列的重置亮度区域,所述被设区域已设有亮度;

若所述扫描到的多个被设区域的区域数量小于预设区域数量,则从所述扫描到的多个被设区域中,获取重置亮度区域的区域数量,所述预设区域数量为所述二维码的所有被设区域的区域总数;

若所述重置亮度区域的区域数量大于或等于所述预设区域数量,则读取所述重置亮度区域设有的亮度,所述重置亮度区域设有的亮度是基于每一被设区域的亮度,与关联的l2个被设区域各自的亮度获得的,所述每一被设区域关联的l2个被设区域各自的亮度是从与每一被设区域预先建立位置关联的l2个被设区域中得到的;

按照预设二进制子系列与预设重置亮度区域的重置亮度方式之间的一一对应关系,将所述重置亮度区域设有的亮度,确定每一被设区域关联的l2个被设区域各自的二进制子序列,作为关联的二进制子序列,所述关联的二进制子序列是由所述每一被设区域关联的l2个被设区域各自表示的二进制算符组成的;

将所述关联的二进制子序列,生成二进制序列。

进一步的,所述方法还包括:

若所述扫描到的多个被设区域的区域数量大于或等于预设区域数量,则从所述扫描到的多个被设区域中,获取每一被设区域各自划分的所述重置亮度区域设有的亮度;

将每一被设区域各自划分的所述重置亮度区域设有的亮度求平均值,得到每一被设区域的亮度平均值;

若每一被设区域的亮度平均值高于第二预设亮度,则将每一被设区域的亮度平均值映射为第一二进制算符;

若每一被设区域的亮度平均值低于所述第二预设亮度,则将每一被设区域的亮度平均值映射为第二二进制算符,所述第一二进制算符和所述第二二进制算符的数值不同。

第三方面,本发明实施提供了一种二维码生成装置,所述装置包括:

第一获取模块,用于获取待处理二维码,所述待处理二维码包括:多个已设有亮度的区域,将已设有亮度的区域,作为被设区域,每一被设区域用于表示所述二维码的二进制序列中的一个二进制算符;

划分模块,用于划分每一被设区域为l行×l列的重置亮度区域,所述l大于或等于2;

查找模块,用于从与每一被设区域预先建立位置关联的l2个被设区域中,得到每一被设区域关联的l2个被设区域各自的二进制子序列,作为关联的二进制子序列,所述关联的二进制子序列是由所述每一被设区域关联的l2个被设区域各自表示的二进制算符组成的;

第一确定模块,用于按照预设二进制子系列与预设重置亮度区域的重置亮度方式之间的一一对应关系,确定所述关联的二进制子序列对应的预设重置亮度区域的重置亮度方式,作为匹配的重置亮度方式;

第一获得模块,用于基于每一被设区域的亮度及所述匹配的重置亮度方式,获得重置亮度区域中的l2个重置亮度;

第二获得模块,用于将l2个重置亮度设置在l行×l列的重置亮度区域中,获得已处理的二维码。

进一步的,所述第二获得模块,具体用于:

将已设置重置亮度的重置亮度区域确定为被设区域,继续返回执行划分每一被设区域为l行×l列的重置亮度区域的步骤,直至达到预设划分条件,将l2个重置亮度设置在l行×l列的重置亮度区域中,获得已处理的二维码。

进一步的,所述第一获得模块,具体用于:

若每一被设区域的亮度大于或等于第一预设亮度,则将所述匹配的重置亮度方式中的每个重置亮度,确定为重置亮度区域各自的重置亮度;

若每一被设区域的亮度小于第一预设亮度,则将所述匹配的重置亮度方式中的每个重置亮度,与第二预设亮度之差的绝对值,确定为重置亮度区域各自的重置亮度。

进一步的,多个被设区域呈p行×p列,所述装置还包括:建立模块,所述建立模块,用于:

采用如下步骤,每一被设区域与相关联的l2个被设区域建立位置关联:

所述每一被设区域为所述多个被设区域中第n行第m列的被设区域,所述n大于0,且小于或等于p的整数,所述m大于0,且小于或等于p的整数;

与所述每一被设区域各自相关联的l2个被设区域包括:所述多个被设区域中的第行第列的被设区域,

......,

行第列的被设区域,

......,

行第列的被设区域,

......,

行第列的被设区域。

进一步的,所述装置还包括:

第二获取模块,用于获取预设二进制子序列与预设重置亮度区域的重置亮度方式之间的多种对应关系;

选择模块,用于从所述多种对应关系中,选择一种对应关系,作为目标对应关系;

第二确定模块,用于将所述目标对应关系,确定预设二进制子序列与预设重置亮度区域的重置亮度之间的一一对应关系。

第四方面,本发明实施提供了一种二维码识读装置,所述二维码识读装置包括:

第一读取模块,用于扫描二维码;

第三获取模块,用于获取所述二维码中每个被设区域被划分的规则以及,基于被划分的规则,从所述二维码中扫描到的多个被设区域,所述每个被设区域被划分的规则为划分每一被设区域为l行×l列的重置亮度区域,所述被设区域已设有亮度;

第四获取模块,用于若所述扫描到的多个被设区域的区域数量小于预设区域数量,则从所述扫描到的多个被设区域中,获取重置亮度区域的区域数量,所述预设区域数量为所述二维码的所有被设区域的区域总数;

第二读取模块,用于若所述重置亮度区域的区域数量大于或等于所述预设区域数量,则读取所述重置亮度区域设有的亮度,所述重置亮度区域设有的亮度是基于每一被设区域的亮度,与关联的l2个被设区域各自的亮度获得的,所述每一被设区域关联的l2个被设区域各自的亮度是从与每一被设区域预先建立位置关联的l2个被设区域中得到的;

第三确定模块,用于按照预设二进制子系列与预设重置亮度区域的重置亮度方式之间的一一对应关系,将所述重置亮度区域设有的亮度,确定每一被设区域关联的l2个被设区域各自的二进制子序列,作为关联的二进制子序列,所述关联的二进制子序列是由所述每一被设区域关联的l2个被设区域各自表示的二进制算符组成的;

生成模块,用于将所述关联的二进制子序列,生成二进制序列。

进一步的,所述装置还包括:

第五获取模块,用于若所述扫描到的多个被设区域的区域数量大于或等于预设区域数量,则从所述扫描到的多个被设区域中,获取每一被设区域各自划分的所述重置亮度区域设有的亮度;

第三获得模块,用于将每一被设区域各自划分的所述重置亮度区域设有的亮度求平均值,得到每一被设区域的亮度平均值;

第一映射模块,用于若每一被设区域的亮度平均值高于第二预设亮度,则将每一被设区域的亮度平均值映射为第一二进制算符;

第二映射模块,用于若每一被设区域的亮度平均值低于所述第二预设亮度,则将每一被设区域的亮度平均值映射为第二二进制算符,所述第一二进制算符和所述第二二进制算符的数值不同。

第五方面,本发明实施提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现第一方面所述的方法步骤。

第六方面,本发明实施提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现第二方面所述的方法步骤。

第七方面,本发明实施提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面任一的方法。

第八方面,本发明实施提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第二方面任一的方法。

第九方面,本发明实施还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面任一的方法。

第十方面,本发明实施还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第二方面任一的方法。

本发明实施例提供的一种二维码生成方法,将待处理二维码中每个被设区域,划分为l行×l列的重置亮度区域;从与每一被设区域预先建立位置关联的l2个被设区域中,得到每一被设区域关联的l2个被设区域各自的二进制子序列,作为关联的二进制子序列,关联的二进制子序列是由每一被设区域关联的l2个被设区域各自表示的二进制算符组成的;按照预设二进制子系列与预设重置亮度区域的重置亮度方式之间的一一对应关系,确定关联的二进制子序列对应的预设重置亮度区域的重置亮度方式,作为匹配的重置亮度方式;基于每一被设区域的亮度及匹配的重置亮度方式,获得重置亮度区域中的l2个重置亮度;将l2个重置亮度设置在l行×l列的重置亮度区域中,获得已处理的二维码。

由此可见,待处理二维码中的每个被设区域,划分为l行×l列的重置亮度区域,重置亮度区域的大小为被设区域的相当于1/l2倍,并且所有重置亮度区域各自的重置亮度来自于待处理二维码的所有被设区域的亮度,相当于,在待处理二维码的被设区域中,嵌入了重置亮度区域的重置亮度。这样,不仅待处理二维码的所有被设区域,展示待处理二维码所有被设区域的亮度,而且,重置亮度区域,也展示待处理二维码被设区域的亮度,从而可以通过在二维码的被设区域和重置亮度区域来辨识已处理的二维码,增加了已处理的二维码的辨识方式,也提高了已处理的二维码的信息承载能力。

本发明实施例提供的一种二维码识读方法,获取二维码的每个被设区域被划分的规则,基于每个被设区域被划分的规则,从二维码中扫描到的多个被设区域;若多个被设区域的区域数量小于预设区域数量,则从多个被设区域中,获取重置亮度区域的区域数量;若重置亮度区域的区域数量大于或等于预设区域数量,则读取重置亮度区域设有的亮度,将重置亮度区域设有的亮度,按照预设二进制子系列与预设重置亮度区域的重置亮度方式之间的一一对应关系,将重置亮度区域设有的亮度,确定每一被设区域关联的l2个被设区域各自的二进制子序列,作为关联的二进制子序列,关联的二进制子序列是由每一被设区域关联的l2个被设区域各自表示的二进制算符组成的;将关联的二进制子序列,生成二进制序列。

由此可见,相较于现有技术,若只扫描到二维码中部分区域,也就是重置亮度区域,并不是所有的被设区域,且扫描的二维码中,重置亮度区域的数量大于或等于预设区域数量,则读取重置亮度区域设有的亮度,映射成二进制序列,不需要用户调整手机与所扫描的二维码之间的距离,提高了二维码的辨识度,提高用户信息获取的效率。

当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1为本发明实施例提供的二维码生成方法的第一流程示意图;

图2为本发明实施例提供的图1中步骤150的具体流程示意图;

图3为本发明实施例提供的二维码生成方法的第二流程示意图;

图4为本发明实施例的待处理二维码的示意图;

图5为本发明实施例的已处理的二维码的第一示意图;

图6为本发明实施例的已处理的二维码的第二示意图;

图7为本发明实施例提供的二维码生成方法的第一流程示意图;

图8为本发明实施例的二维码生成装置的结构示意图;

图9为本发明实施例的二维码识读装置的结构示意图;

图10为本发明实施例二维码生成装置对应的电子设备的结构示意图;

图11为本发明实施例为二维码识读装置对应的电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

为了解决现有技术二维码的辨识方式较为单一的问题,本发明实施例提供一种二维码生成方法、二维码识读方法及装置,将待处理二维码中每个被设区域,划分为l行×l列的重置亮度区域;从与每一被设区域预先建立位置关联的l2个被设区域中,得到每一被设区域关联的l2个被设区域各自的二进制子序列,作为关联的二进制子序列,关联的二进制子序列是由每一被设区域关联的l2个被设区域各自表示的二进制算符组成的;按照预设二进制子系列与预设重置亮度区域的重置亮度方式之间的一一对应关系,确定关联的二进制子序列对应的预设重置亮度区域的重置亮度方式,作为匹配的重置亮度方式;基于每一被设区域的亮度及匹配的重置亮度方式,获得重置亮度区域中的l2个重置亮度;将l2个重置亮度设置在l行×l列的重置亮度区域中,获得已处理的二维码。

由此可见,待处理二维码中的每个被设区域,划分为l行×l列的重置亮度区域,重置亮度区域的大小为被设区域的相当于1/l2倍,并且所有重置亮度区域各自的重置亮度来自于待处理二维码的所有被设区域的亮度,相当于,在待处理二维码的被设区域中,嵌入了重置亮度区域的重置亮度。这样,不仅待处理二维码的所有被设区域,展示待处理二维码所有被设区域的亮度,而且,重置亮度区域,也展示待处理二维码被设区域的亮度,从而可以通过在二维码的被设区域和重置亮度区域来辨识已处理的二维码,增加了已处理的二维码的辨识方式,也提高了已处理的二维码的信息承载能力。相较于现有技术,若只扫描到二维码中部分区域,也就是重置亮度区域,并不是所有的被设区域,且扫描的二维码中,重置亮度区域的数量大于或等于预设区域数量,则读取重置亮度区域设有的亮度,映射成二进制序列,不需要用户调整手机与所扫描的二维码之间的距离,提高了二维码的辨识度,提高用户信息获取的效率。

第一方面,下面首先对本发明实施例提供的一种二维码生成方法进行介绍。

本发明实施例所提供的二维码生成方法可以应用的行业,比如物流行业,进一步的,应用于商场、超市等批发零售行业。本发明实施例所提供的二维码生成方法可以应用的电子设备,比如移动终端,进一步的,pos(pointofsale,销售网点系统)机,智能手机等。

参见图1,图1为本发明实施例提供的二维码生成方法的第一流程示意图。本发明实施例所提供的一种二维码生成方法,可以包括如下步骤:

步骤110,获取待处理二维码,待处理二维码包括:多个已设有亮度的区域,将已设有亮度的区域,作为被设区域,每一被设区域用于表示二维码的二进制序列中的一个二进制算符。

本发明实施例需要对二维码进行重置亮度的处理,因此,将这个二维码称为待处理二维码。本发明实施例这个待处理二维码,可以与最终的已处理的二维码进行区分。待处理二维码说明需要对二维码进行重置亮度,而,已处理的二维码是指已经完成对待处理二维码进行重置亮度的二维码。

本发明实施例中待处理二维码所呈现出来的黑白相间的图形,这些图形用于记录数据符号信息,示例性的,数据符号信息包括:零售商品、储运包装商品、物流单元及二维码标识。这些黑白相间的图形中的每个黑块图形/白块图形,分别可以称为黑色块/白色块。这里的黑色块和白色块可以统称为色块。每个色块在待处理二维码中的位置,称为被设区域。也就是说,设有亮度的被设区域,可以称为色块。这些被设区域可以是指待处理二维码中未被划分的被设区域,也可以是待处理二维码中已被划分并且重置亮度的被设区域,只要是包含有亮度,并且属于二维码中的已设有亮度的区域,均属于本发明实施例被设区域。若待处理二维码的被设区域是未被划分过的被设区域,则这个被设区域内的亮度,就是待处理二维码中的原有的亮度;若待处理二维码的被设区域是已被划分并且重置亮度的被设区域,则这个被设区域内的亮度,就是待处理二维码中的被设区域内的重置亮度。相当于,上述亮度包括:原有的亮度及重置亮度,具体的亮度,根据实际情况决定。

为了能够获取到待处理二维码,本步骤110可以采用如下至少一种可能的实现方式获取待处理二维码,具体包括:

在一种可能的实现方式中,从预设的二维码数据库中,获取任一二维码,将这个二维码作为,待处理二维码;预设的二维码数据库用于存储用户预先存储的所需二维码。这样方便用户直接获取到待处理二维码。

由于上述预设的二维码数据库存在占用内存的问题,因此为解决此问题,在另一种可能的实现方式中,接收用户输入的二维码的二进制序列,基于二进制序列的预设规则,生成待处理二维码。这样用户可以实时输入二进制序列,减少上述预设的二维码数据库的占用内存,及时地生成待处理二维码,也满足用户及时输入二维码的要求。

上述二进制序列是由二进制算符组成,其中二进制算符分别为0,1。第一二进制算符为二进制算符中的一个,第二二进制算符为二进制算符中的另一个。比如,第一二进制算符为0,第二二进制算符为1;第二二进制算符为1,第一二进制算符为0。上述另一种可能的实现方式中采用如下的二进制序列的预设规则,生成待处理二维码:

将二维码的二进制序列的每四位二进制数,划分为一组二进制子序列;将所有组的二进制子序列,生成待处理二维码。这样方便后续使用对每组二进制子序列进行处理,方便后期利用每四个二进制数所在被设区域进行解码。

步骤120,划分每一被设区域为l行×l列的重置亮度区域,所述l大于或等于2。

其中,一般待处理二维码中未划分的被设区域的亮度为黑色或白色,可以通过扫描待处理二维码的被设区域的亮度或重置亮度区域的重置亮度,进而识读得到二进制序列。一般待处理二维码中为1的二进制算符可以映射为白色块,也就是,被设区域的亮度可以为白色,亮度数值为255;二维码中为0的二进制算符可以映射为黑色块,也就是,被设区域的亮度可以为黑色,亮度数值为0。重置亮度区域是划分被设区域后,所划分得到的区域。

本步骤120中,划分每一被设区域为l行×l列的重置亮度区域具体包括:不规则划分每一被设区域为l行×l列的重置亮度区域。只要能够展示各自的重置亮度的重置亮度区域,均属于本发明实施例保护范围。

由于不规则划分每一被设区域可能会使得二维码展示出来的重置亮度区域大小不一,不方便统一调整重置亮度区域的大小,也会使得用户直观感觉不适,因此为了解决这个问题,本发明实施例步骤120可以采用如下至少一种可能的实现方式,划分每一被设区域为l行×l列的重置亮度区域:

在一种可能的实现方式中,均匀划分分每一被设区域为l行×l列的重置亮度区域。这样可以按照统一设置的所需划分的个数,划分每一被设区域,并且,能够方便均匀的展示重置亮度区域,提高用户舒适度。

步骤130,从与每一被设区域预先建立位置关联的l2个被设区域中,得到每一被设区域关联的l2个被设区域各自的二进制子序列,作为关联的二进制子序列,关联的二进制子序列是由所述每一被设区域关联的l2个被设区域各自表示的二进制算符组成的。

上述与每一被设区域预设建立位置关联的l2个被设区域,也就是每一被设区域与相关联的l2个被设区域建立位置关联,是基于每一被设区域,建立与相关联的l2个被设区域的位置关联。具体可根据用户需要或者工业需求,所建立的位置关联。

为了能够确定待处理二维码中每一被设区域与相关联的l2个被设区域,因此本步骤130可以采用如下步骤,每一被设区域与相关联的l2个被设区域建立位置关联:

多个被设区域呈p行×p列;每一被设区域为多个被设区域中第n行第m列的被设区域,其中n大于0,且小于或等于p的整数,m大于0,且小于或等于p的整数;

与每一被设区域各自相关联的l2个被设区域包括:多个被设区域中的第行第列的被设区域,其中,i∈(0,l],j∈(0,l],i,j均为正整数。每次从i∈(0,l]中依次为i取一个固定取值时,从j∈(0,l]中依次为j取不同值,得到与每一被设区域各自相关联的l2个被设区域;或者,每次从j∈(0,l]中依次i取一个固定取值时,从i∈(0,l]中依次给j取不同值,得到与每一被设区域各自相关联的l2个被设区域。具体的,参见如下:

与每一被设区域各自相关联的l2个被设区域包括:多个被设区域中的第行第列的被设区域,

......,

行第列的被设区域,

......,

行第列的被设区域,

......,

行第列的被设区域。

第一示例,在l的取值为2时,l2的取值为4,重置亮度区域呈2行×2列;p=24,多个被设区域呈24行×24列,每一被设区域与相关联的l2个被设区域建立位置关联:

每一被设区域为多个被设区域中第n行第m列的被设区域,n大于0,且小于或等于p的整数,m大于0,且小于或等于p的整数;

与每一被设区域各自相关联的22个被设区域包括:多个被设区域中的第2[(n-1)mod12]+1行第2[(m-1)mod12]+1列的被设区域,第2[(n-1)mod12]+1行第2[(m-1)mod12]+2列的被设区域,第2[(n-1)mod12]+2行第2[(m-1mod12+1列的被设区域,以及第2n-1mod12+2行第2m-1mod12+2列的被设区域。

这样可以每一被设区域与各自相关联的4个被设区域建立位置关系,方便在掌握每一被设区域的情况下,直接使用与每一被设区域各自相关联的4个被设区域。

第二示例,在l的取值为4时,l2的取值为16,重置亮度区域呈4行×4列;p=24,多个被设区域呈24行×24列。这里可以通过两种方式实现取值为16的l2。其中,一种实现方式,可以通过两次划分每一被设区域完成的。具体的,

已划分每一被设区域为2行×2列的重置亮度区域,并且该2行×2列的重置亮度区域已设置重置亮度,再重新将已设置重置亮度的重置亮度区域确定为被设区域;将重新确定的被设区域划分为2行×2列的重置亮度区域,对重新确定的重置亮度区域,进而得到呈4行×4列的重置亮度区域。

这样,按照上述第一示例,将每一被设区域与相关联的l2个被设区域建立位置进行两次关联,既可,完成在重置亮度区域呈4行×4列时,每一被设区域与相关联的l2个被设区域建立位置关联的过程。

另一种实现方式,每一被设区域为所述多个被设区域中第n行第m列的被设区域,所述n大于0,且小于或等于p的整数,所述m大于0,且小于或等于p的整数;

与每一被设区域各自相关联的42个被设区域包括:多个被设区域中的第4[(n-1)mod12]+1行第4[(m-1)mod12]+1列的被设区域,

第4[(n-1)mod12]+1行第4[(m-1)mod12]+2列的被设区域,

第4[(n-1)mod12]+1行第4[(m-1)mod12]+3列的被设区域,

第4[(n-1)mod12]+1行第4[(m-1)mod12]+4列的被设区域,

第4[(n-1)mod12]+2行第4[(m-1)mod12]+1列的被设区域,

第4[(n-1)mod12]+2行第4[(m-1)mod12]+2列的被设区域,

第4[(n-1)mod12]+2行第4[(m-1)mod12]+3列的被设区域,

第4[(n-1)mod12]+2行第4[(m-1)mod12]+4列的被设区域,

第4[(n-1)mod12]+3行第4[(m-1)mod12]+1列的被设区域,

第4[(n-1)mod12]+3行第4[(m-1)mod12]+2列的被设区域,

第4[(n-1)mod12]+3行第4[(m-1)mod12]+3列的被设区域,

第4[(n-1)mod12]+3行第4[(m-1)mod12]+4列的被设区域,

第4[(n-1)mod12]+4行第4[(m-1)mod12]+1列的被设区域,

第4[(n-1)mod12]+4行第4[(m-1)mod12]+2列的被设区域,

第4[(n-1)mod12]+4行第4[(m-1)mod12]+3列的被设区域,以及,

第4[(n-1)mod12]+4行第2[(m-1)mod12]+4列的被设区域。

这样可以每一被设区域与各自相关联的16个被设区域建立位置关系,方便在掌握每一被设区域的情况下,直接使用与每一被设区域各自相关联的16个被设区域。

步骤140,按照预设二进制子系列与预设重置亮度区域的重置亮度方式之间的一一对应关系,确定关联的二进制子序列对应的预设重置亮度区域的重置亮度方式,作为匹配的重置亮度方式。

本发明实施例中二维码中未划分的被设区域的亮度,称为被设区域的亮度。这个被设区域的亮度,可以与重置亮度进行区分。本发明实施例的重置亮度是指需要对重置亮度区域所重新设置的亮度。

预设二进制子序列是指预先设置的二进制子序列。预设重置亮度区域为预先设置的重置亮度区域。预设重置亮度区域包括:每一被设区域划分的l2个重置亮度区域,该重置亮度区域为l行×l列。示例性的,l=3,3行×3列的重置亮度区域。

一个预设二进制子序列与预设重置亮度区域的一种重置亮度方式对应,并且上述重置亮度可以是定义亮度。该重置亮度所设置的重置亮度区域的总数量为1,示例性的重置亮度为0。该重置亮度所设置的重置亮度区域的总数量与划分的呈l行×l列矩阵的l2个重置亮度区域相关,不做限制。重置亮度的总亮度越高,抗噪声能力越低。进一步的,该重置亮度所设置的重置亮度区域的总数量是2个小于l2/2的整数。在l=3时,示例性的,该重置亮度所设置的重置亮度区域的总数量是2个小于4,比如该重置亮度所设置的重置亮度区域的总数量为1或2。这样取重置亮度所设置的重置亮度区域的总数量越少,抗噪声能力越高。

示例性的,具体的,步骤142,采用2个重置亮度,重置亮度分别为0和255,在重置亮度为0的情况下,该重置亮度所设置的重置亮度区域的总数量是1个,然后使用重置亮度来代表分别为0000预设二进制子序列至为0110预设二进制子序列这8种情况:

预设二进制子序列为0000,在3行×3列的重置亮度区域的第1行第1个重置亮度区域设置为0的重置亮度,其余重置亮度区域设置为255的重置亮度;

预设二进制子序列为0001,在3行×3列的重置亮度区域的第1行第2个重置亮度区域设置为0的重置亮度,其余重置亮度区域设置为255的重置亮度;

预设二进制子序列为0010,在3行×3列的重置亮度区域的第1行第3个重置亮度区域设置为0的重置亮度,其余重置亮度区域设置为255的重置亮度;

预设二进制子序列为0011,在3行×3列的重置亮度区域的第2行第1个重置亮度区域设置为0的重置亮度,其余重置亮度区域设置为255的重置亮度;

预设二进制子序列为0100,在3行×3列的重置亮度区域的第2行第3个重置亮度区域设置为0的重置亮度,其余重置亮度区域设置为255的重置亮度;

预设二进制子序列为0101,在3行×3列的重置亮度区域的第3行第1个重置亮度区域设置为0的重置亮度,其余重置亮度区域设置为255的重置亮度;

预设二进制子序列为0110,在3行×3列的重置亮度区域的第3行第2个重置亮度区域设置为0的重置亮度,其余重置亮度区域设置为255的重置亮度;

预设二进制子序列为0110,在3行×3列的重置亮度区域的第3行第3个重置亮度区域设置为0的重置亮度,其余重置亮度区域设置为255的重置亮度;

预设二进制子序列为0110,在3行×3列的重置亮度区域的第3行第3个重置亮度区域设置为0的重置亮度,其余重置亮度区域设置为255的重置亮度。

该重置亮度所设置的重置亮度区域的总数量为2个,重置亮度分别为0和255,在重置亮度为0的情况下,该重置亮度所设置的重置亮度区域的总数量是2个,来代表为0111预设二进制子序列至为1111预设二进制子序列这8种情况:

除了将上述3行×3列的重置亮度区域中的第2行第2个重置亮度区域原本设置为255的重置亮度,均替换成为0的重置亮度,其他重置亮度的方式,均与上述采用一个重置亮度,来代表为0000预设二进制子序列至为0110预设二进制子序列的的重置亮度方式相同,这样可以在重置亮度为0的情况下,使用2个该重置亮度,来分别代表0111,1000,1001,1010,1011,1100,1101,1110,1111等预设二进制子序列。这样方便后期直接使用预设二进制子序列与对应的预设重置亮度区域的重置亮度方式。

对于预设二进制子序列与对应的预设重置亮度区域,为了满足用户需求,不仅可以设置预设二进制子系列与预设重置亮度区域的重置亮度方式之间的一种对应关系,而且,还可以设置预设二进制子系列与预设重置亮度区域的重置亮度方式之间的多种对应关系。进一步的,在本发明实施例本步骤140之前,可以采用如下一种可能的实现方式,确定预设二进制子序列与预设重置亮度区域的重置亮度之间的一一对应关系:

第一步骤,获取预设二进制子序列与预设重置亮度区域的重置亮度方式之间的多种对应关系。

本步骤中,预设重置亮度区域的重置亮度方式:包括:3行×3列的重置亮度区域中,设置的重置亮度的一种或多种方式。3行×3列的重置亮度区域中,设置的重置亮度的一种或多种方式中的重置亮度可以是:一个预设重置亮度区域设置的重置亮度与其余重置亮度区域设置的重置亮度不同;以及两个预设重置亮度区域设置的重置亮度与其余重置亮度区域设置的重置亮度不同,以及l2/2的整数个预设重置亮度区域设置的重置亮度与其余重置亮度区域设置的重置亮度不同。

本步骤,从预先存储的预设二进制子序列,与预设重置亮度区域的重置亮度方式之间的多种对应关系中,获取这些多种对应关系。这些多种对应关系,可以包括:同一二进制序列预先与预设重置亮度区域设置预设数量个不同数量的重置亮度的多种方式相对应。

示例性的,除了上述步骤142中,采用2个重置亮度,重置亮度分别为0和255,在重置亮度为0的情况下,该重置亮度所设置的重置亮度区域的总数量是1个,来代表为0000预设二进制子序列至为0110预设二进制子序列这8种情况以外,还可以采用在重置亮度为0的情况下,该重置亮度所设置的重置亮度区域的总数量是2个,来代表为0000预设二进制子序列至为0110预设二进制子序列这8种情况;也还可以在重置亮度为0的情况下,该重置亮度所设置的重置亮度区域的总数量是3个,来代表为0000预设二进制子序列至为0110预设二进制子序列这8种情况。在此不一一举例,将这些所有的对应关系预先存储起来。方便后期能够使用。

第二步骤,从多种对应关系中,选择一种对应关系,作为目标对应关系。这个目标对应关系是根据用户需求选择的一种对应关系,满足用户需求的对应关系;目标对应关系也可以是随机选择的一种对应关系,满足用户不愿意选择,而自动选择的需求。对应关系还可以是选择所默认的一种对应关系。这个所默认的一种对应关系可以是根据统计多个用户的使用历史数据,从使用历史数据获取使用的频次最高对应的对应关系。这样可以满足大部分用户的需求。

第三步骤,将目标对应关系,确定预设二进制子序列与预设重置亮度区域的重置亮度之间的一一对应关系。

这样,可以从多个目标对应关系,选择满足用户的需求的对应关系。

步骤150,基于每一被设区域的亮度及匹配的重置亮度方式,获得重置亮度区域中的l2个重置亮度。

步骤150,具体包括:利用每一被设区域对应的l行×l列的重置亮度区域的重置亮度方式,得到每一被设区域所划分对应的l行×l列的重置亮度区域各自的重置亮度。这样可以确定出所有被设区域的亮度,所划分对应的l行×l列的重置亮度区域各自的重置亮度。

步骤160,将l2个重置亮度设置在l行×l列的重置亮度区域中,获得已处理的二维码。

若针对所有的重置亮度区域,将重置亮度已经完成设置在各自的重置亮度区域中,目前只需要获得已处理的二维码,则本步骤150可以采用如下至少一种实现方式,将l2个重置亮度设置在l行×l列的重置亮度区域中,获得已处理的二维码:

针对所有的重置亮度区域,将l2个重置亮度设置在l行×l列的重置亮度区域中,将已经完成重置亮度的所有重置亮度区域,生成已处理的二维码。这样可以需要进行本次重置亮度,得到所需的已处理的二维码,方便快速地得到所需的已处理的二维码。

若针对所有的重置亮度区域,将l2个重置亮度设置在l行×l列的重置亮度区域中,还需要对已经完成设置重置亮度的重置亮度区域,再进行重置亮度,最终获得已处理的二维码,则本步骤150可以采用如下步骤实现将l2个重置亮度设置在l行×l列的重置亮度区域中,获得已处理的二维码:

针对所有的重置亮度区域,将已设置重置亮度设置的重置亮度区域,确定为被设区域,继续返回执行划分每一被设区域为l行×l列的重置亮度区域的步骤,直至达到预设划分条件,将l2个重置亮度设置在l行×l列的重置亮度区域中,获得已处理的二维码,也就是将已经完成重置亮度的所有重置亮度区域,生成已处理的二维码。这样可以进行多次重置亮度,满足不同用户的需求,也可以通过多次设置的重置亮度区域,分别展示一个完整二维码的亮度,增加了已处理的二维码的辨识方式。后续用户可以利用任一个二维码的亮度,识读重置亮度区域设有的亮度,映射成二进制序列,不需要用户调整手机与所扫描的二维码之间的距离,提高了二维码的辨识度,提高用户信息获取的效率。

这里的预设划分条件是根据用户需求进行设置的。比如,预设划分条件为被设区域开始划分的份数为4份,也就是l2的取值为4;被设区域结束划分的份数为16份,也就是l2的取值为16。只要能够满足使用本发明实施例的二维码生成方法进行任何划分的预设划分条件,均属于本发明实施例的保护范围。一般4份都可以展示一个完整二维码的亮度,已经可以满足用户的需求,16份都可以展示一个完整二维码的亮度,满足用户更高的需求,如果份数大于16份,可能会增加计算量,但是并不做限定。

本发明实施例的二维码生成方法,待处理二维码中的每个被设区域,划分为l行×l列的重置亮度区域,重置亮度区域的大小为被设区域的相当于1/l2倍,并且所有重置亮度区域各自的重置亮度来自于待处理二维码的所有被设区域的亮度,相当于,在待处理二维码的被设区域中,嵌入了重置亮度区域的重置亮度。这样,不仅待处理二维码的所有被设区域,展示待处理二维码所有被设区域的亮度,而且,重置亮度区域,也展示待处理二维码被设区域的亮度,从而可以通过在二维码的被设区域和重置亮度区域来辨识已处理的二维码,增加了已处理的二维码的辨识方式,也提高了已处理的二维码的信息承载能力。

结合上述图1所示的实施例,参见图2,图2为本发明实施例提供的图1中步骤150的一种可能的实现方式:

步骤151,判断每一被设区域的亮度是否小于第一预设亮度,若否,说明每一被设区域的亮度较大,则执行步骤152;若是,说明每一被设区域的亮度较大,则执行步骤153;

上述的第一预设亮度可以根据用户需要进行设置。第一预设亮度一般设置为[255/2],也就是,第一预设亮度为128,这样方便快速得到第一预设亮度;在l2的取值为4时,第一预设亮度也可以是在85与170之间取任一数值;在l2的取值为16时,第一预设亮度也可以是在113与142之间取任一数值。用户可以根据需求进行设置,在此不做限定

步骤152,将匹配的重置亮度方式中的每个重置亮度,确定为重置亮度区域各自的重置亮度。

示例性的,被设区域的亮度为0,第一预设亮度为128,在匹配的重置亮度方式中的每个重置亮度为在3行×3列的重置亮度区域的第3行第3个重置亮度区域设置为0的重置亮度,其余重置亮度区域设置为255的重置亮度的情况下,并且被设区域的亮度为0时,此时被设区域的亮度小于第一预设亮度,那么重置亮度区域中的第3行第3个重置亮度区域设置为0的重置亮度,其余重置亮度区域设置为255的重置亮度,也就是,重置亮度区域各自的重置亮度与匹配的重置亮度方式中的每个重置亮度一一对应相同。因此相当于使用了匹配的重置亮度方式中的每个重置亮度。这样方便后期进行二维码的解码。

步骤153,将匹配的重置亮度方式中的每个重置亮度,与第二预设亮度之差的绝对值,确定为重置亮度区域各自的重置亮度。

第二预设亮度可以取不小于128的任意数值,只要能够区分被设区域的亮度既可。示例性的,被设区域的亮度为255,第一预设亮度为128,第二预设亮度为255,在匹配的重置亮度方式中的每个重置亮度为在3行×3列的重置亮度区域的第3行第3个重置亮度区域设置为0的重置亮度,其余重置亮度区域设置为255的重置亮度的情况下,并且被设区域的亮度为255时,此时被设区域的亮度大于第一预设亮度,那么重置亮度区域中的第3行第3个重置亮度区域设置为|0-255|的重置亮度,其余重置亮度区域设置为|255-255|的重置亮度,也就是,重置亮度区域各自的重置亮度与匹配的重置亮度方式中的每个重置亮度一一对应取反。因此相当于取反匹配的重置亮度方式中的每个重置亮度来使用,这样方便区分被设区域的亮度及二进制算符,进而方便二维码识读方法。

具体的,步骤152,采用2种重置亮度,这两种重置亮度分别为0和255,来代表为0000预设二进制子序列至为0110预设二进制子序列这8种情况:

预设二进制子序列为0000,在3行×3列的重置亮度区域的第1行第1个重置亮度区域中设置为|0-255|的重置亮度,其余重置亮度区域中设置为|255-255|的重置亮度;

预设二进制子序列为0001,在3行×3列的重置亮度区域的第1行第2个重置亮度区域中设置为|0-255|的重置亮度,其余重置亮度区域中设置为|255-255|的重置亮度;

预设二进制子序列为0010,在3行×3列的重置亮度区域的第1行第3个重置亮度区域中设置为|0-255|的重置亮度,其余重置亮度区域中设置为|255-255|的重置亮度;

预设二进制子序列为0011,在3行×3列的重置亮度区域的第2行第1个重置亮度区域中设置为|0-255|的重置亮度,其余重置亮度区域中设置为|255-255|的重置亮度;

预设二进制子序列为0100,在3行×3列的重置亮度区域的第2行第3个重置亮度区域中设置为|0-255|的重置亮度,其余重置亮度区域中设置为|255-255|的重置亮度;

预设二进制子序列为0101,在3行×3列的重置亮度区域的第3行第1个重置亮度区域中设置为|0-255|的重置亮度,其余重置亮度区域中设置为|255-255|的重置亮度;

预设二进制子序列为0110,在3行×3列的重置亮度区域的第3行第2个重置亮度区域中设置为|0-255|的重置亮度,其余重置亮度区域中设置为|255-255|的重置亮度;

预设二进制子序列为0110,在3行×3列的重置亮度区域的第3行第3个重置亮度区域中设置为|0-255|的重置亮度,其余重置亮度区域中设置为|255-255|的重置亮度;

预设二进制子序列为0110,在3行×3列的重置亮度区域的第3行第3个重置亮度区域中设置为|0-255|的重置亮度,其余重置亮度区域中设置为|255-255|的重置亮度。

本发明实施例,将匹配的重置亮度方式中的每个重置亮度,确定为重置亮度区域各自的重置亮度;反之,则将匹配的重置亮度方式中的每个重置亮度,与第二预设亮度之差的绝对值,确定为重置亮度区域各自的重置亮度。这样可以利用不同重置亮度区域的重置亮度,来区分被设区域的亮度,不仅待处理二维码的所有被设区域,展示待处理二维码所有被设区域的亮度,而且,重置亮度区域,也展示待处理二维码被设区域的亮度,从而可以通过在二维码的被设区域和重置亮度区域来辨识已处理的二维码,增加了已处理的二维码的辨识方式,也提高了已处理的二维码的信息承载能力。后期可以利用被设区域的亮度及重置亮度区域的亮度,识读已处理二维码。

参见图3所示,本发明实施例的具体实现流程举例如下。

先说明一下,图4、图5及图6中只示意了图4中的一个待处理二维码的被设区域w以及p=16。

步骤210,获取待处理二维码,待处理二维码包括:多个已设有亮度的区域,将已设有亮度的区域,作为被设区域,每一被设区域用于表示二维码的二进制序列中的一个二进制算符。

图4中的待处理二维码的被设区域的亮度:如下只示意出包含:待处理二维码的被设区域的亮度中第1行第1个的亮度至第1行第8个的亮度,即,255、255、255、0、0、0、255、255;第2行第1个的亮度至第1行第8个的亮度,即,0、0、0、0、0、255、0、255;第p行第1个的亮度至第p行第4个的亮度,即,0、0、0、255、0、0、0、0,第1行第p个的亮度,即,255,第2行第p个的亮度,即,0,以及至第p行第p个的亮度,即255。

步骤220,划分每一被设区域为l行×l列的重置亮度区域,所述l大于或等于2。

步骤230,从与每一被设区域预先建立位置关联的l2个被设区域中,得到每一被设区域关联的l2个被设区域各自的二进制子序列,作为关联的二进制子序列,关联的二进制子序列是由每一被设区域关联的l2个被设区域各自表示的二进制算符组成的。

步骤240,按照预设二进制子系列与预设重置亮度区域的重置亮度方式之间的一一对应关系,确定关联的二进制子序列对应的预设重置亮度区域的重置亮度方式,作为匹配的重置亮度方式。

步骤241,在第一预设亮度为128,被设区域的亮度分别为255和0时,判断每一被设区域的亮度是否小于第一预设亮度,若否,则执行步骤242,若是,则执行步骤243;

步骤242,在被设区域的亮度为255时,将匹配的重置亮度方式中的每个重置亮度,确定为重置亮度区域各自的重置亮度。

步骤243,在被设区域的亮度为0时,将匹配的重置亮度方式中的每个重置亮度,与第二预设亮度之差的绝对值,确定为重置亮度区域各自的重置亮度。

采用如下第一种方式表示待处理二维码的重置亮度区域各自的重置亮度,只示意出图4中待处理二维码的被设区域的亮度中第1行第1个的亮度至第1行第4个的亮度,即,255、255、255、0;第2行第1个的亮度至第1行第4个的亮度,即,0、0、0、0;第p行第1个的亮度至第p行第4个的亮度,即,0、0、0、255,第1行第p个的亮度,即,0,以及至第p行第p个的亮度,即255等亮度,所对应的重置亮度区域各自的重置亮度等,这些示意出图4中的待处理二维码的被设区域的亮度对应的重置亮度区域各自的重置亮度。详见参见图5所示。采用如下第一种方式表示待处理二维码的重置亮度区域各自的重置亮度:

步骤250,判断是否达到预设划分条件,其中预设划分条件为被设区域被划分为16份,若否,则执行步骤251;若是,则执行步骤252。

步骤251,针对所有的重置亮度区域,将已设置重置亮度的重置亮度区域确定为被设区域,继续返回执行步骤220,直至达到预设划分条件,执行步骤252。

假设在被设区域的亮度为255时,将匹配的重置亮度方式中的每个重置亮度,确定为l2个重置亮度区域各自的重置亮度。在被设区域的亮度为0时,将匹配的重置亮度方式中的每个重置亮度,与第二预设亮度之差的绝对值,确定为重置亮度区域各自的重置亮度。

上述将获得的重置亮度,设置各自的重置亮度区域,确定为被设区域,则采用如下第二种方式表示待处理二维码的重置亮度区域各自的重置亮度,只示意出图5中的待处理二维码的被设区域的亮度中第1行第1个的亮度至第1行第4个的亮度,即,255、255、255;第2行第1个的亮度至第1行第4个的亮度,即,0、255、255;第3行第1个的亮度至第1行第4个的亮度,即,255、255、255;第p行第1个的亮度至第p行第4个的亮度,即,0、0、0、0,第1行第p-1个的亮度至第1行第p个的亮度,即,255、0,第2行第p-1个的亮度至第2行第p个的亮度,即,255、255,以及,第p行第p-1个的亮度至第p行第p个的亮度,即,0、0等亮度,这些示意出图5中的待处理二维码的被设区域的亮度对应的重置亮度区域各自的重置亮度。详见参见图6所示。

采用如下第二种方式表示待处理二维码的重置亮度区域各自的重置亮度:

换句话说,这个采用如上第二种方式的左上角只示意出图4中、待处理二维码的被设区域的亮度中第1行第1个的亮度,即,255。

步骤252,将l2个重置亮度设置在l行×l列的重置亮度区域中,获得已处理的二维码。也就是,将已经完成重置亮度的所有重置亮度区域,生成已处理的二维码。

本发明实施例,利用两次对被设区域的亮度进行重置亮度,计算量小,满足用户需求。不仅待处理二维码的所有被设区域,展示待处理二维码所有被设区域的亮度,而且,重置亮度区域,也展示待处理二维码被设区域的亮度,从而可以通过在二维码的被设区域和重置亮度区域来辨识已处理的二维码,增加了已处理的二维码的辨识方式,也提高了已处理的二维码的信息承载能力。

第二方面,下面继续对本发明实施例提供的一种二维码识读方法进行介绍。

参见图7,图7为本发明实施例提供的二维码识读方法的第一流程示意图。本发明实施例所提供的一种二维码识读方法,可以包括如下步骤:

步骤310,扫描二维码。

本步骤310,具体包括:电子设备先获取二维码的水平和垂直维度,然后用电子设备扫描二维码;再然后用边界滤波器,如sobel(sobeloperator,索贝尔算子)算子求二维码的边界位置;再基于边界位置对扫描到的二维码进行位置矫正,使二维码所有边界都是或者水平或者垂直,且间距相等;再消除光照强度对整个二维码的影响;然后求边界之间的水平垂直距离。其中,sobel算子是图像处理中的算子之一,主要用作边缘检测。具体详细过程均为现有技术,在此不再赘述。

步骤320,获取二维码中每个被设区域被划分的规则以及,基于被划分的规则,从二维码中扫描到的多个被设区域,每个被设区域被划分的规则为划分每一被设区域为l行×l列的重置亮度区域,该被设区域已设有亮度。

步骤330,判断扫描到的多个被设区域的区域数量是否小于预设区域数量,预设区域数量为二维码的所有被设区域的区域总数,若是,则执行步骤331,若否,则执行步骤335。预设区域数量是由二维码决定的。

步骤331,从扫描到的多个被设区域中,获取重置亮度区域的区域数量。

步骤332,判断重置亮度区域的区域数量是否大于或等于预设区域数量,若是,则执行步骤333,若否,则执行步骤340;

步骤333,按照预设二进制子系列与预设重置亮度区域的重置亮度方式之间的一一对应关系,将重置亮度区域设有的亮度,确定每一被设区域关联的l2个被设区域各自的二进制子序列,作为关联的二进制子序列,关联的二进制子序列是由每一被设区域关联的l2个被设区域各自表示的二进制算符组成的。

本步骤333中的,预设二进制子序列与预设重置亮度区域的重置亮度之间的一一对应关系,与步骤152中的,预设二进制子序列与预设重置亮度区域的重置亮度之间的一一对应关系相同,在此不一一赘述。

步骤334,将关联的二进制子序列,生成二进制序列。

步骤335,从多个被设区域中,获取每一被设区域各自划分的重置亮度区域设有的亮度。

步骤336,将每一被设区域各自划分的所述重置亮度区域设有的亮度求平均值,得到每一被设区域的亮度平均值。

步骤337,判断每一被设区域的亮度平均值高于或低于第二预设亮度,若高于,则执行步骤338,若低于,则执行步骤339;

步骤338,将每一被设区域的亮度平均值,映射为第一二进制算符。

所述按照预设亮度映射的二进制算符,与预设亮度之间的映射关系可以包括:使用预设亮度范围内的预设亮度映射的二进制算符,与预设亮度范围的预设亮度之间的映射关系,以及预先定义的每一个预设亮度映射的二进制算符,与各自预设亮度之间的映射关系中的一种或多种。后者预先定义的每一个预设亮度映射的二进制算符,与各自预设亮度之间的映射关系可以预先设置在表格中,表格中包括:每一个预设亮度映射的二进制算符,以及各自预设亮度。前者只需要设置一个预设亮度范围方便直接,将每一被设区域的亮度平均值确定是否处于预设亮度范围内来实现映射;后者更加清楚明了地说明每一个预设亮度映射的二进制算符。预设亮度范围和预设亮度,均可以根据用户需要进行设置。预设亮度范围包括:第一预设亮度范围,比如,大于128,以及第二预设亮度范围,比如,小于128。

步骤339,将每一被设区域的亮度平均值映射为第二二进制算符,第一二进制算符和第二二进制算符的数值不同。利用步骤335至步骤339,将所有被设区域的亮度平均值映射成二进制算符,则相当于映射成二进制序列。

步骤340,判断是否达到预设划分条件,若否,则执行步骤341;若是,则结束。

步骤341,将重置亮度区域,确定为被设区域,返回继续执行步骤310。第二预设亮度也可以根据用户需求进行设置,第二预设亮度可以与第一预设亮度相同,也可以不同。

本发明实施例,不仅待处理二维码的所有被设区域,展示待处理二维码所有被设区域的亮度,而且,重置亮度区域,也展示待处理二维码被设区域的亮度。这样可以通过在二维码的被设区域和重置亮度区域辨识二维码,增加了已处理的二维码的辨识方式,也提高了已处理的二维码的信息承载能力。利用被设区域的亮度及重置亮度区域的亮度,识读已处理二维码。相较于现有技术,若只扫描到二维码中部分区域,也就是重置亮度区域,并不是所有的被设区域,且扫描的二维码中,重置亮度区域的数量大于或等于预设区域数量,则读取重置亮度区域设有的亮度,映射成二进制序列,不需要用户调整手机与所扫描的二维码之间的距离,提高了二维码的辨识度,提高用户信息获取的效率,方便用户使用,提高用户体验效果。

对应于第一方面的二维码生成方法,下面继续对本发明实施例提供的一种二维码生成装置进行介绍。

参见图8,图8为本发明实施例的二维码生成装置的结构示意图,本发明实施例还提供一种二维码生成装置,装置包括:

第一获取模块41,用于获取待处理二维码,所述待处理二维码包括:多个已设有亮度的区域,将已设有亮度的区域,作为被设区域,每一被设区域用于表示所述二维码的二进制序列中的一个二进制算符;

划分模块42,用于划分每一被设区域为l行×l列的重置亮度区域,所述l大于或等于2;

查找模块43,用于从与每一被设区域预先建立位置关联的l2个被设区域中,得到每一被设区域关联的l2个被设区域各自的二进制子序列,作为关联的二进制子序列,所述关联的二进制子序列是由所述每一被设区域关联的l2个被设区域各自表示的二进制算符组成的;

第一确定模块44,用于按照预设二进制子系列与预设重置亮度区域的重置亮度方式之间的一一对应关系,确定所述关联的二进制子序列对应的预设重置亮度区域的重置亮度方式,作为匹配的重置亮度方式;

第一获得模块45,用于基于每一被设区域的亮度及所述匹配的重置亮度方式,获得重置亮度区域中的l2个重置亮度;

第二获得模块46,用于将l2个重置亮度设置在l行×l列的重置亮度区域中,获得已处理的二维码。

相当于,基于每一被设区域的亮度,按照匹配的重置亮度方式中的重置亮度,设置在l行×l列的重置亮度区域中,获得已处理的二维码。

在本发明实施例的一种可能的实现方式中,所述第二获得模块46,具体用于:

将已设置重置亮度的重置亮度区域确定为被设区域,继续返回执行划分每一被设区域为l行×l列的重置亮度区域的步骤,直至达到预设划分条件,将l2个重置亮度设置在l行×l列的重置亮度区域中,获得已处理的二维码。

在本发明实施例的一种可能的实现方式中,所述第一获得模块45,具体用于:

若每一被设区域的亮度大于或等于第一预设亮度,则将所述匹配的重置亮度方式中的每个重置亮度,确定为重置亮度区域各自的重置亮度;

若每一被设区域的亮度小于第一预设亮度,则将所述匹配的重置亮度方式中的每个重置亮度,与第二预设亮度之差的绝对值,确定为重置亮度区域各自的重置亮度。

在本发明实施例的一种可能的实现方式中,多个被设区域呈p行×p列;

采用如下步骤,每一被设区域与相关联的l2个被设区域建立位置关联:

所述每一被设区域为所述多个被设区域中第n行第m列的被设区域,所述n大于0,且小于或等于p的整数,所述m大于0,且小于或等于p的整数;

与所述每一被设区域各自相关联的l2个被设区域包括:所述多个被设区域中的第行第列的被设区域,

......,

行第列的被设区域,

......,

行第列的被设区域,

......,

行第列的被设区域。

在本发明实施例的一种可能的实现方式中,所述装置还包括:

第二获取模块,用于获取预设二进制子序列与预设重置亮度区域的重置亮度方式之间的多种对应关系;

选择模块,用于从所述多种对应关系中,选择一种对应关系,作为目标对应关系;

第二确定模块,用于将所述目标对应关系,确定预设二进制子序列与预设重置亮度区域的重置亮度之间的一一对应关系。

对应于第二方面的二维码识读方法,下面继续对本发明实施例提供的一种二维码识读装置进行介绍。

参见图9,图9为本发明实施例的二维码识读装置的结构示意图,本发明实施例还提供一种二维码识读装置,应用于上述的二维码生成装置,二维码识读装置包括:

第一读取模块51,用于扫描二维码;

第三获取模块52,用于获取所述二维码中每个被设区域被划分的规则以及,基于被划分的规则,从所述二维码中扫描到的多个被设区域,所述每个被设区域被划分的规则为划分每一被设区域为l行×l列的重置亮度区域,所述被设区域已设有亮度;

第四获取模块53,用于若所述扫描到的多个被设区域的区域数量小于预设区域数量,则从所述扫描到的多个被设区域中,获取重置亮度区域的区域数量,所述预设区域数量为所述二维码的所有被设区域的区域总数;

第二读取模块54,用于若所述重置亮度区域的区域数量大于或等于所述预设区域数量,则读取所述重置亮度区域设有的亮度,所述重置亮度区域设有的亮度是基于每一被设区域的亮度,与关联的l2个被设区域各自的亮度获得的,所述每一被设区域关联的l2个被设区域各自的亮度是从与每一被设区域预先建立位置关联的l2个被设区域中得到的;

第三确定模块55,用于按照预设二进制子系列与预设重置亮度区域的重置亮度方式之间的一一对应关系,将所述重置亮度区域设有的亮度,确定每一被设区域关联的l2个被设区域各自的二进制子序列,作为关联的二进制子序列,所述关联的二进制子序列是由所述每一被设区域关联的l2个被设区域各自表示的二进制算符组成的;

生成模块56,用于将所述关联的二进制子序列,生成二进制序列。

在本发明实施例的一种可能的实现方式中,所述装置还包括:

第五获取模块,用于若所述扫描到的多个被设区域的区域数量大于或等于预设区域数量,则从所述扫描到的多个被设区域中,获取每一被设区域各自划分的所述重置亮度区域设有的亮度;

第三获得模块,用于将每一被设区域各自划分的所述重置亮度区域设有的亮度求平均值,得到每一被设区域的亮度平均值;

第一映射模块,用于若每一被设区域的亮度平均值高于第二预设亮度,则将每一被设区域的亮度平均值映射为第一二进制算符;

第二映射模块,用于若每一被设区域的亮度平均值低于所述第二预设亮度,则将每一被设区域的亮度平均值映射为第二二进制算符,所述第一二进制算符和所述第二二进制算符的数值不同。

对应于第一方面的二维码生成方法,参见图10,图10为本发明实施例的电子设备的结构示意图。本发明实施例还提供了一种电子设备,包括处理器61、通信接口62、存储器63和通信总线64,其中,处理器61,通信接口62,存储器63通过通信总线64完成相互间的通信,

存储器63,用于存放计算机程序;

处理器61,用于执行存储器63上所存放的程序时,实现如下步骤:

获取待处理二维码,所述待处理二维码包括:多个已设有亮度的区域,将已设有亮度的区域,作为被设区域,每一被设区域用于表示所述二维码的二进制序列中的一个二进制算符;

划分每一被设区域为l行×l列的重置亮度区域,所述l大于或等于2;

从与每一被设区域预先建立位置关联的l2个被设区域中,得到每一被设区域关联的l2个被设区域各自的二进制子序列,作为关联的二进制子序列,所述关联的二进制子序列是由所述每一被设区域关联的l2个被设区域各自表示的二进制算符组成的;

按照预设二进制子系列与预设重置亮度区域的重置亮度方式之间的一一对应关系,确定所述关联的二进制子序列对应的预设重置亮度区域的重置亮度方式,作为匹配的重置亮度方式;

基于每一被设区域的亮度及所述匹配的重置亮度方式,获得重置亮度区域中的l2个重置亮度;

将l2个重置亮度设置在l行×l列的重置亮度区域中,获得已处理的二维码。

对应于第二方面的二维码识读方法,参见图11,图11为本发明实施例的电子设备的结构示意图。本发明实施例还提供了一种电子设备,包括处理器71、通信接口72、存储器73和通信总线74,其中,处理器71,通信接口72,存储器73通过通信总线74完成相互间的通信,

存储器73,用于存放计算机程序;

处理器71,用于执行存储器73上所存放的程序时,实现如下步骤:

扫描二维码;

获取所述二维码中每个被设区域被划分的规则以及,基于被划分的规则,从所述二维码中扫描到的多个被设区域,所述每个被设区域被划分的规则为划分每一被设区域为l行×l列的重置亮度区域,所述被设区域已设有亮度;

若所述扫描到的多个被设区域的区域数量小于预设区域数量,则从所述扫描到的多个被设区域中,获取重置亮度区域的区域数量,所述预设区域数量为所述二维码的所有被设区域的区域总数;

若所述重置亮度区域的区域数量大于或等于所述预设区域数量,则读取所述重置亮度区域设有的亮度,所述重置亮度区域设有的亮度是基于每一被设区域的亮度,与关联的l2个被设区域各自的亮度获得的,所述每一被设区域关联的l2个被设区域各自的亮度是从与每一被设区域预先建立位置关联的l2个被设区域中得到的;

按照预设二进制子系列与预设重置亮度区域的重置亮度方式之间的一一对应关系,将所述重置亮度区域设有的亮度,确定每一被设区域关联的l2个被设区域各自的二进制子序列,作为关联的二进制子序列,所述关联的二进制子序列是由所述每一被设区域关联的l2个被设区域各自表示的二进制算符组成的;

将所述关联的二进制子序列,生成二进制序列。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是二进制数信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本发明实施例提供的方法可以应用于电子设备。具体的,该电子设备可以为:台式计算机、便携式计算机、智能移动终端、服务器等。在此不作限定,任何可以实现本发明的电子设备,均属于本发明的保护范围。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的二维码生成方法。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的二维码生成方法。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的二维码识读方法。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的二维码识读方法。

对于装置/电子设备/存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、二进制数用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置/电子设备/存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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