窄条二维码、窄条二维码的生成、识别方法、装置及设备
技术领域
本说明书一个或多个实施例涉及图像处理技术领域,尤其涉及一种窄条二维码、窄条二维码的生成、识别方法、装置及设备。
背景技术
二维码(2-dimensional bar code)是通过按一定规律在平面的二维方向上分布的图形来记录信息的条码。其中,以QR二维码(简称QR码)最为常见。传统的QR码通常会设置3个用于定位的大型桩点结构。在二值化的二维码中,该大型桩点结构的线段黑白长度比例满足1:1:3:1:1。然而在部分场景下,比如,当二维码用于记录图书编号相关信息时,由于用于张贴二维码的空间比较小,所以传统的二维码不便于使用。
因此,需要生成一种二维码,以方便于在使用空间比较小的情况下使用。
发明内容
本说明书一个或多个实施例描述了一种窄条二维码、窄条二维码的生成、识别方法、装置及设备,可以生成一种小型二维码,从而可以方便于在使用空间比较小的情况下使用。
第一方面,提供了一种窄条二维码的生成方法,包括:
确定矩形区域,所述矩形区域包括网格状排列的待填充块;
用两个定位图形分别填充所述矩形区域中两个顶点处的两个方形区域,其中,每个定位图形包括位于中心的、由第一色块构成的方形结构,和包围所述方形结构一周、由第二色块构成的围框结构;
在所述矩形区域中,对于每个定位图形,用第一色块填充围绕所述定位图形的区域,以形成相应的隔离区域;
在数据区域填充与二维码数据相应的第一色块和第二色块,所述数据区域为所述矩形区域中除所述两个定位图形以及相应的隔离区域之外的区域。
第二方面,提供了一种窄条二维码的识别方法,包括:
获取窄条二维码的图像;
在所述图像中检测定位图形,所述定位图形包括位于中心的、由第一色块构成的方形结构,和包围所述方形结构一周、由第二色块构成的围框结构,并且所述定位图形外围具有第一色块形成的隔离区域;
当检测到两个所述定位图形时,基于两个所述定位图形的中心位置,在所述图像中确定出包含所述窄条二维码所对应的矩形区域的目标区域;
从目标区域中确定待识别的数据区域;
对所述数据区域的二维码数据进行识别。
第三方面,提供了一种窄条二维码,包括:
两个定位图形,所述两个定位图形位于矩形区域的两个顶点处,其中,每个定位图形包括位于中心的、由第一色块构成的方形结构,和包围所述方形结构一周、由第二色块构成的围框结构;
两个隔离区域,每个隔离区域由所述矩形区域中围绕1个所述定位图形的第一色块而形成;
用于形成二维码数据的数据区域,包括所述矩形区域中除所述两个定位图形和相应的隔离区域之外的区域。
第四方面,提供了一种窄条二维码的生成装置,包括:
确定单元,用于确定矩形区域,所述矩形区域包括网格状排列的待填充块;
填充单元,用于用两个定位图形分别填充所述确定单元确定的所述矩形区域中两个顶点处的两个方形区域,其中,每个定位图形包括位于中心的、由第一色块构成的方形结构,和包围所述方形结构一周、由第二色块构成的围框结构;
所述填充单元,还用于在所述确定单元确定的所述矩形区域中,对于每个定位图形,用第一色块填充围绕所述定位图形的区域,以形成相应的隔离区域;
所述填充单元,还用于在数据区域填充与二维码数据相应的第一色块和第二色块,所述数据区域为所述矩形区域中除所述两个定位图形以及相应的隔离区域之外的区域。
第五方面,提供了一种窄条二维码的识别装置,包括:
获取单元,用于获取窄条二维码的图像;
检测单元,用于在所述获取单元获取的所述图像中检测定位图形,所述定位图形包括位于中心的、由第一色块构成的方形结构,和包围所述方形结构一周、由第二色块构成的围框结构,并且所述定位图形外围具有第一色块形成的隔离区域;
确定单元,用于当所述检测单元检测到两个所述定位图形时,基于两个所述定位图形的中心位置,在所述图像中确定出包含所述窄条二维码所对应的矩形区域的目标区域;
所述确定单元,还用于从目标区域中确定待识别的数据区域;
识别单元,用于对所述确定单元确定的所述数据区域的二维码数据进行识别。
第六方面,提供了一种窄条二维码的生成设备,包括:
存储器;
一个或多个处理器;以及
一个或多个程序,其中所述一个或多个程序存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序被所述处理器执行时实现以下步骤:
确定矩形区域,所述矩形区域包括网格状排列的待填充块;
用两个定位图形分别填充所述矩形区域中两个顶点处的两个方形区域,其中,每个定位图形包括位于中心的、由第一色块构成的方形结构,和包围所述方形结构一周、由第二色块构成的围框结构;
在所述矩形区域中,对于每个定位图形,用第一色块填充围绕所述定位图形的区域,以形成相应的隔离区域;
在数据区域填充与二维码数据相应的第一色块和第二色块,所述数据区域为所述矩形区域中除所述两个定位图形以及相应的隔离区域之外的区域。
第七方面,提供了一种窄条二维码的识别设备,包括:
存储器;
一个或多个处理器;以及
一个或多个程序,其中所述一个或多个程序存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序被所述处理器执行时实现以下步骤:
获取窄条二维码的图像;
在所述图像中检测定位图形,所述定位图形包括位于中心的、由第一色块构成的方形结构,和包围所述方形结构一周、由第二色块构成的围框结构,并且所述定位图形外围具有第一色块形成的隔离区域;
当检测到两个所述定位图形时,基于两个所述定位图形的中心位置,在所述图像中确定出包含所述窄条二维码所对应的矩形区域的目标区域;
从目标区域中确定待识别的数据区域;
对所述数据区域的二维码数据进行识别。
本说明书一个或多个实施例提供的窄条二维码、窄条二维码的生成、识别方法、装置及设备,确定矩形区域,该矩形区域包括网格状排列的待填充块。用两个定位图形分别填充矩形区域中两个顶点处的两个方形区域,其中,每个定位图形包括位于中心的、由第一色块构成的方形结构,和包围方形结构一周、由第二色块构成的围框结构。在矩形区域中,对于每个定位图形,用第一色块填充围绕定位图形的区域,以形成相应的隔离区域。在数据区域填充与二维码数据相应的第一色块和第二色块,数据区域为矩形区域中除两个定位图形以及相应的隔离区域之外的区域。由此可以看出,本说明书生成的窄条二维码可以只包含两个定位图形,从而可以大大减少窄条二维码的面积,这可以方便于在使用空间比较小的情况下的使用。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书一个实施例提供的窄条二维码的生成方法流程图;
图2a为本说明书提供的定位图形示意图之一;
图2b为本说明书提供的定位图形示意图之二;
图3为本说明书提供的定位图形的隔离区域示意图;
图4为本说明书提供的窄条二维码示意图;
图5为本说明书一个实施例提供的窄条二维码的识别方法流程图;
图6为本说明书一个实施例提供的窄条二维码的生成装置示意图;
图7为本说明书一个实施例提供的窄条二维码的识别装置示意图;
图8为本说明书一个实施例提供的窄条二维码的生成设备示意图;
图9为本说明书一个实施例提供的窄条二维码的识别设备示意图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书一个实施例提供的窄条二维码的生成方法流程图。所述方法的执行主体可以为具有处理能力的设备:服务器或者系统或者装置。如图1所示,所述方法具体可以包括:
步骤102,确定矩形区域。
该矩形区域可以包括网格状排列的待填充块。这里的块可以与若干个像素点相对应。需要说明的是,在初始确定的矩形区域中,这些像素点的像素值还不确定,从而该矩形区域中各个块的颜色值为空。
需要说明的是,上述生成的矩形区域的大小(或者面积)可以为N*M,其中,N为矩形区域的宽度,M为矩形区域的长度。在本说明书中,上述M可以大于N。如,在一个例子中,N可以为6,M可以为23。在另一例子中,N可以为7,M可以为20。需要说明的是,为保证后续生成的窄条二维码能够存储足够多的数据,可以设置矩形区域的大小大于120,即N*M>120。
步骤104,用两个定位图形分别填充矩形区域中两个顶点处的两个方形区域。
这里的两个顶点可以为矩形区域的对角线两端的两个顶点。或者,也可以为矩形区域的矩形长边两端的两个顶点。
上述每个定位图形可以包括位于中心的、由第一色块构成的方形结构,和包围方形结构一周、由第二色块构成的围框结构。这里的第一色块可以是指白色块,也可以是指黑色块。可以理解的是,当第一色块为白色块时,那么第二色块为黑色块;而当第一色块为黑色块时,那么第二色块为白色块。
此外,上述定位图形的方形结构和围框结构的宽度比例可以为1:1,也即在横向和/或纵向上,定位图形的第二色块、第一色块以及第二色块的宽度比例可以为:1:1:1。
在一个例子中,上述定位图形可以如图2a所示。图2a中,该定位图形的位于中心的方形结构由1个白色块构成,包围方形结构一周的围框结构由8个黑色块构成。另外,在横向和/或纵向上,定位图形的黑色块、白色块以及黑色块的宽度比例为:1:1:1。
在另一个例子中,上述定位图形可以如图2b所示。图2b中,该定位图形的位于中心的方形结构由4个白色块构成,包围方形结构一周的围框结构由32个黑色块构成。另外,在横向和/或纵向上,定位图形的黑色块、白色块以及黑色块的宽度比例为:2:2:2,也即其宽度比例也为1:1:1。
当然,在实际应用中,图2a和图2b中的白色块也可以替换为黑色块,同时黑色块也可以替换为白色块,本说明书对此不作限定。
由此可以看出,本说明书生成的窄条二维码中的定位图形相比于传统的大型桩点结构占用较小的面积。此外,本说明书只生成两个定位图形,这可以为数据区域预留更多的区域,也即可以使窄条二维码存储更多的二维码数据。
步骤106,在矩形区域中,对于每个定位图形,用第一色块填充围绕定位图形的区域,以形成相应的隔离区域。
该隔离区域的宽度可以为一个块的宽度。在以图2a中的定位图形为例来说,与其相应的隔离区域可以如图3所示。
步骤108,在数据区域填充与二维码数据相应的第一色块和第二色块。
这里的数据区域可以为矩形区域中除两个定位图形以及相应的隔离区域之外的区域。
在执行完成上述填充的步骤之后,就可以得到窄条二维码。在一个例子中,所生成的窄条二维码可以如图4所示。图4中,该窄条二维码的长度大于宽度,其可以包括:两个定位图形,该两个定位图形分别位于矩形区域的对角线两端的两个顶点处,其中,每个定位图形包括位于中心的、由白色块构成的白色方形,和包围白色方形一周、由黑色块构成的黑色围框。对于上述每个定位图形,其在横向和/或纵向上黑色块、白色块以及黑色块的宽度比例为:1:1:1。另外,该窄条二维码还可以包括两个隔离区域以及用于形成二维码数据的数据区域。每个隔离区域由矩形区域中围绕1个定位图形的白色块而形成。数据区域包括矩形区域中除两个定位图形和相应的隔离区域之外的区域。
需要说明的是,图4只示出了窄条二维码的一种形状结构。在其它例子中,两个定位图形也可以位于矩形区域的左下角的顶点和右上角的顶点处;或者,位于矩形区域的矩形长边两端的两个顶点处。此外,窄条二维码的长度也可以小于宽度,本说明书对此不作限定。
综上,通过本说明书实施例生成的窄条二维码在保证数据容量的情况下,可以占用较小的面积,从而可以方便于在使用空间比较小的情况下使用。
需要说明的是,针对上述生成的窄条二维码,本说明书还提供了其相应的识别方法,具体如下。
图5为本说明书一个实施例提供的窄条二维码的识别方法流程图。所述方法的执行主体可以为具有处理能力的设备:服务器或者系统或者装置。如图5所示,所述方法具体可以包括:
步骤502,获取窄条二维码的图像。
这里的窄条二维码可以是指长度大于宽度的二维码,或者长度小于宽度的二维码。
步骤504,在图像中检测定位图形。
该定位图形可以包括位于中心的、由第一色块构成的方形结构,和包围方形结构一周、由第二色块构成的围框结构。该定位图形外围可以具有第一色块形成的隔离区域。在一个例子中,该定位图形以及相应的隔离区域可以如图3所示。
此外,上述定位图形在横向和/或纵向上第二色块、第一色块以及第二色块的宽度比例可以为:1:1:1。因此,可以基于该结构特点,在图像中检测定位图形。
步骤506,当检测到两个定位图形时,基于两个定位图形的中心位置,在图像中确定出包含窄条二维码所对应的矩形区域的目标区域。
具体地,对于两个定位图形分别位于矩形区域的对角线两端的两个顶点处的情况,上述目标区域的确定过程可以为:基于两个定位图形的中心位置,确定窄条二维码所对应的矩形区域的对角线。根据对角线,在图像中确定出包含矩形区域的目标区域。
而对于两个定位图形分别位于矩形区域的矩形长边两端的两个顶点处的情况,则可以基于两个定位图形的中心位置以及其它定位图形,来确定上述目标区域。这里的其它定位图形例如可以为图4中左下角和右上角的两个黑色块。
步骤508,从目标区域中确定待识别的数据区域。
需要说明的是,通过步骤506确定的目标区域只是窄条二维码在图像中的大概位置。为提升窄条二维码的识别效率,还可以在目标区域中进一步地对所对应的矩形区域进行定位。如,可以基于腐蚀算法,从目标区域中提取矩形区域的轮廓。之后基于所提取的轮廓来确定待识别的数据区域。
在一种实现方式中,上述基于所提取的轮廓来确定待识别的数据区域的过程可以为:对所提取的轮廓进行扫描,且在扫描的过程中,重复执行以下步骤:从轮廓中选取两个点,并计算通过该两个点所构建连线的斜率。在对所提取的轮廓扫描一圈之后,对所计算得到的各个斜率的出现次数进行统计。基于出现次数最多的斜率,确定窄条二维码的横向方向。之后,基于两个定位图形的中心位置,构建中心连线。确定中心连线相对于横向方向的夹角。根据两个定位图形的中心位置以及夹角,确定窄条二维码的四个顶点。基于四个顶点,确定待识别的数据区域。
步骤510,对数据区域的二维码数据进行识别。
该识别过程具体可以为:基于已确定出的四个顶点的坐标以及预设的标准码坐标,确定透视变换关系。之后,基于透视变换关系,对数据区域的二维码数据进行采样。最后,对采样得到的二维码数据进行解码。
需要说明的是,由于本说明书实施例提供的二维码的识别方法只检测两个定位图形,且所识别的窄条二维码面积较小,从而本说明书提供的方案具有较高的识别效率。
与上述窄条二维码的生成方法对应地,本说明书一个实施例还提供的一种窄条二维码的生成装置,如图6所示,该装置可以包括:
确定单元602,用于确定矩形区域,该矩形区域包括网格状排列的待填充块。
该矩形区域的长度可以大于宽度。
填充单元604,用于用两个定位图形分别填充确定单元602确定的矩形区域中两个顶点处的两个方形区域,其中,每个定位图形包括位于中心的、由第一色块构成的方形结构,和包围方形结构一周、由第二色块构成的围框结构。
该两个顶点可以为矩形区域的对角线两端的两个顶点。或者,该两个顶点也可以为矩形区域的矩形长边两端的两个顶点。
填充单元604,还用于在确定单元602确定的矩形区域中,对于每个定位图形,用第一色块填充围绕定位图形的区域,以形成相应的隔离区域。
填充单元604,还用于在数据区域填充与二维码数据相应的第一色块和第二色块,该数据区域为矩形区域中除两个定位图形以及相应的隔离区域之外的区域。
可选地,方形结构和围框结构的宽度之比为1:1。
本说明书上述实施例装置的各功能模块的功能,可以通过上述方法实施例的各步骤来实现,因此,本说明书一个实施例提供的装置的具体工作过程,在此不复赘述。
本说明书一个实施例提供的窄条二维码的生成装置,可以生成一种小型二维码,从而可以方便于在使用空间较小的情况下使用。
与上述窄条二维码的识别方法对应地,本说明书一个实施例还提供的一种窄条二维码的识别装置,如图7所示,该装置可以包括:
获取单元702,用于获取窄条二维码的图像。
检测单元704,用于在获取单元702获取的图像中检测定位图形,该定位图形可以包括位于中心的、由第一色块构成的方形结构,和包围方形结构一周、由第二色块构成的围框结构,并且定位图形外围具有第一色块形成的隔离区域。
检测单元704具体可以用于:
在图像中检测方形结构和围框结构的宽度之比为1:1的定位图形。
确定单元706,用于当检测单元704检测到两个定位图形时,基于两个定位图形的中心位置,在图像中确定出包含窄条二维码所对应的矩形区域的目标区域。
确定单元706具体可以用于:
基于两个定位图形的中心位置,确定窄条二维码所对应的矩形区域的对角线。
根据对角线,在图像中确定出包含矩形区域的目标区域。
确定单元706,还用于从目标区域中确定待识别的数据区域。
确定单元706具体可以用于:
基于腐蚀算法,从目标区域中提取矩形区域的轮廓。
基于所提取的轮廓,确定待识别的数据区域。
识别单元708,用于对确定单元706确定的数据区域的二维码数据进行识别。
可选地,确定单元706还具体可以用于:
迭代地从所提取的轮廓中选取两个点,并计算通过该两个点所构建连线的斜率。
在对所提取的轮廓扫描一圈之后,统计各个斜率的出现次数。
基于出现次数最多的斜率,确定窄条二维码的横向方向。
根据两个定位图形的中心位置以及横向方向,确定窄条二维码的四个顶点。
基于确定的四个顶点,确定待识别的数据区域。
可选地,确定单元706还具体可以用于:
基于两个定位图形的中心位置,构建中心连线。
确定中心连线相对于横向方向的夹角。
根据两个定位图形的中心位置以及夹角,确定窄条二维码的四个顶点。
本说明书一个实施例提供的窄条二维码的识别装置,可以快速而准确地对窄条二维码进行识别。
与上述窄条二维码的生成方法对应地,本说明书实施例还提供了一种窄条二维码的生成设备,如图8所示,该设备可以包括:存储器802、一个或多个处理器804以及一个或多个程序。其中,该一个或多个程序存储在存储器802中,并且被配置成由一个或多个处理器804执行,该程序被处理器804执行时实现以下步骤:
确定矩形区域,该矩形区域包括网格状排列的待填充块。
用两个定位图形分别填充矩形区域中两个顶点处的两个方形区域,其中,每个定位图形包括位于中心的、由第一色块构成的方形结构,和包围方形结构一周、由第二色块构成的围框结构。
在矩形区域中,对于每个定位图形,用第一色块填充围绕定位图形的区域,以形成相应的隔离区域。
在数据区域填充与二维码数据相应的第一色块和第二色块,数据区域为矩形区域中除两个定位图形以及相应的隔离区域之外的区域。
本说明书一个实施例提供的窄条二维码的生成设备,可以生成一种小型二维码,从而可以方便于用户的使用。
与上述窄条二维码的识别方法对应地,本说明书实施例还提供了一种窄条二维码的识别设备,如图9所示,该设备可以包括:存储器902、一个或多个处理器904以及一个或多个程序。其中,该一个或多个程序存储在存储器902中,并且被配置成由一个或多个处理器904执行,该程序被处理器904执行时实现以下步骤:
获取窄条二维码的图像。
在图像中检测定位图形,该定位图形包括位于中心的、由第一色块构成的方形结构,和包围所述方形结构一周、由第二色块构成的围框结构,并且定位图形外围具有第一色块形成的隔离区域。
当检测到两个定位图形时,基于两个定位图形的中心位置,在图像中确定出包含窄条二维码所对应的矩形区域的目标区域。
从目标区域中确定待识别的数据区域。
对数据区域的二维码数据进行识别。
本说明书一个实施例提供的窄条二维码的识别设备,可以快速而准确地对窄条二维码进行识别。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
结合本说明书公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块个成,软件模块可以被存放于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的个成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于服务器中。当然,处理器和存储介质也可以作为分立个件存在于服务器中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意个合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述的具体实施方式,对本说明书的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书的具体实施方式而已,并不用于限定本说明书的保护范围,凡在本说明书的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书的保护范围之内。