掌桥专利:专业的专利平台
掌桥专利
首页

QR码的边缘定位方法、装置、计算机设备及存储介质

文献发布时间:2024-04-18 19:59:31


QR码的边缘定位方法、装置、计算机设备及存储介质

技术领域

本申请涉及图像处理技术领域,尤其涉及一种QR码的边缘定位方法、装置、计算机设备及存储介质。

背景技术

QR码(Quick Response Code)是一种将数据以矩阵形式编码的二维条码,相比传统的条形码,它能够存储更多的信息,包括文本、网址、电话号码、电子邮件、图像和其他数据等,而且扫描速度更快。QR码由黑白方块组成,为辅助QR码的定位和识别,QR码中通常设置有三个“回”字形的定位图形。

为正确识别OR码中的内容,通常需采集QR码的扫描图像,并对图像中的QR码进行边缘定位,从而定位出完整的QR码区域后,再进行QR码的内容识别。现有的QR码边缘定位方法中,通常是采用常规的图像边缘定位方法,例如,通过对图像中QR码的边缘区域采用边缘定位算子来确定QR码的边缘所在位置,如采用Sobel算子、Prewitt算子、Roberts算子等。然而,无论采用上述哪种算子,这种基于边缘定位算子来都对QR码边缘进行定位的方法对图像中的QR码的整齐度要求较高,实际应用中利用上述方法得到的边缘定位结果准确度较差,进而影响后续QR码的解码效果。

发明内容

本申请实施例提供了QR码的边缘定位方法、装置、计算机设备及存储介质,能够依赖QR码的特性来对QR码进行边缘定位,提高QR码的边缘定位准确度,进而有助于提高后续QR码的解码效果。

第一方面,本申请实施例提供了一种QR码的边缘定位方法,包括:

获取经过二值化预处理的待检测QR码图像;所述待检测QR码图像中包括第一定位图形,以及分别位于所述第一定位图像两侧的第二定位图形;

基于预设的定位图形中心点检测策略确定所述待检测QR码图像中各定位图形的中心点位置;

基于所述中心点位置的连线确定所述待检测QR码图像中双定位图形侧的QR码边缘线,以及所述第二定位图形的单定位图形侧对应的像素值边缘点;其中,所述第一定位图形与邻近的一个所述第二定位图形组成所述双定位图形;

基于所述第二定位图形的单定位图形侧对应的像素值边缘点和所述中心点位置的连线的平行方向确定单定位图形侧的多个目标边缘点;

利用所述多个目标边缘点进行直线拟合,得到单定位图形侧的QR码边缘线。

第二方面,本申请实施例提供了一种QR码的边缘定位装置,包括:

获取单元,用于获取经过二值化预处理的待检测QR码图像;所述待检测QR码图像中包括第一定位图形,以及分别位于所述第一定位图像两侧的第二定位图形;

第一确定单元,用于基于预设的定位图形中心点检测策略确定所述待检测QR码图像中各定位图形的中心点位置;

第二确定单元,用于基于所述中心点位置的连线确定所述待检测QR码图像中双定位图形侧的QR码边缘线,以及所述第二定位图形的单定位图形侧对应的像素值边缘点;其中,所述第一定位图形与邻近的一个所述第二定位图形组成所述双定位图形;

第三确定单元,用于基于所述第二定位图形的单定位图形侧对应的像素值边缘点和所述中心点位置的连线的平行方向确定单定位图形侧的多个目标边缘点;

直线拟合单元,用于利用所述多个目标边缘点进行直线拟合,得到单定位图形侧的QR码边缘线。

第三方面,本申请实施例还提供了一种计算机设备,其包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述第一方面的QR码的边缘定位方法。

第四方面,本申请实施例还提供了一种计算机可读存储介质,其中计算机可读存储介质存储有计算机程序,计算机程序当被处理器执行时使处理器执行上述第一方面的QR码的边缘定位方法。

本申请实施例中,考虑到QR码中的定位图形通常对称设置,可用于辅助边缘定位,本申请中首先基于预设的定位图形中心点检测策略确定所述待检测QR码图像中各定位图形的中心点位置,进而基于所述中心点位置的连线确定所述待检测QR码图像中双定位图形侧的QR码边缘线,以及所述第二定位图形的单定位图形侧对应的像素值边缘点,对于QR码中只有一个定位图形的单定位图形侧,进一步基于所述第二定位图形的单定位图形侧对应的像素值边缘点和所述中心点位置的连线的平行方向确定单定位图形侧的多个目标边缘点,进而利用所述多个目标边缘点进行直线拟合,得到单定位图形侧的QR码边缘线。与现有技术中采用常规的图像边缘定位算子进行计算相比,本申请结合了QR码的特性来进行QR码的边缘定位,有利于提高QR码的边缘定位准确度,进而有助于提高后续QR码的解码效果。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的QR码的组成部分示意图;

图2为本申请实施例提供的QR码的边缘定位方法的流程示意图;

图3为本申请实施例提供的QR码的定位图形的像素值长度比例特征示意图;

图4为本申请实施例提供的QR码的边缘定位方法的子流程示意图;

图5为本申请实施例提供的定位图形的中心点位置及中心点连线示意图;

图6为本申请实施例提供的定位图形的像素值边缘点的确定示意图;

图7为本申请实施例提供的双定位图形侧的QR码边缘线的确定示意图;

图8为本申请实施例提供的QR码的边缘定位方法的另一子流程示意图;

图9为本申请实施例提供的像素值边缘点对应的边缘辅助定位点的示意图;

图10为本申请实施例提供的辅助定位线的示意图;

图11为本申请实施例提供的候选辅助定位点对的示意图;

图12为本申请实施例提供的辅助定位线段中目标像素值对应的总数比例的确定过程示意图;

图13为本申请实施例提供的QR码的边缘定位方法的另一子流程示意图;

图14为本申请实施例提供的内点和边缘点的示意图;

图15为本申请实施例提供的调整确定单定位图形侧的QR码边缘线的示意图;

图16为本申请实施例提供的QR码的边缘定位装置的示意性框图;

图17为本申请实施例提供的计算机设备的示意性框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

本申请提供了一种QR码的边缘定位方法、装置、计算机设备及存储介质,能够提高QR码的边缘定位准确度,进而有助于提高后续QR码的解码效果。该QR码的边缘定位方法的执行主体可以是本申请实施例提供的QR码的边缘定位装置,可以是集成了该QR码的边缘定位装置的计算机设备。其中,该QR码的边缘定位装置可以采用硬件或者软件的方式实现,该计算机设备可以为终端或服务器,该终端可以是智能手机、平板电脑、掌上电脑、或者笔记本电脑等。

需要说明的是,本申请实施例对应的所有附图中所提供的QR码示意图均仅作辅助说明使用,并且均已经过模糊化处理,所有QR码示意图均无法进行QR码扫描识别后得到额外的信息内容。

为更清楚说明本申请提供的QR码的边缘定位方法,请参阅图1,图1为本申请一实施例提供的QR码的组成示意图。如图1所示,QR码由黑白方块组成,为辅助定位,QR码中设置有三个定位图形,定位图形的中心为中心点位置,其中,位于中间的为第一定位图形,位于两侧的为第二定位图形。第一定位图形与一个第二定位图形组成双定位图形(组),双定位图形(组)所在一侧为双定位图形侧,而只有一个第二定位图形的一侧为单定位图形侧。对QR码进行完整的边缘定位,需要对QR码中的两个双定位图形侧的边缘和两个单定位图形侧的边缘进行定位。

请参阅图2,图2为本申请一实施例提供的QR码的边缘定位方法的流程示意图,该方法具体包括下述步骤S101至步骤S105。

步骤S101、获取经过二值化预处理的待检测QR码图像。

其中,上述待检测QR码图像携带有待识别的QR码,待检测QR码图像中包括QR码中的一个第一定位图形,以及分别位于第一定位图像两侧的两个第二定位图形。

本实施例中,为更好对待检测QR码图像进行边缘定位,待检测QR码图像经过二值化预处理,该待检测QR码图像中包括第一像素值和第二像素值,且第一像素值和第二像素值中的一个像素值为白色对应的像素值,一个为黑色对应的像素值。

步骤S102、基于预设的定位图形中心点检测策略确定待检测QR码图像中各定位图形的中心点位置。

本实施例中,QR码中包括了三个定位图形,且三个定位图形均位于QR码的顶角位置处(例如,QR码具有四个顶角,则上述三个定位图形则位于QR码的四个顶角的其中三个顶角处),为利用定位图形来进行边缘定位,首先基于预设的定位图形中心点检测策略确定待检测QR码图像中各定位图形的中心点位置。

其中,上述预设的定位图形中心点检测策略用于对QR码进行中心点位置定位,在一个可行的实施方式中,可以先对QR码中的定位图形所在区域进行识别,在此基础上,确定出定位图形的中心点位置。例如,可以预先训练定位图形对应的目标检测模型,进而利用该目标检测模型对待检测QR码图像进行定位图形检测,确定定位图形所在区域。

在实际应用中,如图3所示,QR码的每个定位图形中,黑色和白色的宽度比固定为1:1:3:1:1,基于此,在一实施例中,上述步骤S102具体可以包括以下步骤A1至A4。

A1、对待检测QR码图像进行横向扫描,得到各行中的第一像素值线段和第二像素值线段。

其中,上述各行中的第一像素值线段为同一行中由像素值为第一像素值的像素点组成的线段,上述各行中的第二像素值线段为同一行中由像素值为第二像素值的像素点组成的线段;根据QR码的特征,对于每行,均可以得到交替排列的多条第一像素值线段和多条第二像素值线段。

在具体的实施过程中,对于每一行,可以采用以下横向扫描方法,从而得到各行中的第一像素值线段和第二像素值线段:

1)初始化L1=0,并记录第一个像素的像素值,往右继续记录下一个像素的像素值,若相同,则L1=L1+1,直到下一个像素的像素值与第一个像素的像素值不一样,此时得到一个像素值线段,该像素值线段的长度为L1。

2)从L1扫描完毕的终点像素开始,初始化L2=0,继续根据上述方法记录下一段像素值线段的长度L2。

3)按照上述1)和2)中的规律,直到扫描完一行的所有像素,会得到多个第一像素值线段和多个第二像素值线段,各个像素值线段的长度为rows(L1、L2…Ln)。

A2、对待检测QR码图像进行纵向扫描,得到各列中的第一像素值线段和第二像素值线段。

其中,上述各列中的第一像素值线段为同一列中由像素值为第一像素值的像素点组成的线段,上述各列中的第二像素值线段为同一列中由像素值为第二像素值的像素点组成的线段;根据QR码的特征,对于每列,均可以得到交替排列的多条第一像素值线段和多条第二像素值线段。

在具体的实施过程中,对于每一列采用的纵向扫描方法可以参考上述对于每一列采用的横向扫描方法,得到各列中各个像素值线段的长度为cols(L1、L2…Ln)。

A3、根据定位图形对应的像素值长度比例特征,以及各行和各列中的第一像素值线段和第二像素值线段的长度确定出各定位图形的中心点位置所在的目标中心区域。

其中,上述定位图形的中心点位置所在的目标中心区域可以指的是定位图形中心的白色内部矩形所在的区域。

本实施例中,具体的,以第一像素值为白色对应的像素值为例,则定位图像对应的像素值长度比例特征具体可以为:

第一像素值长度:第二像素值长度:第一像素值长度:第二像素值长度:第一像素值长度=1:1:3:1:1;

在此基础上,可以根据扫描后得到的各行中的像素值线段的长度确定出横向上与上述像素值长度比例特征相近或相同的目标像素值线段,根据扫描后得到的各列中的像素值线段的长度确定出纵向上与上述像素值长度比例特征相近或相同的目标像素值线段,进而可以将横向和纵向的目标像素值线段形成的相交区域确定为定位图形的中心点位置所在的目标中心区域。

A4、对于每一定位图形对应的目标中心区域,将目标中心区域的中心点确定为定位图形对应的中心点位置,得到各定位图形的中心点位置。

本实施例中,对于每一个定位图形,确定了中心点位置所在的目标中心区域即确定了定位图形中心的白色矩形的区域,进而可以将该目标中心区域的中心点确定为定位图形对应的中心点位置。

具体的,在一些实施方式中,上述确定目标中心区域的中心点的过程,则可以包括:

1)在目标中心区域中确定出横向最长的目标像素值线段,以及纵向最长的目标像素值线段。

2)将横向最长的目标像素值线段与纵向最长的目标像素值线段的交点确定为上述目标中心区域的中心点。

本实施例中,通过上述步骤A1至A4,有利于精确地确定出待检测QR码中定位图形的中心点位置,便于后续基于中心点位置进行QR码的边缘定位。

步骤S103、基于中心点位置的连线确定待检测QR码图像中双定位图形侧的QR码边缘线,以及第二定位图形的单定位图形侧对应的像素值边缘点。

其中,第一定位图形与邻近的一个第二定位图形组成双定位图形;上述第二定位图形的单定位图形侧对应的像素值边缘点为第二定位图形的像素值边缘点,具体是在QR码中的单定位图形侧的像素值边缘点,像素值边缘点为像素值变化的边缘点,即白色和黑色的边界点。

本实施例中,在QR码中,定位图形设置于边缘位置,具有双定位图形的一侧的边缘定位可以根据双定位图形的中心点位置的连线来确定,而对于只具备一个定位图形的单定位图形侧,则需先确定第二定位图形的单定位图形侧对应的像素值边缘点。

需要说明的是,QR码中具有两个第二定位图形,上述步骤S103是确定了每个第二定位图形的单定位图形侧对应的像素值边缘点。

具体的,在一实施例中,如图4所示,上述步骤S103可以包括下述步骤S201至步骤S205。

步骤S201、将第一定位图形分别与两侧的第二定位图形进行中心点位置连接,得到两条中心点连线。

如图5中左图所示,步骤S102确定了第一定位图形β的中心点位置B、第二定位图形α的中心点位置A和第二定位图形γ的中心点位置C。在此基础上,如图5中右图所示,将第一定位图形的中心点位置B,分别与两侧的第二定位图形的中心点位置A、C进行连接,得到中心点连线AB和中心点连线BC。

步骤S202、对于每一中心点连线,在中心点连线的延长线上确定出第一定位图形的一侧对应的像素值边缘点和第二定位图形的一侧对应的像素值边缘点,得到第一定位图形的两侧分别对应的像素值边缘点,以及各第二定位图形的单定位图形侧对应的像素值边缘点。

其中,像素值边缘点为像素值变化的边缘点,即白色和黑色的边界点。在具体实施时,由于定位图形具有多个像素值边缘点,上述像素值边缘点可以指的是最外侧的一个像素值边缘点,也可以指的是所有的像素值边缘点,即三个像素值边缘点。

本实施例中,一条中心点连线在两个方向的延长线会经过第一定位图形的一侧(具体是双定位图形侧)的像素值边缘点和一个第二定位图形的一侧(具体是单定位图形侧)的像素值边缘点。

在具体实施时,可以采用像素值线段扫描的方式确定像素值边缘点,例如,请一并参看图5中右图,对于中心点连线AB,以在A到B方向的延长线上确定第一定位图形的一侧对应的像素值边缘点为例,可以通过以下方法实现确定像素值边缘点:

在中心点连线AB的延长线上确定扫描边界点D,例如,在中心点连线AB的延长线上取中心点连线AB的总长度的1/4长度得到点D,扫描BD,确定像素值边缘点。

其中,具体的扫描方法可以为:

如图6中左图所示,记录点B的像素值,向D方向记录下一个像素的像素值,判断该像素值是否与点B的像素值相同,若相同,继续记录下一个像素的像素值,直至遇到与点B的像素值不同的像素,将该像素记为点p1,记录点p1的位置、像素值。得到点p1后,继续往D的方向扫描,直至遇到与点p1的像素值不一样的像素,将该像素记为点p2,并记录点p2的位置、像素值。得到点p2后,同理,继续往D的方向扫描,得到点p3。此时可以将p3作为第一定位图形β的一侧对应的像素值边缘点。

同理,如图6中的中间图所示,对于B到A方向的延长线上确定第二定位图形α的一侧(单定位图形侧)对应的像素值边缘点,可以先确定出扫描边界点E,并根据上述扫描方法,依次确定出p10、p11和p12,并将p12确定为作为第二定位图形α的一侧(单定位图形侧)对应的像素值边缘点。

同理,如图6中左图和右图所示,对于中心点连线BC,则可以根据上述方法先确定出C到B方向上的扫描边界点F,依次确定出p4、p5和p6,并将p6作为第一定位图形β的另一侧对应的像素值边缘点;确定出B到C方向上的扫描边界点H,依次确定出p16、p17和p18,并将p18作为第二定位图形γ的一侧(单定位图形侧)对应的像素值边缘点。

步骤S203、将各中心点连线分别平移至对侧,得到分别经过一个第二定位图形的中心点位置的近似中心点连线。

具体的,中心点连线BC平移至对侧,得到经过第二定位图形α的中心点位置A的近似中心点连线,中心点连线AB平移至对侧,得到经过第二定位图形γ的中心点位置C的近似中心点连线。

步骤S204、对于每一近似中心点连线,在近似中心点连线的延长线上确定出第二定位图形的双定位图形侧对应的像素值边缘点。

其中,像素值边缘点为像素值变化的边缘点,即白色和黑色的边界点。本实施例中,上述步骤S203得到了分别经过一个第二定位图形的中心点位置的两条近似中心点连线,对于每条近似中心点连线,均在近似中心点连线的延长线上确定出第二定位图形的双定位图形侧对应的像素值边缘点。

具体的,在近似中心点连线的延长线上确定出第二定位图形的双定位图形侧对应的像素值边缘点的方法可以采用上述步骤S202中在中心点连线的延长线上确定出定位图形的像素值边缘点的方法实现。

例如,对于第二定位图形α,如图6中的中间一图所示,根据上述方法先确定出近似中心点连线的延长线上的扫描边界点G,然后依次扫描确定出p7、p8和p9,并将p9作为第二定位图形α的双定位图形侧对应的像素值边缘点;对于第二定位图形γ,如图6中右图所示,根据上述方法确定出近似中心点连线的延长线上的扫描边界点I,依次扫描确定出p13、p14和p15,并将p15作为第二定位图形γ的双定位图形侧对应的像素值边缘点。

步骤S205、在待检测QR码图像的双定位图形侧中,将第一定位图形对应的像素值边缘点与同侧的第二定位图形的双定位图形侧对应的像素值边缘点进行连接,得到双定位图形侧的QR码边缘线。

本实施例中,在得到各定位图形两侧的像素值边缘点后,对于QR码中的每个双定位图形侧,将第一定位图形对应的像素值边缘点与同侧的第二定位图形的双定位图形侧对应的像素值边缘点进行连接,得到两个双定位图形侧的QR码边缘线。

如图7所示,将第一定位图形对应的像素值边缘点p3与第二定位图形γ对应的像素值边缘点p15进行连接,得到一个双定位图形侧的QR码边缘线L1;将第一定位图形对应的像素值边缘点p6与第二定位图形α对应的像素值边缘点p9进行连接,得到另一个双定位图形侧的QR码边缘线L2。

步骤S104、基于第二定位图形的单定位图形侧对应的像素值边缘点和中心点位置的连线的平行方向确定单定位图形侧的多个目标边缘点。

其中,上述目标边缘点为位于QR码的单定位图形侧的边缘上的点。

本实施例中,通过上述步骤S103中已确定出QR码中两个双定位图形侧的QR码边缘线,对于单定位图形侧,由于仅具备一个定位图形,为提高拟合得到的边缘线的准确性,依赖中心点位置的连线的平行方向和第二定位图形的单定位图形侧对应的像素值边缘点来先确定单定位图形侧的边缘上的点(即,目标边缘点),再确定出边缘线。

具体的,对于第二定位图形γ的单定位图形侧,基于另一第二定位图形α与第一定位图形β之间的中心点连线AB的平行方向确定该第二定位图形γ的单定位图形侧的多个目标边缘点;对于第二定位图形α的单定位图形侧,基于另一第二定位图形γ与第一定位图形β之间的中心点连线BC的平行方向确定该第二定位图形α的单定位图形侧的多个目标边缘点。

对于每一个上述第二定位图形的单定位图形侧,具体的,在一实施例中,上述第二定位图形的单定位图形侧对应的像素值边缘点包括第二定位图形中的第一像素值边缘点、第二像素值边缘点以及第三像素值边缘点,第一像素值边缘点、第二像素值边缘点以及第三像素值边缘点在第二定位图形与第一定位图形的中心点位置的连线上按远离第一定位图形的方向依次排布,基于此,如图8所示,上述步骤S104具体可以包括下述步骤S301至步骤S305。

步骤S301、获取与第二定位图形的单定位图形侧对应的像素值边缘点对应的边缘辅助定位点;边缘辅助定位点包括第一辅助定位点、第二辅助定位点,以及第三辅助定位点。

本实施例中,为简便说明,下面以第二定位图形γ为例进行具体介绍,对于第二定位图形α则可以根据相同的步骤和原理进行执行,在此不赘述。

如图9所示,第二定位图形γ中的第一像素值边缘点为p16、第二像素值边缘点为p17,第三像素值边缘点为p18。

其中,上述边缘辅助定位点均用于辅助确定目标边缘点,具体的,第一辅助定位点为第一像素值边缘点与第二像素值边缘点的中点,第二辅助定位点为第二像素值边缘点与第三像素值边缘点的中点,第三辅助定位点位于第一辅助定位点和第二辅助定位点的连线上,且第三辅助定位点与第二辅助定位点之间的距离等于第二辅助定位点与第一辅助定位点的距离。如图9所示,m1为第一辅助定位点,m2为第二辅助定位点,m3为第三辅助定位点。

步骤S302、构建与第一定位图形和另一所述第二定位图形之间的所述中心点连线平行,且经过所述第一辅助定位点的辅助定位线。

本实施例中,以第二定位图形γ为例,如图10所示,构建与第一定位图形β和第二定位图形α之间的中心点连线AB平行,且经过上述第一辅助定位点m1的辅助定位线L’。

步骤S303、保持第一辅助定位点和第三辅助定位点之间的相对位置不变,将第一辅助定位点沿着辅助定位线间隔预设距离移动使得第一辅助定位点和第三辅助定位点到达的点作为候选辅助定位点对,得到多个候选辅助定位点对;每一候选辅助定位点对包括第一候选辅助定位点和第三候选辅助定位点。

其中,上述候选辅助定位点对为候选的辅助定位点对,辅助定位点对用于辅助进行边缘定位。

具体的,第一辅助定位点位于辅助定位线上,第一辅助定位点和第三辅助定位点可作为一个整体,当第一辅助定位点沿着辅助定位线间隔预设距离移动时,第三辅助定位点也随着移动,在此过程中,将第一辅助定位点和第三辅助定位点到达的位置点作为候选辅助定位点对。每一候选辅助定位点对均包括第一辅助定位点到达的第一候选辅助定位点,以及第三辅助定位点到达的第三候选辅助定位点。

如图11中左图所示,得到了多个候选辅助定位点对,每一候选辅助定位点对包括两个点。

在一些实施方式中,还可以是一并保持第二辅助定位点和第一辅助定位点之间的相随位置不变,使第二辅助定位点一并随着第一辅助定位点的移动而到达多个第二候选辅助定位点,此时,得到的每一候选辅助定位点对包括第一候选辅助定位点、第二候选辅助定位点和第三候选辅助定位点。此时,如图11中右图所示,得到了多个候选辅助定位点对,每一候选辅助定位点对包括三个点。

步骤S304、在多个候选辅助定位点对中,基于连接第三候选辅助定位点与第一候选辅助定位点构成的辅助定位线段中目标像素值对应的总数比例确定目标辅助定位点对,得到多个目标辅助定位点对。

其中,上述目标像素值为白色对应的像素值;上述目标像素值对应的总数比例为辅助定位线段中目标像素值对应的总数与辅助定位线段中所有像素值对应的总数的比值。

本实施例中,得到多个候选辅助定位点对后,需要从中确定出能够辅助定位边缘的目标辅助定位点对。具体的,对于每一候选辅助定位点对,连接候选辅助定位点对中的第三候选辅助定位点与第一候选辅助定位点,得到辅助定位线段,根据辅助定位线段中目标像素值对应的总数比例来确定该候选辅助定位点对是否为目标辅助定位点对。

本实施例中,具体的,若辅助定位线段中目标像素值对应的总数比例大于预设的比例阈值,则可以确定该候选辅助定位点对为目标辅助定位点对,否则,该候选辅助定位点对不是目标辅助定位点对,该比例阈值可以根据实际情况确定,例如,在一具体的实施方式中,该比例阈值可以为四分之一。

请一并参阅图12,在一个具体的实施方式中,可以采用如下方法确定辅助定位线段中目标像素值对应的总数比例:

1)连接第一辅助定位点m1和第三辅助定位点m3,得到线段L

2)将(mb-ma)与(m3-m1)相除,得到辅助定位线段中目标像素值对应的总数比例。

步骤S305、对于每一目标辅助定位点对,将辅助定位线段中第一像素值与第二像素值的边缘点作为目标边缘点。

本实施例中,对于每一目标辅助定位点对,将目标辅助定位点对中由第一辅助定位点和第三辅助定位点构成的辅助定位线段中的第一像素值与第二像素值的边缘点作为目标边缘点。

其中,目标边缘点为QR码中单定位图形侧的边缘点;辅助定位线段中第一像素值和第二像素值的边缘点为辅助定位线段中第一像素值和第二像素值的边界点,在具体实施时,是指辅助定位线段中,距离第一辅助定位点最远的第一像素值和第二像素值的边界点。

如图12所示,ma、mb均为第一像素值和第二像素值的边缘点,将mb作为目标边缘点。

步骤S105、利用多个目标边缘点进行直线拟合,得到单定位图形侧的QR码边缘线。

本实施例中,得到的目标边缘点之后,利用目标边缘点进行直线拟合,进而得到第二定位图形的单定位图形侧的QR码边缘线。

综上,本申请实施例中,考虑到QR码中的定位图形通常对称设置,可用于辅助边缘定位,本申请中首先基于预设的定位图形中心点检测策略确定所述待检测QR码图像中各定位图形的中心点位置,进而基于所述中心点位置的连线确定所述待检测QR码图像中双定位图形侧的QR码边缘线,以及所述第二定位图形的单定位图形侧对应的像素值边缘点,对于QR码中只有一个定位图形的单定位图形侧,进一步基于所述第二定位图形的单定位图形侧对应的像素值边缘点和所述中心点位置的连线的平行方向确定单定位图形侧的多个目标边缘点,进而利用所述多个目标边缘点进行直线拟合,得到单定位图形侧的QR码边缘线。与现有技术中采用常规的图像边缘定位算子进行计算相比,本申请结合了QR码的特性来进行QR码的边缘定位,有利于提高QR码的边缘定位准确度,进而有助于提高后续QR码的解码效果。

为提高单定位图形侧的边缘拟合的准确性,对于每一条单定位图形侧的边缘线,在一实施例中,如图13所示,在上述步骤S105之后,本申请提供的QR码的边缘定位方法还可以进一步包括下述步骤S401至步骤S404。

步骤S401、判断单定位图形侧的QR码边缘线是否为合格边缘线。

在具体实施时,可以根据单定位图形侧的QR码边缘线和双定位图形侧的QR码边缘线之间的平行关系来确定单定位图形侧的QR码边缘线是否为合格边缘线。为提高判断的精确性,还可以根据QR码边缘线是否经过QR码内部来确定该QR码边缘线是否为合格边缘线。

例如,在一实施例中,步骤S401可以包括以下步骤:

获取单定位图形侧的QR码边缘线上内点对应的第一总数和边缘点对应的第二总数;

判断第一总数与第二总数的比值是否大于预设比例阈值;

若第一总数与第二总数的比值大于预设比例阈值,则确定单定位图形侧的QR码边缘线不为合格边缘线;

若第一总数与第二总数的比值不大于预设比例阈值,则确定单定位图形侧的QR码边缘线为合格边缘线。

其中,上述内点指的是该点四周的点中不存在与该点的像素值不同的点,上述边缘点指的是该点四周的点中存在与该点的像素值不同的点。如图14所示,K点为内点,Q点为边缘点。

其中,第一总数为QR码边缘线上具有的内点的总数;第二总数为QR码边缘线上具有的边缘点的总数。本实施例中,当QR码边缘线位于QR码内部时,QR码边缘线上内点数量较多,当QR码边缘线位于QR码边缘区域时,QR码边缘线上内点数量较少,因此判断内点对应的第一总数与边缘点对应的第二总数的比值是否大于预设比例阈值,若大于预设比例阈值,说明QR码边缘线上内点数量较多,边缘线经过了QR码内部,确定单定位图形侧的QR码边缘线不为合格边缘线。

步骤S402、当单定位图形侧的QR码边缘线不为合格边缘线时,基于各定位图形的中心点位置获取另一中心点位置,并获取单定位图形侧的QR码边缘线与双定位图形侧的QR码边缘线之间的边缘交点。

具体的,上述另一中心点位置为QR码中不具有定位图形的一个边角处对应的中心点位置。在具体实施时,可以基于对称性,根据各定位图形的中心点位置确定另一中心点位置。

例如,若中心点位置A、B、C如图5所示,中心点位置A对应的坐标为(A

e

e

如图15中左图所示,e为获取到的另一中心点位置,以右下角的第二定位图形γ为例,单定位图形侧的QR码边缘线为L3,该单定位图形侧的QR码边缘线L3与双定位图形侧的QR码边缘线L1之间的边缘交点为s。

步骤S403、获取连接另一第二定位图形的中心点位置,以及另一中心点位置的第一辅助调整线。

其中,上述第一辅助调整线用于确定出单定位图形侧的合格的QR码边缘线的一个端点,另一个端点为上述边缘交点。

本实施例中,如图15中左图所示,以右下角的第二定位图形γ为例,第一辅助调整线的两个端点分别为另一第二定位图形α的中心点位置A,以及另一中心点位置e,连接A和e,得到第一辅助调整线。

步骤S404、确定连接边缘交点与目标延长线的目标线段,并将目标线段作为单定位图形侧的QR码边缘线;其中,目标延长线为第一辅助调整线对应的远离另一第二定位图形的中心点位置的延长线。

本实施例中,需在上述目标延长线确定出合格的QR码边缘线的一个端点,具体的,可以通过将边缘交点依次与目标延长线上的各像素点进行连接,得到多个候选线段,进而在候选线段中确定出目标线段,进而将该目标线段作为单定位图形侧的QR码边缘线。

具体的,在一实施例中,步骤S404可以包括:

在第一辅助调整线对应的远离另一第二定位图形的中心点位置的延长线方向上,以另一中心点位置为调整起点,将与调整起点的距离为预设距离的点作为调整终点;

确定由调整起点和调整终点构成的线段中多个点分别与边缘交点构成的线段,得到多个候选边缘线段;

基于预设的边缘拟合程度评价策略在多个候选边缘线段中确定出目标线段。

其中,上述预设的边缘拟合程度评价策略用于评价候选边缘线段对于边缘的拟合程度,具体可以根据实际情况确定,在一些实施方式中,可以采用上述步骤S401中的内点总数和边缘点总数的判断方法作为预设的边缘拟合程度评价策略。

本实施例中,如图15中右图所示,以e作为调整起点,以距离e预设距离的Z作为调整终点,在线段e-Z上确定出多个点,分别连接s与多个点,可得到多个候选边缘线段,在此基础上,基于预设的边缘拟合程度评价策略,可以确定出经过多个点中的W点的目标线段。

本实施例中,通过对得到的单定位图形侧的QR码边缘线是否为合格边缘线进行判断,并在确定单定位图形侧的QR码边缘线不为合格边缘线时进行调整,重新确定出合格的单定位图形侧的QR码边缘线,提高了QR码中单定位图形侧的QR码边缘线的拟合准确度和拟合精度,有利于识别QR码的内容。

本申请实施例还提供一种QR码的边缘定位装置,该QR码的边缘定位装置用于执行前述QR码的边缘定位方法的任一实施例中的步骤。具体地,请参阅图16,图16示出了本申请实施例提供的一种QR码的边缘定位装置500的结构示意图,该QR码的边缘定位装置500具体包括获取单元501、第一确定单元502、第二确定单元503、第三确定单元504和直线拟合单元505。

获取单元501,用于获取经过二值化预处理的待检测QR码图像;所述待检测QR码图像中包括第一定位图形,以及分别位于所述第一定位图像两侧的第二定位图形;

第一确定单元502,用于基于预设的定位图形中心点检测策略确定所述待检测QR码图像中各定位图形的中心点位置;

第二确定单元503,用于基于所述中心点位置的连线确定所述待检测QR码图像中双定位图形侧的QR码边缘线,以及所述第二定位图形的单定位图形侧对应的像素值边缘点;其中,所述第一定位图形与邻近的一个所述第二定位图形组成所述双定位图形;

第三确定单元504,用于基于所述第二定位图形的单定位图形侧对应的像素值边缘点和所述中心点位置的连线的平行方向确定单定位图形侧的多个目标边缘点;

直线拟合单元505,用于利用所述多个目标边缘点进行直线拟合,得到单定位图形侧的QR码边缘线。

在一些实施方式中,所述第一确定单元502可以具体用于:对所述待检测QR码图像进行横向扫描,得到各行中的第一像素值线段和第二像素值线段;对所述待检测QR码图像进行纵向扫描,得到各列中的第一像素值线段和第二像素值线段;根据定位图形对应的像素值长度比例特征,以及各行和各列中的第一像素值线段和第二像素值线段的长度确定出各定位图形的所述中心点位置所在的目标中心区域;对于每一定位图形对应的所述目标中心区域,将所述目标中心区域的中心点确定为所述定位图形对应的中心点位置,得到各定位图形的所述中心点位置。

在一些实施方式中,所述第二确定单元503可以具体用于:将所述第一定位图形分别与两侧的所述第二定位图形进行中心点位置连接,得到两条中心点连线;对于每一所述中心点连线,在所述中心点连线的延长线上确定出所述第一定位图形的一侧对应的像素值边缘点和所述第二定位图形的一侧对应的像素值边缘点,得到所述第一定位图形的两侧分别对应的像素值边缘点,以及各所述第二定位图形的单定位图形侧对应的像素值边缘点;将各所述中心点连线分别平移至对侧,得到分别经过一个所述第二定位图形的所述中心点位置的近似中心点连线;对于每一所述近似中心点连线,在所述近似中心点连线的延长线上确定出所述第二定位图形的双定位图形侧对应的像素值边缘点;在所述待检测QR码图像的双定位图形侧中,将所述第一定位图形对应的像素值边缘点与同侧的所述第二定位图形的双定位图形侧对应的像素值边缘点进行连接,得到所述双定位图形侧的QR码边缘线。

在一些实施方式中,所述第二定位图形的单定位图形侧对应的像素值边缘点包括所述第二定位图形中的第一像素值边缘点、第二像素值边缘点以及第三像素值边缘点;所述第一像素值边缘点、第二像素值边缘点以及第三像素值边缘点在所述第二定位图形与所述第一定位图形的所述中心点位置的连线上按远离所述第一定位图形的方向依次排布;所述第三确定单元504可以具体用于:获取与所述第二定位图形的单定位图形侧对应的像素值边缘点对应的边缘辅助定位点;所述边缘辅助定位点包括第一辅助定位点、第二辅助定位点,以及第三辅助定位点;所述第一辅助定位点为所述第一像素值边缘点与所述第二像素值边缘点的中点,所述第二辅助定位点为所述第二像素值边缘点与所述第三像素值边缘点的中点,所述第三辅助定位点位于所述第一辅助定位点和所述第二辅助定位点的连线上,且所述第三辅助定位点与所述第二辅助定位点之间的距离等于所述第二辅助定位点与所述第一辅助定位点的距离;构建与所述第一定位图形和另一所述第二定位图形之间的所述中心点连线平行,且经过所述第一辅助定位点的辅助定位线;保持所述第一辅助定位点和所述第三辅助定位点之间的相对位置不变,将所述第一辅助定位点沿着所述辅助定位线间隔预设距离移动使得所述第一辅助定位点和所述第三辅助定位点到达的点作为候选辅助定位点对,得到多个所述候选辅助定位点对;每一所述候选辅助定位点对包括第一候选辅助定位点和第三候选辅助定位点;在多个所述候选辅助定位点对中,基于连接所述第三候选辅助定位点与所述第一候选辅助定位点构成的辅助定位线段中目标像素值对应的总数比例确定目标辅助定位点对,得到多个所述目标辅助定位点对;对于每一所述目标辅助定位点对,将所述辅助定位线段中第一像素值与第二像素值的边缘点作为所述目标边缘点。

在一些实施方式中,所述QR码的边缘定位装置还可以包括判断单元,用于判断所述单定位图形侧的QR码边缘线是否为合格边缘线;所述获取单元501还可以用于:若所述单定位图形侧的QR码边缘线不为合格边缘线,则基于所述各定位图形的中心点位置获取另一中心点位置,并获取所述单定位图形侧的QR码边缘线与所述双定位图形侧的QR码边缘线之间的边缘交点;获取连接另一所述第二定位图形的所述中心点位置,以及所述另一中心点位置的第一辅助调整线;所述第三确定单元504还可以用于:确定连接所述边缘交点与目标延长线的目标线段,并将所述目标线段作为所述单定位图形侧的QR码边缘线;其中,所述目标延长线为所述第一辅助调整线对应的远离所述另一所述第二定位图形的所述中心点位置的延长线。

在一些实施方式中,所述第三确定单元504可以具体用于:在所述第一辅助调整线对应的远离所述另一所述第二定位图形的所述中心点位置的延长线方向上,以所述另一中心点位置为调整起点,将与所述调整起点的距离为预设距离的点作为调整终点;确定由所述调整起点和所述调整终点构成的线段中多个点分别与所述边缘交点构成的线段,得到多个候选边缘线段;基于预设的边缘拟合程度评价策略在所述多个候选边缘线段中确定出所述目标线段。

在一些实施方式中,所述判断单元可以具体用于:获取所述单定位图形侧的QR码边缘线上内点对应的第一总数和边缘点对应的第二总数;判断所述第一总数与所述第二总数的比值是否大于预设比例阈值;若所述第一总数与所述第二总数的比值大于预设比例阈值,则确定所述单定位图形侧的QR码边缘线不为合格边缘线;若所述第一总数与所述第二总数的比值不大于预设比例阈值,则确定所述单定位图形侧的QR码边缘线为合格边缘线。

需要说明的是,所属领域的技术人员可以清楚地了解到,上述QR码的边缘定位装置500和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。

上述QR码的边缘定位装置可以实现为计算机程序的形式,该计算机程序可以在如图17示的计算机设备上运行。

请参阅图17,图17是本申请实施例提供的计算机设备的示意性框图。该计算机设备600可以是智能手机、平板电脑、个人电脑、智能穿戴设备、服务器等终端设备。参阅图17,该计算机设备600包括通过装置总线601连接的处理器602、存储器和网络接口605,其中,存储器可以包括存储介质603和内存储器604。

该存储介质603可存储操作系统6031和计算机程序6032。该计算机程序6032被执行时,可使得处理器602执行QR码的边缘定位方法。

该处理器602用于提供计算和控制能力,支撑整个计算机设备600的运行。

该内存储器604为存储介质603中的计算机程序6032的运行提供环境,该计算机程序6032被处理器602执行时,可使得处理器602执行QR码的边缘定位方法。

该网络接口605用于进行网络通信,如提供数据信息的传输等。本领域技术人员可以理解,图17中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备600的限定,具体的计算机设备600可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

其中,处理器602用于运行存储在存储器中的计算机程序6032,以实现本申请实施例公开的QR码的边缘定位方法。

本领域技术人员可以理解,图17中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图17所示实施例一致,在此不再赘述。

应当理解,在本申请实施例中,处理器602可以是中央处理单元(CentralProcessing Unit,CPU),该处理器602还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

在本申请的另一实施例中提供计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质,也可以为易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,其中计算机程序被处理器执行时实现本申请实施例公开的QR码的边缘定位方法。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,后台服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

技术分类

06120116523780