CN106980851B - 一种数据矩阵dm码的定位方法及装置 - Google Patents

一种数据矩阵dm码的定位方法及装置 Download PDF

Info

Publication number
CN106980851B
CN106980851B CN201710171094.2A CN201710171094A CN106980851B CN 106980851 B CN106980851 B CN 106980851B CN 201710171094 A CN201710171094 A CN 201710171094A CN 106980851 B CN106980851 B CN 106980851B
Authority
CN
China
Prior art keywords
line segment
straight
target straight
target
straight line
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
CN201710171094.2A
Other languages
English (en)
Other versions
CN106980851A (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.)
Zhejiang Huaray Technology Co Ltd
Original Assignee
Zhejiang Huaray Technology Co 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 Zhejiang Huaray Technology Co Ltd filed Critical Zhejiang Huaray Technology Co Ltd
Priority to CN201710171094.2A priority Critical patent/CN106980851B/zh
Publication of CN106980851A publication Critical patent/CN106980851A/zh
Application granted granted Critical
Publication of CN106980851B publication Critical patent/CN106980851B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/26Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
    • G06V10/267Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion by performing operations on regions, e.g. growing, shrinking or watersheds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/22Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
    • G06V10/225Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition based on a marking or identifier characterising the area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30204Marker
    • G06T2207/30208Marker matrix

Abstract

本发明公开了一种DM码的定位方法及装置,用以解决现有技术中在复杂场景中,DM码的定位效果差的问题。所述方法包括:针对待定位的原图像,根据原图像中的每个像素点的灰度值,确定所述原图像的梯度图以及梯度图中的每个像素点所在的象限;在梯度图中,根据每个像素点的梯度值,确定所述梯度图中的鞍点;并根据每个象限的方向,将每个象限中的鞍点进行连接,构成鞍点线段;按照链码的顺序,拟合每个鞍点线段中极性相同的像素点,构成每个直线段;对满足预设的第一距离条件及第一角度条件的对应的每个直线段进行连接;将相互连接的两个直线段作为目标直线段,根据两个目标直线段,确定DM码。这样在复杂场景中,也可以快速精确的定位二维码。

Description

一种数据矩阵DM码的定位方法及装置
技术领域
本发明涉及视觉图像处理技术领域,特别涉及一种数据矩阵(DataMatrix,DM)码的定位方法及装置。
背景技术
条码技术是在计算机技术与信息技术基础上发展起来的一门集编码、印刷、识别、数据采集和处理于一身的新兴技术。条码技术由于其识别快速、准确、可靠以及成本低等优点,被广泛应用于商业、图书管理、仓储、邮电、交通和工业控制等领域,并且势必在逐渐兴起的“物联网”应用中发挥重大的作用。
基于视觉系统的二维码检测方案中,主要分为二维码区域的定位和二维码区域的解码。在二维码区域的定位过程中,如何高效的过滤掉图像中非码区域,一直是一个重要的研究课题。
现有的二维码中的DM码的定位方案包括:1、过滤图像中的非码区域,利用DM码的直线性质,通过形态学的方法检测得到码区域的一个二值图像,然后通过扫描线以及黑白比特征进行DM码区域的定位。2、通过形态学检测二值边缘图像,通过霍夫Hough变换查找直线,然后组合得到L型,通过L型特征进行DM码区域的定位。3、通过DM码内部的角点聚集程度,对非码区域进行过滤。
采用上述各个方法对DM码进行定位时,在复杂场景中,例如噪声较多、对比度差以及纹理丰富时,无法获取较高的检测率,DM码定位效果差。
发明内容
本发明提供一种DM码的定位方法及装置,用以解决现有技术中在复杂场景中,DM码的定位效果差的问题。
为达到上述目的,本发明实施例公开了一种DM码的定位方法,所述方法包括:
针对待定位的原图像,根据所述原图像中的每个像素点的灰度值,确定所述原图像的梯度图以及所述梯度图中的每个像素点所在的象限;
在所述梯度图中,根据每个像素点的梯度值,确定所述梯度图中的鞍点;并根据每个象限的方向,将每个象限中的鞍点进行连接,构成鞍点线段;
按照链码的顺序,拟合每个鞍点线段中极性相同的像素点,构成每个直线段;
对满足预设的第一距离条件及第一角度条件的对应的每个直线段进行连接;
将相互连接的两个直线段作为目标直线段,根据所述两个目标直线段,确定DM码。
进一步地,所述确定梯度图中的每个像素点所在的象限包括:
针对所述梯度图中的每个像素点,识别该像素点在预设第一方向上的第一子梯度值以及预设第二方向上的第二子梯度值,其中第一方向和第二方向相互垂直;
根据第一子梯度值与第二子梯度值的正负,确定梯度图中的每个像素点所在的象限。
进一步地,所述对满足预设的第一距离条件及第一角度条件的对应的每个直线段进行连接包括:
针对每一个第一直线段,判断任意一个第二直线段是否与该第一直线段的第一夹角在预设的第一角度范围内,且与该第一直线段的距离小于预设的第一距离阈值,如果是,将该第一直线段与所述第二直线段进行连接。
进一步地,在根据所述两个目标直线段,确定DM码之前,所述方法还包括:
针对两个目标直线段中的任意一个第一目标直线段,进行如下过程:
A、判断是否存在与所述第一目标直线段的第二夹角在预设的第二角度范围内,且与所述第一目标直线段的距离小于预设的第二距离阈值的第三直线段;
B、如果是,根据所述第三直线段与所述第一目标直线段对所述第一目标直线段进行第一更新,返回步骤A;
C、如果否,则进行后续步骤。
进一步地,所述根据所述两个目标直线段,确定DM码之前,所述方法还包括:
根据两个目标直线段,确定与两个所述目标直线段对应平行并与所述两个目标直线段构成第一封闭区域的每个第四直线段;
根据所述第一封闭区域内的每个目标直线段及每个第四直线段,确定每个包含对应目标直线段或包含对应第四直线段的第二封闭区域;
根据所述第一封闭区域对应的每个第二封闭区域内的像素点的灰度值,判断是否对所述第一封闭区域进行更新;
如果是,则对所述第一封闭区域内的每个目标直线段进行第二更新。
进一步地,所述根据所述第一封闭区域对应的每个第二封闭区域内像素点的灰度值,判断是否对所述第一封闭区域进行更新包括:
针对所述第一封闭区域对应的每个第二封闭区域,判断包含目标直线段的第二封闭区域内的像素点的灰度值,在与该第二封闭区域包含的目标直线段垂直的方向上的变化规律与预设变化规律是否匹配,以及判断包含第四直线段的第二封闭区域内的像素点的灰度值,在与该第二封闭区域包含的第四直线段垂直的方向上的变化规律与所述预设变化规律是否匹配;
如果所述第一封闭区域对应的每个第二封闭区域对应的匹配结果均为是,则对所述第一封闭区域进行更新;
如果所述第一封闭区域对应的每个第二封闭区域中有至少一个第二封闭区域对应的匹配结果为否,则不对所述第一封闭区域进行更新。
进一步地,所述对第一封闭区域内的每个目标直线段进行第二更新包括:
针对第一封闭区域内的每个目标直线段,确定包含该目标直线段的第二封闭区域内的与该目标直线段平行的直线段;
识别所述平行的直线段中的平均灰度值最小的直线段;
根据所述平均灰度值最小的直线段,对所述目标直线段进行第二更新。
进一步地,所述根据所述第一封闭区域内的每个目标直线段及每个第四直线段,确定每个包含对应目标直线段或包含对应第四直线段的第二封闭区域之前,所述方法还包括:
针对每个第一封闭区域,根据该第一封闭区域内的像素点的灰度值及像素点的数量,判断是否将该第一封闭区域删除;
针对未被删除的第一封闭区域,进行后续步骤。
进一步地,所述根据该第一封闭区域内的像素点的灰度值及像素点的数量,判断是否将该第一封闭区域删除包括以下至少一种:
针对该第一封闭区域,判断该第一封闭区域内的具有极性的像素点的第一数量与该第一封闭区域内的所有像素点的第二数量的比值是否大于预设的第一阈值,如果否,则将该第一封闭区域删除;
针对该第一封闭区域,判断该第一封闭区域内的像素点的灰度值相同的行和/或列的数量占该第一封闭区域内的像素点构成的所有行和/或所有列的比值是否小于预设的第二阈值,如果否,则将该第一封闭区域删除;
针对该第一封闭区域,判断该第一封闭区域内的灰度值为最大值的像素点的第三数量与该第一封闭区域内的所有像素点的第二数量的比值是否在预设的比值范围内,如果否,则将该第一封闭区域删除。
进一步地,在对第一封闭区域内的每个目标直线段进行第二更新之后,所述方法还包括:
针对每个第二更新后的目标直线段,根据该目标直线段的预设区域范围内的像素点的灰度值对该目标直线段进行第三更新。
进一步地,所述根据所述两个目标直线段,确定DM码之前,所述方法还包括:
判断所述原图像是否为所述原图像的金字塔图像中的最大尺度的图像;
如果否,则根据金字塔图像中的每个级别与图像的尺度的对应关系,确定与所述原图像的级别相邻级别的图像,在所述相邻级别的图像中确定两个所述目标直线段的投影直线段,并在所述相邻级别的图像中,将所述投影直线段作为目标直线段,进行后续步骤,其中,所述相邻级别的图像的尺度较原图像的尺度大;
如果是,则在最大尺度的原图像中,进行后续步骤。
进一步地,所述根据所述两个目标直线段,确定DM码包括:
针对两个目标直线段中的每个目标直线段,确定与该目标直线段对应平行且对应长度相同的第五直线段;
将两个所述目标直线段以及两个所述第五直线段构成的图形,确定为DM码。
进一步地,所述将两个所述目标直线段以及两个所述第五直线段构成的图形,确定为DM码包括:
针对DM码的每个所述目标直线段以及每个所述第五直线段,采用包围盒算法确定该DM码的边缘,针对DM码的每个边缘,按照设定的规则选取至少一个边缘像素点,以该边缘像素点为中心,确定矩形区域,对每个矩形区域内的像素点进行投影,根据投影的峰值,确定每个矩形区域的投影边缘点,通过预设的算法将得到的每个矩形区域的边缘点拟合为一个矩形图形框,将该矩形框确定为该DM码精确的边缘。
本发明实施例公开了一种数据矩阵DM码的定位装置,所述装置包括:
确定模块,用于针对待定位的原图像,根据所述原图像中的每个像素点的灰度值,确定所述原图像的梯度图以及所述梯度图中的每个像素点所在的象限;
所述确定模块,还用于在所述梯度图中,根据每个像素点的梯度值,确定所述梯度图中的鞍点;并根据每个象限的方向,将每个象限中的鞍点进行连接,构成鞍点线段;
所述确定模块,还用于按照链码的顺序,拟合每个鞍点线段中极性相同的像素点,构成每个直线段;
连接模块,用于对满足预设的第一距离条件及第一角度条件的对应的每个直线段进行连接;
定位模块,用于将相互连接的两个直线段作为目标直线段,根据所述两个目标直线段,确定DM码。
进一步地,所述确定模块,具体用于针对所述梯度图中的每个像素点,识别该像素点在预设第一方向上的第一子梯度值以及预设第二方向上的第二子梯度值,其中第一方向和第二方向相互垂直;根据第一子梯度值与第二子梯度值的正负,确定梯度图中的每个像素点所在的象限。
进一步地,所述连接模块,具体用于针对每一个第一直线段,判断任意一个第二直线段是否与该第一直线段的第一夹角在预设的第一角度范围内,且与该第一直线段的距离小于预设的第一距离阈值,如果是,将该第一直线段与所述第二直线段进行连接。
进一步地,所述装置还包括:
更新模块,用于针对两个目标直线段中的任意一个第一目标直线段,进行如下过程:A、判断是否存在与所述第一目标直线段的第二夹角在预设的第二角度范围内,且与所述第一目标直线段的距离小于预设的第二距离阈值的第三直线段;B、如果是,根据所述第三直线段与所述第一目标直线段对所述第一目标直线段进行第一更新,返回步骤A;C、如果否,则进行后续步骤。
进一步地,所述更新模块,还用于根据两个目标直线段,确定与两个所述目标直线段对应平行并与所述两个目标直线段构成第一封闭区域的每个第四直线段;根据所述第一封闭区域内的每个目标直线段及每个第四直线段,确定每个包含对应目标直线段或包含对应第四直线段的第二封闭区域;根据所述第一封闭区域对应的每个第二封闭区域内的像素点的灰度值,判断是否对所述第一封闭区域进行更新;如果是,则对所述第一封闭区域内的每个目标直线段进行第二更新。
进一步地,所述更新模块,具体用于针对所述第一封闭区域对应的每个第二封闭区域,判断包含目标直线段的第二封闭区域内的像素点的灰度值,在与该第二封闭区域包含的目标直线段垂直的方向上的变化规律与预设变化规律是否匹配,以及判断包含第四直线段的第二封闭区域内的像素点的灰度值,在与该第二封闭区域包含的第四直线段垂直的方向上的变化规律与所述预设变化规律是否匹配;如果所述第一封闭区域对应的每个第二封闭区域对应的匹配结果均为是,则对所述第一封闭区域进行更新;如果所述第一封闭区域对应的每个第二封闭区域中有至少一个第二封闭区域对应的匹配结果为否,则不对所述第一封闭区域进行更新。
进一步地,所述更新模块,具体用于针对第一封闭区域内的每个目标直线段,确定包含该目标直线段的第二封闭区域内的与该目标直线段平行的直线段;识别所述平行的直线段中的平均灰度值最小的直线段;根据所述平均灰度值最小的直线段,对所述目标直线段进行第二更新。
进一步地,所述装置还包括:
删除模块,用于针对每个第一封闭区域,根据该第一封闭区域内的像素点的灰度值及像素点的数量,判断是否将该第一封闭区域删除;针对未被删除的第一封闭区域,进行后续步骤。
进一步地,所述删除模块,具体用于针对该第一封闭区域,判断该第一封闭区域内的具有极性的像素点的第一数量与该第一封闭区域内的所有像素点的第二数量的比值是否大于预设的第一阈值,如果否,则将该第一封闭区域删除;和/或针对该第一封闭区域,判断该第一封闭区域内的像素点的灰度值相同的行和/或列的数量占该第一封闭区域内的像素点构成的所有行和/或所有列的比值是否小于预设的第二阈值,如果否,则将该第一封闭区域删除;和/或针对该第一封闭区域,判断该第一封闭区域内的灰度值为最大值的像素点的第三数量与该第一封闭区域内的所有像素点的第二数量的比值是否在预设的比值范围内,如果否,则将该第一封闭区域删除。
进一步地,所述更新模块,还用于针对每个第二更新后的目标直线段,根据该目标直线段的预设区域范围内的像素点的灰度值对该目标直线段进行第三更新。
进一步地,所述装置还包括:
判断模块,用于判断所述原图像是否为所述原图像的金字塔图像中的最大尺度的图像;当判断结果为否,则根据金字塔图像中的每个级别与图像的尺度的对应关系,确定与所述原图像的级别相邻级别的图像,在所述相邻级别的图像中确定两个所述目标直线段的投影直线段,并在所述相邻级别的图像中,将所述投影直线段作为目标直线段,进行后续步骤,其中,所述相邻级别的图像的尺度较原图像的尺度大;当判断结果为是,则触发定位模块。
进一步地,所述定位模块,具体用于针对两个目标直线段中的每个目标直线段,确定与该目标直线段对应平行且对应长度相同的第五直线段;将两个所述目标直线段以及两个所述第五直线段构成的图形,确定为DM码。
进一步地,所述定位模块,具体用于针对DM码的每个所述目标直线段以及每个所述第五直线段,采用包围盒算法确定该DM码的边缘,针对DM码的每个边缘,按照设定的规则选取至少一个边缘像素点,以该边缘像素点为中心,确定矩形区域,对每个矩形区域内的像素点进行投影,根据投影的峰值,确定每个矩形区域的投影边缘点,通过预设的算法将得到的每个矩形区域的边缘点拟合为一个矩形图形框,将该矩形框确定为该DM码精确的边缘。
本发明实施例公开了一种DM码的定位方法及装置,所述方法包括:针对待定位的原图像,根据所述原图像中的每个像素点的灰度值,确定所述原图像的梯度图以及所述梯度图中的每个像素点所在的象限;在所述梯度图中,根据每个像素点的梯度值,确定所述梯度图中的鞍点;并根据每个象限的方向,将每个象限中的鞍点进行连接,构成鞍点线段;按照链码的顺序,拟合每个鞍点线段中极性相同的像素点,构成每个直线段;对满足预设的第一距离条件及第一角度条件的对应的每个直线段进行连接;将相互连接的两个直线段作为目标直线段,根据所述两个目标直线段,确定DM码。由于在本发明实施例中,确定出原图像的梯度图以及所述梯度图中的每个像素点所在的象限,确定所述梯度图中的鞍点及鞍点线段,按照链码的顺序,拟合每个鞍点线段中极性相同的像素点,构成每个直线段。对满足预设的第一距离条件及第一角度条件的对应的每个直线段进行连接,将相互连接的两个直线段作为目标直线段,根据所述两个目标直线段,确定DM码。在复杂场景中,也可以快速精确的定位二维码。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种DM码的定位过程示意图;
图2为本发明实施例提供的一种DM码示意图;
图3A本发明实施例提供的一种第一目标直线段的包围区域示意图;
图3B为本发明实施例提供的一种第一封闭区域及对应的包含目标直线段的第二封闭区域的示意图;
图3C为本发明实施例提供的一种第一封闭区域对应的第二封闭区域示意图;
图4为本发明实施例提供的一种DM码的定位过程示意图;
图5为本发明实施例提供的一种DM码的定位装置结构图;
图6为本发明实施例提供的一种DM码的定位装置结构图。
具体实施方式
为了提高在复杂场景中,DM码的定位准确性,本发明实施例提供了一种DM码的定位方法及装置。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
图1为本发明实施例提供的一种DM码的定位过程示意图,该过程包括以下步骤:
S101:针对待定位的原图像,根据所述原图像中的每个像素点的灰度值,确定所述原图像的梯度图以及所述梯度图中的每个像素点所在的象限。
本发明实施例提供的DM码的定位方法可以应用于电子设备。该电子设备可以是手持式二维码扫描仪、固定式二维码扫描仪等设备,也可以是具有二维码定位功能的手机、平板电脑等终端设备。
电子设备可以识别待定位的原图像中的每个像素点的位置,以及每个像素点的灰度值,根据识别的每个像素点的灰度值,确定该像素点的梯度值。在确定该像素点的梯度值时,可以是确定该像素点在某一个方向上的梯度值,也可以是该像素点在相互垂直的两个方向上的梯度值。
如果确定的是该像素点在某一个方向上的梯度值,具体的可以是根据该像素点的灰度值及在预设方向上的与该像素点相邻的像素点的灰度值的差值的绝对值来确定。所述预设方向可以是该像素点的上方或下方中的一种,或者左方或右方中的一种。所述确定像素点的梯度值的过程属于现有技术,在本发明实施例中对该过程不进行赘述。
当把原图像中的每个像素点的梯度值均确定完成后,可以根据每个像素点在原图像中的位置,确定所述原图像的梯度图。在所述梯度图中,每个像素点的位置与原图像中的该像素点的位置是一致的。
针对所述梯度图中的每个像素点,电子设备还可以确定每个像素点所在的象限。在确定每个像素点所在的象限时,可以是根据该像素点的灰度值和与该像素点相邻的第一像素点的灰度值的第一差值,以及该像素点的灰度值和与该像素点相邻的第二像素点的灰度值的第二差值确定的。所述第一像素点和第二像素点位于该确定所在象限的像素点的两个方向上,并且两个方向相互垂直。确定每个像素点所在的象限的过程属于现有技术,在本发明实施例中对该过程不进行赘述。
在确定所述原图像的梯度图以及所述梯度图中的每个像素点所在的象限之前,可以该待定位的原图像进行高斯平滑,滤除噪声。
S102:在所述梯度图中,根据每个像素点的梯度值,确定所述梯度图中的鞍点。
当确定出梯度图后,可以在所述梯度图中,根据每个像素点的梯度值,确定所述梯度图中的鞍点。在确定所述梯度图中的鞍点时,可以是根据该像素点的梯度值以及与该像素点相邻的像素点的梯度值确定的。所述确定所述梯度图中的鞍点的过程属于现有技术,在本发明实施例中对该过程不进行赘述。
S103:针对所述梯度图中的每个像素点所在的象限,根据每个象限的方向,将每个象限中的鞍点进行连接,构成鞍点线段。
所述梯度图中的每个像素点有其所在的象限,当确定出每个鞍点后,所述鞍点也有其所在的象限。所述象限可以是第一象限,可以是第二象限,可以是第三象限,也可以是第四象限。每个鞍点所在的象限是唯一的,每个象限中的鞍点可以是一个,也可以是多个。
每个象限有其对应的方向,将每个象限中的鞍点根据每个象限的方向进行连接,则会构成鞍点线段。所述鞍点线段可以是直线,也可以是非直线。
每个象限的方向为沿着构成该象限的每个坐标轴对应的方向。例如,构成象限的坐标系为XY坐标系,则坐标轴为X轴和Y轴。第一象限的方向为沿着X轴的正方向以及Y轴的正方向对应的方向,第二象限的方向为沿着X轴的负方向以及Y轴的正方向对应的方向,第三象限的方向为沿着X轴的负方向以及Y轴的负方向对应的方向,第四象限的方向为沿着X轴的正方向以及Y轴的负方向对应的方向。
在进行第一象限的鞍点线段连接时,可以是沿着X轴的正方向进行连接,也可以是沿着Y轴的正方向进行连接,还可以是沿着与X轴的夹角为45度的方向进行连接。
S104:按照链码的顺序,拟合每个鞍点线段中极性相同的像素点,构成每个直线段。
当确定出每个鞍点线段后,电子设备可以识别出每个鞍点线段中的每个像素点的极性。
电子设备中保存有链码的顺序,当识别出每个鞍点线段中的每个像素点的极性后,可以针对每个鞍点线段,按照链码的顺序,拟合该鞍点线段中极性相同的像素点,构成直线段段。电子设备在确定每个像素点的极性时,可以是根据该像素点的灰度值及与其相邻的每个像素点的灰度值的差确定的。确定每个像素点的极性的过程属于现有技术,在本发明实施例中对该过程不进行赘述。所述按照链码的顺序,拟合极性相同的像素点,构成直线段的过程属于现有技术,在本发明实施例中对该过程不进行赘述。
上述确定直线段的过程可以称为极性线段检测过程。
S105:对满足预设的第一距离条件及第一角度条件的对应的每个直线段进行连接。
电子设备中预先保存有第一距离条件和第一角度条件,当确定出每个直线段后,可以判断每两个直线段是否满足所述第一距离条件和第一角度条件,如果是,则可以将该两个直线段进行连接。
S106:将相互连接的两个直线段作为目标直线段,根据所述两个目标直线段,确定DM码。
当电子设备将两个直线段进行连接后,可以将相互连接的两个直线段作为目标直线段,并根据所述两个目标直线段,确定DM码。
在根据所述两个目标直线段确定DM码时,可以是针对两个目标直线段中的每个目标直线段,确定与该目标直线段对应平行且对应长度相同的第五直线段,将两个目标直线段以及两个第五直线段构成的封闭区域,确定为DM码。
由于在本发明实施例中,确定出原图像的梯度图以及所述梯度图中的每个像素点所在的象限,确定所述梯度图中的鞍点及鞍点线段,按照链码的顺序,拟合每个鞍点线段中极性相同的像素点,构成每个直线段。对满足预设的第一距离条件及第一角度条件的对应的每个直线段进行连接,将相互连接的两个直线段作为目标直线段,根据所述两个目标直线段,确定DM码。在复杂场景中,也可以快速精确的定位二维码。
实施例2:
在上述实施例的基础上,在本发明实施例中,所述确定梯度图中的每个像素点所在的象限包括:
针对所述梯度图中的每个像素点,识别该像素点在预设第一方向上的第一子梯度值以及预设第二方向上的第二子梯度值,其中第一方向和第二方向相互垂直;
根据第一子梯度值与第二子梯度值的正负,确定梯度图中的每个像素点所在的象限。
在本发明实施例中,电子设备中预先保存有第一方向和第二方向,所述第一方向和第二方向相互垂直。在确定梯度图中的每个像素点所在的象限时,可以是针对梯度图中的每个像素点,识别该像素点在第一方向上的第一子梯度值和该像素点在第二方向上的第二子梯度值,根据第一子梯度值与第二子梯度值的正负,确定梯度图中的每个像素点所在的象限,其中,第一子梯度值和第二子梯度值可以是相同的,也可以是不同的。
在确定每个像素点的梯度值时,可以根据罗伯特Robert算子,确定每个像素点的在第一方向上的第一子梯度值和第二方向上的第二子梯度值。具体的,可以是将该原图像放置于XY坐标系中,第一方向可以是X轴正方向,第二方向可以是Y轴正方向。计算每个像素点的X轴正方向的第一子梯度值和Y轴正方向的第二子梯度值。
在根据该像素点的第一子梯度值与第二子梯度值的正负,确定该像素点所在的象限时,具体可以是,如果该像素点在第一方向上的第一子梯度值大于0,且在第二方向上的第二子梯度值大于0,则该像素点位于第一象限;如果该像素点在第一方向的第一子梯度值小于0,且在第二方向上的第二子梯度值大于0,则该像素点位于第二象限;如果该像素点在第一方向上的第一子梯度值小于0,且在第二方向上的第二子梯度值小于0,则该像素点位于第三象限;如果该像素点在第一方向上的第一子梯度值大于0,且在第二方向上的第二子梯度值小于0,则该像素点位于第四象限。
在确定该原图像的梯度图的时,也可以是根据Robert算子确定,可以是针对每个像素点,将该像素点第一方向上的第一子梯度值与第二方向上的第二子梯度值的平方和再开方确定为该像素点的梯度值,然后在该梯度图中,将对应该像素点的位置的像素值,确定为该像素点的梯度值。
实施例3:
在上述各实施例的基础上,在本发明实施例中,所述对满足预设的第一距离条件及第一角度条件的对应的每个直线段进行连接包括:
针对每一个第一直线段,判断任意一个第二直线段是否与该第一直线段的第一夹角在预设的第一角度范围内,且与该第一直线段的距离小于预设的第一距离阈值,如果是,将该第一直线段与所述第二直线段进行连接。
在本发明实施例中,电子设备中保存有预设的第一角度范围和第一距离阈值,当确定出每个直线段后,可以根据预先保存的第一角度范围和第一距离阈值,对直线段进行连接。
具体的可以是针对每一个第一直线段,判断任意一个第二直线段与该第一直线段的第一夹角是否在预设的第一角度范围内,并且判断该任意一个第二直线段与该第一直线段的距离是否小于预设的第一距离阈值,如果均是,将该第一直线段与所述第二直线段进行连接。如果有一个为否,则不将该第二直线段与该第一直线段连接。
图2为本发明实施例提供的DM码示意图,由图2可以看出DM码的标识定位符为“L”型。因此为了提高在复杂场景中,DM码的定位准确性,在定位DM码时,可以先定位出该DM码的标识定位符,即“L”型,所以较优的,所述第一夹角为90度。但由于电子设备可能不是在待定位DM码的正上方采集原图像,则即使该第一直线段与第二直线段对应DM码的标识定位符,即“L”型,第一直线段与第二直线段的第一夹角也不是90度。所述第一夹角可以位于第一角度范围内,例如所述第一角度范围可以是85度至95度。
即使该第一直线段与第二直线段的第一夹角在预设的第一角度范围内,在判断是否将第一直线段与第二直线段进行连接时,还需要考虑该第一直线段与第二直线段的距离。
第一直线段与第二直线段的距离可以是第一直线段中的靠近第二直线段的一个端点,与第二直线段中的靠近第一直线段的一个端点之间的距离,也可以是第一直线段所在第一直线与第二直线段所在第二直线的交点,与该第一直线段中的靠近所述交点的端点之间的距离,或所述交点与第二直线段中的靠近所述交点的端点之间的距离。
实施例4:
第一直线段和第二直线段作为目标直线段,确定DM码,为了使定位的DM码更加准确,在上述各实施例的基础上,在本发明实施例中,在根据所述两个目标直线段,确定DM码之前,所述方法还包括:
针对两个目标直线段中的任意一个第一目标直线段,进行如下过程:
A、判断是否存在与所述第一目标直线段的第二夹角在预设的第二角度范围内,且与所述第一目标直线段的距离小于预设的第二距离阈值的第三直线段;
B、如果是,根据所述第三直线段与所述第一目标直线段对所述第一目标直线段进行第一更新,返回步骤A;
C、如果否,则进行后续步骤。
在本发明实施例中,电子设备中预先保存有第二角度范围和第二距离阈值,当确定出每个目标直线段后,可以根据预先保存的第二角度范围和第二距离阈值以及该目标直线段之外的直线段,对所述目标直线段进行更新。
针对两个目标直线段中的任意一个第一目标直线段,在对该第一目标直线段进行更新时,具体的可以是,判断是否存在与该第一目标直线段的第二夹角在预设的第二角度范围内,且与该第一目标直线段的距离小于预设的第二距离阈值的第三直线段。如果存在,根据所述第三直线段与该第一目标直线段对该第一目标直线段进行第一更新,并针对更新后的第一目标直线段,再次判断是否存在与所述第一目标直线段的第二夹角在预设的第二角度范围内,且与所述第一目标直线段的距离小于预设的第二距离阈值的第三直线段。如果存在,再次根据所述第三直线段与所述第一目标直线段对所述第一目标直线段进行第一更新。直至不存在与所述第一目标直线段的第二夹角在预设的第二角度范围内,且与所述第一目标直线段的距离小于预设的第二距离阈值的直线段,则说明对该第一目标直线段更新完成。
当对两个目标直线段均进行第一更新完成后,则可以根据第一更新后的所述两个目标直线段,确定DM码。
另一种情况可能是,针对每个第一目标直线段,不存在与该第一目标直线段的第二夹角在预设的第二角度范围内,且与所述第一目标直线段的距离小于预设的第二距离阈值的直线段,则不对第一目标直线段进行第一更新,在确定DM码时,则可以根据未更新的两个目标直线段确定。
再一种情况可能是,两个目标直线段中有一个第一目标直线段,存在与所述第一目标直线段的第二夹角在预设的第二角度范围内,且与所述第一目标直线段的距离小于预设的第二距离阈值的第三直线段,则可以对该第一目标直线段进行第一更新。针对另一个第一目标直线段,不存在与所述另一个第一目标直线段的第二夹角在预设的第二角度范围内,且与所述另一个第一目标直线段的距离小于预设的第二距离阈值的第三直线段,则可以对该第一目标直线段进行第一更新,则根据进行第一更新的一个目标直线段和未进行第一更新的另一个目标直线段,确定DM码。
因为构成DM码的标识定位符“L”型对应的第一目标直线段会有一定的长度,当第一目标直线段的长度太小时,可能无法定位出DM码,所以需要将第一目标直线段的长度进行延伸,即对第一目标直线段进行第一更新。
在进行第一更新时,因为是将第一目标直线段的长度进行延伸,则第三直线段的应该与第一目标直线段处于一条直线上,较佳的第二夹角为0度,但由于印刷等原因,第三直线段与第一目标直线段的夹角可能大于0度,则第二夹角可以位于第二角度范围内,所述第二角度范围可以是0度至5度。
在对第一目标直线段进行延伸时,除了需要考虑角度因素,还需要考虑距离因素,如果第三直线段的距离与第一目标直线段的距离在预设的第二距离范围内,则可以根据所述第三直线段与所述第一目标直线段对所述第一目标直线段进行第一更新。
第三直线段与第一目标直线段的距离,可以是第三直线段中的靠近第一目标直线段的端点,与第一目标直线段中的靠近第三直线段的端点的距离,可以是第三直线段中的靠近第一目标直线段的端点到第一目标直线段所在直线的距离,也可以是第一目标直线段中的靠近第三直线段的端点到第三直线段所在直线的距离。在确定第三直线段与第一目标直线段的距离时,因为是对目标直线段进行延伸,所以第三直线段应该与第一目标直线段在一条直线上。当上述确定的第三直线段与第一目标直线段的距离小于预设的第二距离阈值时,可能是第一目标直线段与第三直线段平行,但第三直线段的垂线与第一目标直线段的垂线,重叠较多。所以还应该给第一目标直线段设定包围范围,第三直线段不应该在目标直线段的包围范围内,所述包围范围可以是根据第一目标直线段的长度,确定包含该第一目标直线段的包围区域,第三直线段不应该位于所述包围区域中。如果位于目标直线段的包围范围内,则不符合第二距离阈值的条件,则不能将该第三直线段与第一目标直线段进行连接。
所述包围区域可以是按照一定的长宽比例确定的包含该第一目标直线段的矩形包围区域,也可以是以第一目标直线段为直径确定的包含该第一目标直线段的圆形包围区域。如图3A所示的第一目标直线段的包围区域,该包围区域为以第一目标直线段为直径确定的圆形包围区域,第三直线段和该圆形包围区域有交叉,则认为位于所述圆形包围区域内。
在根据所述第三直线段与所述第一目标直线段对所述第一目标直线段进行第一更新时,可以是对第三直线段与第一目标直线段采用线段拟合算法,将该第三直线段与第一目标直线段拟合成一个直线段,将拟合后的直线段作为第一目标直线段。所述采用线段拟合算法,将该第三直线段与第一目标直线段拟合成一个直线段的过程属于现有技术,在本发明实施例中对该过程不进行赘述。也可以是根据该第三直线段中的与第一目标直线段的距离较远的端点,以及第一目标直线段中的与另一目标直线段连接的端点,确定一个直线段,将该直线段作为目标直线段。
实施例5:
为了使目标直线段更加符合DM码的标识定位符对应的直线段,进一步达到定位的DM码更加准确,在上述各实施例的基础上,在本发明实施例中,所述根据所述两个目标直线段,确定DM码之前,所述方法还包括:
根据两个目标直线段,确定与两个所述目标直线段对应平行并与所述两个目标直线段构成第一封闭区域的每个第四直线段;
根据所述第一封闭区域内的每个目标直线段及每个第四直线段,确定每个包含对应目标直线段或包含对应第四直线段的第二封闭区域;
根据所述第一封闭区域对应的每个第二封闭区域内的像素点的灰度值,判断是否对所述第一封闭区域进行更新;
如果是,则对所述第一封闭区域内的每个目标直线段进行第二更新。
在本发明实施例中,当确定出两个目标直线段后,为了使定位的DM码更加准确,可以对两个目标直线段进行第二更新。该第二更新可以是在第一更新之后,也可以是在第一更之前,较优的,第二更新在第一更新之后,在根据所述两个目标直线段,确定DM码之前。
确定是否对两个目标直线段进行第二更新时,可以进行如下操作:
针对两个目标直线段,确定与两个所述目标直线段对应平行并与所述两个目标直线段构成第一封闭区域的每个第四直线段,因为有两个目标直线段,所以确定的第四直线段也为两个,两个目标直线段和两个第四直线段可以构成第一封闭区域。在确定第一封闭区域时,可以是将目标直线段与第四直线段首尾相连构成一个封闭区域,因为两个目标直线段几乎垂直,并且两个第四直线段与两个目标直线段对应平行,则确定的第一封闭区域接近矩形,当两个目标直线段垂直时,则该第一封闭区域为矩形。
当确定出第一封闭区域后,可以根据所述第一封闭区域内的每个目标直线段,确定每个包含对应目标直线段的第二封闭区域,根据所述第一封闭区域内的每个第四直线段,确定每个包含对应第四直线段的第二封闭区域。因为两个目标直线段和两个第四直线段可以构成第一封闭区域,所以每个第一封闭区域对应有四个第二封闭区域。
在确定第二封闭区域时,可以是确定一个包含对应目标直线段或包含对应第四直线段的任意形状的封闭区域,该第二封闭区域可以是圆形封闭区域,可以是矩形封闭区域,也可以是不规则形状的封闭区域。包含目标直线段的第二封闭区域中的目标直线段可以是位于该第二封闭区域的任意位置上,包含第四直线段的第二封闭区域中的第四直线段可以是位于该第二封闭区域的任意位置上。例如可以是位于该第二封闭区域的上方或下方或左方或右方或中间位置上。较优的,该第二封闭区域为矩形封闭区域,该目标直线段或第四直线段位于该第二封闭区域的中间位置上。
如果该第二封闭区域为矩形封闭区域,在确定包含目标直线段的第二封闭区域时,具体的,可以是,该第二封闭区域包含与该目标直线段平行的两个相互平行的第一边,和与该目标直线段垂直的两个相互平行的第二边。将该目标直线段的预设第一比例的长度作为该第二封闭区域中的第一边的长度,将该目标直线段的预设第二比例的长度作为该第二封闭区域中的第二边的长度,所述预设第一比例和预设第二比例可以相同,也可以不同。在确定该第二封闭区域中第一边的长度时,也可以是对该目标直线段的两个端点分别延长预设个数的像素点后对应的长度作为该第一边的长度。
当确定出第二封闭区域后,目标直线段位于所述第二封闭区域的中间位置上。所述目标直线段位于所述第二封闭区域的中间位置上具体的可以理解为:所述第二封闭区域的中心点与所述目标直线段的中心点重合。
如果该第二封闭区域为矩形区域,在确定包含第四直线段的第二封闭区域时的过程与确定包含目标直线段的第二封闭区域的过程类似,相信本领域技术人员可以想出具体实施例,在此不再进行赘述。
图3B为第一封闭区域及对应的包含目标直线段的第二封闭区域的示意图,该目标直线段的长度为10mm,所述预设的第二比例可以是2/5,所述预设个数为10,每个像素点的对应的长度为0.5mm。则该第二封闭区域中的与目标直线段垂直的第二边的长度为10*(2/5)=4mm,该第二封闭区域中的与目标直线段平行的第一边的长度为10+0.5*10*2=20mm。
在判断是否对两个目标直线段进行第二更新时,可以是判断是否对该第一封闭区域进行更新。在判断是否对该第一封闭区域进行更新时,可以是根据该第一封闭区域对应的每个第二封闭区域内的像素点的灰度值确定的。
在根据所述第一封闭区域对应的每个第二封闭区域内的像素点的灰度值,判断是否对所述第一封闭区域进行更新时,可以是针对第一封闭区域对应的每个第二封闭区域,识别该第二封闭区域中的每个像素点的灰度值,判断灰度值在预设的灰度值范围内的像素点的数量是否在预设的数量范围内。
如果判断出对该第一封闭区域进行更新,则对该第一封闭区域内的两个目标直线段进行第二更新,根据第二更新后的两个目标直线段确定出更新后的第一封闭区域。
当判断出不对该第一封闭区域进行第二更新时,则说明该第一封闭区域对应的图像特征不符合DM码的图像特征,则可以舍弃不进行第二更新的第一封闭区域,仅对进行第二更新的第一封闭区域进行后续操作。即仅根据进行第二更新的两个目标直线段,确定DM码。
因为两个目标直线段与DM码的标识定位符“L”型中的两个直线段相对应,该“L”型中的两个直线段中的每个像素点应该均为黑色,即灰度值为0,平均灰度值也0,但由于印刷等问题,可能会存在像素点的灰度值非0的情况,这样该目标直线段的平均灰度值非0,所以在对第一封闭区域内的每个目标直线段进行第二更新时,可以是,根据该第二封闭区域内的平均灰度值最小的行或列对目标直线段进行第二更新。
实施例6:
为了使定位的DM码更加准确,在上述各实施例的基础上,在本发明实施例中,所述根据所述第一封闭区域对应的每个第二封闭区域内像素点的灰度值,判断是否对所述第一封闭区域进行更新包括:
针对所述第一封闭区域对应的每个第二封闭区域,判断包含目标直线段的第二封闭区域内的像素点的灰度值,在与该第二封闭区域包含的目标直线段垂直的方向上的变化规律与预设变化规律是否匹配,以及判断包含第四直线段的第二封闭区域内的像素点的灰度值,在与该第二封闭区域包含的第四直线段垂直的方向上的变化规律与所述预设变化规律是否匹配;
如果所述第一封闭区域对应的每个第二封闭区域对应的匹配结果均为是,则对所述第一封闭区域进行更新;
如果所述第一封闭区域对应的每个第二封闭区域中有至少一个第二封闭区域对应的匹配结果为否,则不对所述第一封闭区域进行更新。
电子设备中预设保存有像素点的灰度值的变化规律,在判断是否对所述第一封闭区域进行更新时,可以是针对该第一封闭区域对应的每个第二封闭区域,识别包含目标直线段的第二封闭区域内的每个像素点的灰度值,判断所述灰度值在与该第二封闭区域包含的目标直线段垂直的方向上的变化规律与预设变化规律是否匹配,以及识别包含第四直线段的第二封闭区域内的每个像素点的灰度值,判断所述灰度值在与该第二封闭区域包含的第四直线段垂直的方向上的变化规律与所述预设变化规律是否匹配。
预设的变化规律可以是第一封闭区域以及对应的第二封闭区域,针对每个第二封闭区域,位于第一封闭区域内且位于该第二封闭区域内的所有像素点的第一平均灰度值为0,位于第一封闭区域外且位于该第二封闭区域内的所有像素点的第二平均灰度值为255。
第一封闭区域由两个目标直线和两个第四直线段构成,所以第一封闭区域对应有四个第二封闭区域。
如果所述四个第二封闭区域对应的匹配结果均为是,则对所述第一封闭区域进行更新;
如果所述四个第二封闭区域中有至少一个第二封闭区域对应的匹配结果为否,则不对所述第一封闭区域进行更新。
电子设备的预先保存的变化规律可以是在第二封闭区域中,由第一封闭区域的内部至第一封闭区域的外部的像素点的灰度值变化规律为第一封闭区域的内部的像素点的灰度值为0,在第一封闭区域的外部的像素点的灰度值为255。
如图3C所示的第一封闭区域对应的第二封闭区域,该第二封闭区域为包含目标直线段的第二封闭区域。针对第二封闭区域来说,在目标直线段的右侧的区域中的每个像素点的灰度值为0,在目标直线段的左侧的区域中的每个像素点的灰度值为255。
在判断包含目标直线段的第二封闭区域内的像素点的灰度值,在与该第二封闭区域包含的目标直线段垂直的方向上的变化规律与预设变化规律是否匹配时,具体的可以是判断该目标直线段的右侧的区域内的像素点的灰度值为0的数量是否在大于设定的数量阈值,该目标直线段的左侧的区域内的像素点的灰度值为255的数量是否大于设定的数量阈值。如果均为是,则确定该第二封闭区域对应的匹配结果为是,否则该第二封闭区域对应的匹配结果为否。所述设定的数量阈值与左侧的区域或右测的区域内的像素点的数量有关,可以是左侧的区域内的像素点为10个,则设定的数量阈值为10*1/5=2。
实施例7:
为了使更新的目标直线段更加准确,进一步提高定位DM码的准确性,在上述各实施例的基础上,在本发明实施例中,所述对第一封闭区域内的每个目标直线段进行第二更新包括:
针对第一封闭区域内的每个目标直线段,确定包含该目标直线段的第二封闭区域内的与该目标直线段平行的直线段;
识别所述平行的直线段中的平均灰度值最小的直线段;
根据所述平均灰度值最小的直线段,对所述目标直线段进行第二更新。
在本发明实施例中,第一封闭区域中包含两个目标直线段,针对每个目标直线段,识别包含该目标直线段的第二封闭区域,在该第二封闭区内,确定与该目标直线段平行的直线段,其中所述平行的直线段包括所述目标直线段。
针对确定出来的平行的直线段,计算该平行的直线段中的平均灰度值,确定所述平行的直线段中的平均灰度值最小的直线段,将所述平均灰度值最小的直线段,确定为进行第二更新的目标直线段。
在确定与该目标直线段平行的直线段时,可以是确定任意长度的直线段,较优的,确定与该目标直线段长度相同或距离接近的直线段,并且较优的是,将确定出来的平行的直线段的两个端点分别与目标直线段对应的两个端点进行连线,连线后的两个直线段平行。
在计算平行的直线段的平均灰度值时,具体的可以是识别该平行的直线段中的像素点的数量以及每个像素点的灰度值,将每个像素点的灰度值相加与所述数量的比值确定为所述平行的直线段的平均灰度值。
当计算出来平均灰度值最小的平行的直线段有至少两个时,可以选取与该目标直线段的距离最近的平行的直线段。
当确定出来的平均灰度值最小的,且与目标直线段平行的直线段距离所述目标直线段较远,例如大于设定的距离阈值时,可以舍弃确定出来的直线段,则可以不对该目标直线段进行第二更新。
实施例8:
为了使定位的DM码更加准确,并且减小定位时的工作量,提高定位的效率,可以将不符合DM码图像特征的第一封闭区域删除。在上述各实施例的基础上,在本发明实施例中,所述根据所述第一封闭区域内的每个目标直线段及每个第四直线段,确定每个包含对应目标直线段或包含对应第四直线段的第二封闭区域之前,所述方法还包括:
针对每个第一封闭区域,根据该第一封闭区域内的像素点的灰度值及像素点的数量,判断是否将该第一封闭区域删除;
针对未被删除的第一封闭区域,进行后续步骤。
在本发明实施例中,在确定第二封闭区域之前,可以将不符合DM码图像特征的第一封闭区域删除。DM码图像特征可以是DM图像中的像素点的灰度值以及像素点的数量。针对每个第一封闭区域,根据该第一封闭区域内的像素点的灰度值及像素点的数量,判断是否将该第一封闭区域删除。如果删除,则删除的第一封闭区域不进行接下来的操作。仅针对未被删除的第一封闭区域,进行后续步骤。这样可以减小工工作量,提高DM码定位的效率。
所述根据该第一封闭区域内的像素点的灰度值及像素点的数量,判断是否将该第一封闭区域删除包括以下至少一种:
针对该第一封闭区域,判断该第一封闭区域内的具有极性的像素点的第一数量与该第一封闭区域内的所有像素点的第二数量的比值是否大于预设的第一阈值,如果否,则将该第一封闭区域删除;
针对该第一封闭区域,判断该第一封闭区域内的像素点的灰度值相同的行和/或列的数量占该第一封闭区域内的像素点构成的所有行和/或所有列的比值是否小于预设的第二阈值,如果否,则将该第一封闭区域删除;
针对该第一封闭区域,判断该第一封闭区域内的灰度值为最大值的像素点的第三数量与该第一封闭区域内的所有像素点的第二数量的比值是否在预设的比值范围内,如果否,则将该第一封闭区域删除。
在本发明实施例中,电子设备在判断是否将该第一封闭区域删除时,可以是通过一种条件判断的,可以是通过两种条件判断的,也可以是通过三种条件判断的。
以下对电子设备通过一种条件,判断是否将该第一封闭区域删除进行说明。
电子设备中保存有第一阈值,在判断是否将该第一封闭区域删除时,可以是识别该第一封闭区域内的所有像素点的第二数量,以及具有极性的像素点的第一数量,判断第一数量与第二数量的比值是否大于预设的第一阈值,如果否,则将该第一封闭区域删除,如果是,则不将该第二封闭区域删除。
电子设备中保存有第二阈值,在判断是否将该第一封闭区域删除时,可以是识别该第一封闭区域内的像素点的灰度值相同的行的数量,以及该第一封闭区域内的像素点构成的所有行,判断像素点的灰度值相同的行的数量占该所有行的比值是否小于预设的第二阈值,如果否,则将该第一封闭区域删除,如果是,则不将该第二封闭区域删除。
也可以是确定该第一封闭区域内的像素点的灰度值相同的列的数量,以及该第一封闭区域内的像素点构成的所有列,判断像素点的灰度值相同的列的数量占该所有列的比值是否小于预设的第二阈值,如果否,则将该第一封闭区域删除,如果是,则不将该第二封闭区域删除。
也可以是判断像素点的灰度值相同的列的数量占该所有列的比值,以及像素点的灰度值相同的行的数量占该所有行比值是否均小于预设的第二阈值,如果有一个为否,则将该第一封闭区域删除,如果均是,则不将该第二封闭区域删除。
所述像素点的灰度值相同的行或列中的像素点的灰度值较优的为0和255。
电子设备中保存有比值范围,在判断是否将该第一封闭区域删除时,可以是识别该第一封闭区域内所有像素点的第二数量,以及灰度值为最大值的像素点的第三数量,判断所述第三数量与第二数量的比值是否在预设的比值范围内,如果否,则将该第一封闭区域删除,如果是,则不将该第二封闭区域删除。
以下对电子设备通过两种条件,判断是否将该第一封闭区域删除进行说明。
电子设备中保存有第一阈值和第二阈值,在判断是否将该第一封闭区域删除时,可以是判断该第一封闭区域内的具有极性的像素点的第一数量与该第一封闭区域内的所有像素点的第二数量的比值是否大于预设的第一阈值,以及判断该第一封闭区域内的像素点的灰度值相同的行和/或列的数量占该第一封闭区域内的像素点构成的所有行和/或所有列的比值是否小于预设的第二阈值,如果有一个为否,则将该第一封闭区域删除,如果均是,则不将该第二封闭区域删除。
电子设备中保存有第一阈值和比值范围,在判断是否将该第一封闭区域删除时,可以是判断第一封闭区域内的具有极性的像素点的第一数量与该第一封闭区域内的所有像素点的第二数量的比值是否大于预设的第一阈值,以及判断该第一封闭区域内的灰度值为最大值的像素点的第三数量与该第一封闭区域内的所有像素点的第二数量的比值是否在预设的比值范围内,如果有一个为否,则将该第一封闭区域删除,如果均是,则不将该第二封闭区域删除。
电子设备中保存有第二阈值和比值范围,在判断是否将该第一封闭区域删除时,可以是该第一封闭区域内的像素点的灰度值相同的行和/或列的数量占该第一封闭区域内的像素点构成的所有行和/或所有列的比值是否小于预设的第二阈值,以及判断该第一封闭区域内的灰度值为最大值的像素点的第三数量与该第一封闭区域内的所有像素点的第二数量的比值是否在预设的比值范围内,如果有一个为否,则将该第一封闭区域删除,如果均是,则不将该第二封闭区域删除。
较优的,是电子设备通过三种条件,判断是否将该第一封闭区域删除。具体的可以是,电子设备中保存有第一阈值、第二阈值和比值范围,在判断是否将该第一封闭区域删除时,判断该第一封闭区域内的具有极性的像素点的第一数量与该第一封闭区域内的所有像素点的第二数量的比值是否大于预设的第一阈值,该第一封闭区域内的像素点的灰度值相同的行和列的数量占该第一封闭区域内的像素点构成的所有行和所有列的比值是否小于预设的第二阈值,以及该第一封闭区域内的灰度值为最大值的像素点的第三数量与该第一封闭区域内的所有像素点的第二数量的比值是否在预设的比值范围内,如果有一个为否,则将该第一封闭区域删除,如果均是,则不将该第二封闭区域删除。
实施例9:
为了使定位的DM码更加准确,在上述各实施例的基础上,在本发明实施中,在对第一封闭区域内的每个目标直线段进行第二更新之后,所述方法还包括:
针对每个第二更新后的目标直线段,根据该目标直线段的预设区域范围内的像素点的灰度值对该目标直线段进行第三更新。
在本发明实施例中,电子设备中预先保存有区域范围,在对第一封闭区域内的每个目标直线段进行第二更新后,针对每个第二更新后的目标直线段,可以是根据该目标直线段的预设区域范围内的像素点的灰度值对该目标直线段进行第三更新。根据第三更新后的目标直线段确定DM码。
所述预设的区域范围可以是针对该目标直线段,识别与该目标直线段相邻的每个像素点,将所述每个像素点共同构成的封闭区域确定为所述目标直线段的预设的区域范围。识别该预设区域范围内的每个像素点的灰度值,一般目标直线段对应DM码的标识定位符“L”型的直线段,该目标直线段中的每个像素点的灰度值应均为0。但由于印刷错误,该目标直线段中包含灰度值为255的像素点,并且在预设区域范围内,包含灰度值为0为的像素点,则可以根据该灰度值为0的像素点对该目标直线段进行第三更新。在进行第三更新时,可以是采用拟合算法,将所述灰度值为0的像素点和该目标直线段确定成一个直线段,将该直线段作为第三更新后的目标直线段。采用拟合算法,对该目标直线段进行第三更新的过程属于现有技术,在本发明实施例中对该过程曾不进行赘述。
实施例10:
为了使定位的DM码更加准确,在上各实施例的基础上,在本发明实施例中,所述根据所述两个目标直线段,确定DM码之前,所述方法还包括:
判断所述原图像是否为所述原图像的金字塔图像中的最大尺度的图像;
如果否,则根据金字塔图像中的每个级别与图像的尺度的对应关系,确定与所述原图像的级别相邻级别的图像,在所述相邻级别的图像中确定两个所述目标直线段的投影直线段,并在所述相邻级别的图像中,将所述投影直线段作为目标直线段,进行后续步骤,其中,所述相邻级别的图像的尺度较原图像的尺度大;
如果是,则在最大尺度的原图像中,进行后续步骤。
在本发明实施例中,电子设备在确定原图像中的DM码时,可以将该原图像生成金字塔图像。在生成金字塔图像时,可以将原图像按比例放大或缩小,在本发明实施例中,为了提高定位原图像中的DM码的效率,将原图像按比例缩小,例如,可以按0.5的比例依次缩小三次,得到四层的金字塔图像,四层金字塔图像中包含大小不同的DM码。
上述在确定出DM码后,可以判断确定所述原图像是否为所述原图像的金字塔图像中的最大尺度的图像,如果不是,则可能定位出来的DM码不准确,为了使定位出的DM码更加准确,则可以在最大尺度的图像上定位出更加准确的DM码。
具体的可以是,电子设备中保存有金字塔图像中的每个级别与图像的尺度的对应关系,识别所述原图像的级别,确定与所述原图像的级别相邻级别的,尺度较原图像的尺度大的图像。将在原图像中确定出的两个所述目标直线段投影至所述尺度较大的图像上,即确定所述两个所述目标直线段的投影直线段。并在所述相邻级别的,且尺度较大的图像中,将所述直线段作为目标直线段,根据所述两个目标直线段,进行后续步骤。循环上述判断图像是否为所述原图像的金字塔图像中的最大尺度的图像,直至图像为尺度最大的图像。所述后续步骤可以是直接根据该两个目标直线段确定DM码,也可以是对该两个目标直线段进行第一更新后,再确定DM码,也可以是对该两个目标直线段进行第一更新和第二更新后,再确定DM码,也可以是对该两个目标直线段进行第一更新和第二更新和第三更新后,再确定DM码。
如果判断所述原图像为所述原图像的金字塔图像中的最大尺度的图像,则可以根据所述两个目标直线段,确定DM码。
实施例11:
为了使定位的DM码更加准确,在上各实施例的基础上,在本发明实施例中,所述根据所述两个目标直线段,确定DM码包括:
针对两个目标直线段中的每个目标直线段,确定与该目标直线段对应平行且对应长度相同的第五直线段;
将两个所述目标直线段以及两个所述第五直线段构成的图形,确定为DM码。
在本发明实施例中,当电子设备确定了两个目标直线段后,可以根据所述两个目标直线段,确定DM码。所述两个目标直线段可以是为进行更新的目标直线段,可以是进行第一更新后的目标直线段,可以是进行第二更新后的目标直线段,也可以是进行第三更新后的目标直线段。
在根据所述两个目标直线段确定DM码时,可以是针对两个目标直线段中的每个目标直线段,确定与该目标直线段对应平行且对应长度相同的第五直线段,将两个目标直线段以及两个第五直线段构成的图形,确定为DM码。
在将两个目标直线段以及两个第五直线段构成的图形,确定为DM码,可以是将两个目标直线段以及两个第五直线段构成的封闭区域确定为DM码,也可以是,将两个目标直线段与两个第五直线段构成的非封闭区域确定为DM码。
因为DM码的边界有一定的长度,且DM码接近正方形,但由于印刷等错误,DM码的标识定位符“L”型对应的目标直线段的一部分未印刷,但DM码的码区域印刷完好。这时在确定DM码时,可以根据两个目标直线段中的长度较长的一个目标直线段确定DM码,具体的可以是将另一个目标直线段的长度进行延伸,延伸至与较长的目标直线段的长度相同,并将每个第五直线段延伸至与较长的目标直线段的长度相同,再将长度延伸至相同的两个目标直线段和第五直线段构成的封闭区域,确定为DM码。
实施例12:
为了提高DM码定位的准确性,在上述各实施例的基础上,在本发明实施例中,所述将两个所述目标直线段以及两个所述第五直线段构成的图形,确定为DM码包括:
针对DM码的每个所述目标直线段以及每个所述第五直线段,采用包围盒算法确定该DM码的边缘,针对DM码的每个边缘,按照设定的规则选取至少一个边缘像素点,以该边缘像素点为中心,确定矩形区域,对每个矩形区域内的像素点进行投影,根据投影的峰值,确定每个矩形区域的投影边缘点,通过预设的算法将得到的每个矩形区域的边缘点拟合为一个矩形图形框,将该矩形框确定为该DM码精确的边缘。
当所述原图像为尺度最大的图像时,可以在最大尺度的原图像中,针对DM码的每个所述目标直线段以及每个所述第五直线段,采用包围盒算法确定该DM码的边缘,针对每个DM码的每条边缘,按照设定的规则选取至少一个边缘像素点,以该边缘像素点为中心,按照预设的长和宽确定矩形区域,针对每个矩形区域中的像素点,按照直线方向进行投影,计算该矩形区域中与所述直线方向平行的每一列像素点的灰度值的第四和值,针对每一列,将该列右侧的灰度值的第四和值与该列左侧的灰度值的第四和值的差作为该列的梯度值,当然,也可以将该列左侧的灰度值的第四和值与该列右侧的灰度值的第四和值的差作为该列的梯度值,根据每个矩形区域得到的梯度值的峰值,确定每个矩形区域的投影边缘点,通过预设的算法将得到的每个矩形区域的边缘点拟合为一个矩形框,将该矩形框确定为该DM码精确的边缘。
通过预设的算法将得到的所有小矩形的边缘点拟合为一个矩形框的过程属于现有技术,在本发明实施例中不再进行赘述。
图4为本发明实施例提供的一种DM码的定位过程示意图,该过程包括以下步骤:
S401:针对待定位的原图像,根据所述原图像中的每个像素点的灰度值,确定所述原图像的梯度图以及所述梯度图中的每个像素点所在的象限;在所述梯度图中,根据每个像素点的梯度值,确定所述梯度图中的鞍点;并根据每个象限的方向,将每个象限中的鞍点进行连接,构成鞍点线段;按照链码的顺序,拟合每个鞍点线段中极性相同的像素点,构成每个直线段。
S402:对满足预设的第一距离条件及第一角度条件的对应的每个直线段进行连接,将相互连接的两个直线段作为目标直线段。
S403:针对两个目标直线段中的任意一个第一目标直线段,A、判断是否存在与所述第一目标直线段的第二夹角在预设的第二角度范围内,且与所述第一目标直线段的距离小于预设的第二距离阈值的第三直线段;B、如果是,根据所述第三直线段与所述第一目标直线段对所述第一目标直线段进行第一更新,返回步骤A;C、如果否,则进行S404。
S404:根据两个目标直线段,确定与两个所述目标直线段对应平行并与所述两个目标直线段构成第一封闭区域的每个第四直线段,针对每个第一封闭区域,根据该第一封闭区域内的像素点的灰度值及像素点的数量,判断是否将该第一封闭区域删除,针对未被删除的第一封闭区域,进行S405。
S405:根据所述第一封闭区域内的每个目标直线段及每个第四直线段,确定每个包含对应目标直线段或包含对应第四直线段的第二封闭区域;根据所述第一封闭区域对应的每个第二封闭区域内的像素点的灰度值,判断是否对所述第一封闭区域进行更新;如果是,则对所述第一封闭区域内的每个目标直线段进行第二更新。
S406:针对每个第二更新后的目标直线段,根据该目标直线段的预设区域范围内的像素点的灰度值对该目标直线段进行第三更新。
S407:判断所述原图像是否为所述原图像的金字塔图像中的最大尺度的图像,如果是,则进行S408,如果否,则进行S409。
S408:针对两个目标直线段中的每个目标直线段,确定与该目标直线段对应平行且对应长度相同的第五直线段;针对DM码的每个所述目标直线段以及每个所述第五直线段,采用包围盒算法确定该DM码的边缘,针对DM码的每个边缘,按照设定的规则选取至少一个边缘像素点,以该边缘像素点为中心,确定矩形区域,对每个矩形区域内的像素点进行投影,根据投影的峰值,确定每个矩形区域的投影边缘点,通过预设的算法将得到的每个矩形区域的边缘点拟合为一个矩形图形框,将该矩形框确定为该DM码精确的边缘。
S409:根据金字塔图像中的每个级别与图像的尺度的对应关系,确定与所述原图像的级别相邻级别的图像,在所述相邻级别的图像中确定两个所述目标直线段的投影直线段,并在所述相邻级别的图像中,将所述投影直线段作为目标直线段,进行S404。
图5为本发明实施例提供的一种DM码的定位装置结构图,所述装置包括:
确定模块51,用于针对待定位的原图像,根据所述原图像中的每个像素点的灰度值,确定所述原图像的梯度图以及所述梯度图中的每个像素点所在的象限;
所述确定模块51,还用于在所述梯度图中,根据每个像素点的梯度值,确定所述梯度图中的鞍点;并根据每个象限的方向,将每个象限中的鞍点进行连接,构成鞍点线段;
所述确定模块51,还用于按照链码的顺序,拟合每个鞍点线段中极性相同的像素点,构成每个直线段;
连接模块52,用于对满足预设的第一距离条件及第一角度条件的对应的每个直线段进行连接;
定位模块53,用于将相互连接的两个直线段作为目标直线段,根据所述两个目标直线段,确定DM码。
所述确定模块51,具体用于针对所述梯度图中的每个像素点,识别该像素点在预设第一方向上的第一子梯度值以及预设第二方向上的第二子梯度值,其中第一方向和第二方向相互垂直;根据第一子梯度值与第二子梯度值的正负,确定梯度图中的每个像素点所在的象限。
所述连接模块52,具体用于针对每一个第一直线段,判断任意一个第二直线段是否与该第一直线段的第一夹角在预设的第一角度范围内,且与该第一直线段的距离小于预设的第一距离阈值,如果是,将该第一直线段与所述第二直线段进行连接。
图6为本发明实施例提供的一种DM码的定位装置结构图,在图5的基础上,所述装置还包括:
更新模块61,用于针对两个目标直线段中的任意一个第一目标直线段,进行如下过程:A、判断是否存在与所述第一目标直线段的第二夹角在预设的第二角度范围内,且与所述第一目标直线段的距离小于预设的第二距离阈值的第三直线段;B、如果是,根据所述第三直线段与所述第一目标直线段对所述第一目标直线段进行第一更新,返回步骤A;C、如果否,则进行后续步骤。
所述更新模块61,还用于根据两个目标直线段,确定与两个所述目标直线段对应平行并与所述两个目标直线段构成第一封闭区域的每个第四直线段;根据所述第一封闭区域内的每个目标直线段及每个第四直线段,确定每个包含对应目标直线段或包含对应第四直线段的第二封闭区域;根据所述第一封闭区域对应的每个第二封闭区域内的像素点的灰度值,判断是否对所述第一封闭区域进行更新;如果是,则对所述第一封闭区域内的每个目标直线段进行第二更新。
所述更新模块61,具体用于针对所述第一封闭区域对应的每个第二封闭区域,判断包含目标直线段的第二封闭区域内的像素点的灰度值,在与该第二封闭区域包含的目标直线段垂直的方向上的变化规律与预设变化规律是否匹配,以及判断包含第四直线段的第二封闭区域内的像素点的灰度值,在与该第二封闭区域包含的第四直线段垂直的方向上的变化规律与所述预设变化规律是否匹配;如果所述第一封闭区域对应的每个第二封闭区域对应的匹配结果均为是,则对所述第一封闭区域进行更新;如果所述第一封闭区域对应的每个第二封闭区域中有至少一个第二封闭区域对应的匹配结果为否,则不对所述第一封闭区域进行更新。
所述更新模块61,具体用于针对第一封闭区域内的每个目标直线段,确定包含该目标直线段的第二封闭区域内的与该目标直线段平行的直线段;识别所述平行的直线段中的平均灰度值最小的直线段;根据所述平均灰度值最小的直线段,对所述目标直线段进行第二更新。
所述装置还包括:
删除模块62,用于针对每个第一封闭区域,根据该第一封闭区域内的像素点的灰度值及像素点的数量,判断是否将该第一封闭区域删除;针对未被删除的第一封闭区域,进行后续步骤。
所述删除模块62,具体用于针对该第一封闭区域,判断该第一封闭区域内的具有极性的像素点的第一数量与该第一封闭区域内的所有像素点的第二数量的比值是否大于预设的第一阈值,如果否,则将该第一封闭区域删除;和/或针对该第一封闭区域,判断该第一封闭区域内的像素点的灰度值相同的行和/或列的数量占该第一封闭区域内的像素点构成的所有行和/或所有列的比值是否小于预设的第二阈值,如果否,则将该第一封闭区域删除;和/或针对该第一封闭区域,判断该第一封闭区域内的灰度值为最大值的像素点的第三数量与该第一封闭区域内的所有像素点的第二数量的比值是否在预设的比值范围内,如果否,则将该第一封闭区域删除。
所述更新模块61,还用于针对每个第二更新后的目标直线段,根据该目标直线段的预设区域范围内的像素点的灰度值对该目标直线段进行第三更新。
所述装置还包括:
判断模块63,用于判断所述原图像是否为所述原图像的金字塔图像中的最大尺度的图像;当判断结果为否,则根据金字塔图像中的每个级别与图像的尺度的对应关系,确定与所述原图像的级别相邻级别的图像,在所述相邻级别的图像中确定两个所述目标直线段的投影直线段,并在所述相邻级别的图像中,将所述投影直线段作为目标直线段,进行后续步骤,其中,所述相邻级别的图像的尺度较原图像的尺度大;当判断结果为是,则触发定位模块。
所述定位模块53,具体用于针对两个目标直线段中的每个目标直线段,确定与该目标直线段对应平行且对应长度相同的第五直线段;将两个所述目标直线段以及两个所述第五直线段构成的图形,确定为DM码。
所述定位模块53,具体用于针对DM码的每个所述目标直线段以及每个所述第五直线段,采用包围盒算法确定该DM码的边缘,针对DM码的每个边缘,按照设定的规则选取至少一个边缘像素点,以该边缘像素点为中心,确定矩形区域,对每个矩形区域内的像素点进行投影,根据投影的峰值,确定每个矩形区域的投影边缘点,通过预设的算法将得到的每个矩形区域的边缘点拟合为一个矩形图形框,将该矩形框确定为该DM码精确的边缘。
本发明实施例公开了一种DM码的定位方法及装置,所述方法包括:针对待定位的原图像,根据所述原图像中的每个像素点的灰度值,确定所述原图像的梯度图以及所述梯度图中的每个像素点所在的象限;在所述梯度图中,根据每个像素点的梯度值,确定所述梯度图中的鞍点;并根据每个象限的方向,将每个象限中的鞍点进行连接,构成鞍点线段;按照链码的顺序,拟合每个鞍点线段中极性相同的像素点,构成每个直线段;对满足预设的第一距离条件及第一角度条件的对应的每个直线段进行连接;将相互连接的两个直线段作为目标直线段,根据所述两个目标直线段,确定DM码。由于在本发明实施例中,确定出原图像的梯度图以及所述梯度图中的每个像素点所在的象限,确定所述梯度图中的鞍点及鞍点线段,按照链码的顺序,拟合每个鞍点线段中极性相同的像素点,构成每个直线段。对满足预设的第一距离条件及第一角度条件的对应的每个直线段进行连接,将相互连接的两个直线段作为目标直线段,根据所述两个目标直线段,确定DM码。在复杂场景中,也可以快速精确的定位二维码。
对于系统/装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者一个操作与另一个实体或者另一个操作区分开来,而不一定要求或者暗示这些实体或者操作之间存在任何这种实际的关系或者顺序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全应用实施例、或结合应用和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (24)

1.一种数据矩阵DM码的定位方法,其特征在于,所述方法包括:
针对待定位的原图像,根据所述原图像中的每个像素点的灰度值,确定所述原图像的梯度图以及所述梯度图中的每个像素点所在的象限;
在所述梯度图中,根据每个像素点的梯度值,确定所述梯度图中的鞍点;并根据每个象限的方向,将每个象限中的鞍点进行连接,构成鞍点线段;
按照链码的顺序,拟合每个鞍点线段中极性相同的像素点,构成每个直线段;
对满足预设的第一距离条件及第一角度条件的对应的每个直线段进行连接;
将相互连接的两个直线段作为目标直线段,根据所述两个目标直线段,确定DM码;
其中,在根据所述两个目标直线段,确定DM码之前,所述方法还包括:
针对两个目标直线段中的任意一个第一目标直线段,进行如下过程:
A、判断是否存在与所述第一目标直线段的第二夹角在预设的第二角度范围内,且与所述第一目标直线段的距离小于预设的第二距离阈值的第三直线段;
B、如果是,根据所述第三直线段与所述第一目标直线段对所述第一目标直线段进行第一更新,返回步骤A;
C、如果否,则进行后续步骤。
2.如权利要求1所述的方法,其特征在于,所述确定梯度图中的每个像素点所在的象限包括:
针对所述梯度图中的每个像素点,识别该像素点在预设第一方向上的第一子梯度值以及预设第二方向上的第二子梯度值,其中第一方向和第二方向相互垂直;
根据第一子梯度值与第二子梯度值的正负,确定梯度图中的每个像素点所在的象限。
3.如权利要求1所述的方法,其特征在于,所述对满足预设的第一距离条件及第一角度条件的对应的每个直线段进行连接包括:
针对每一个第一直线段,判断任意一个第二直线段是否与该第一直线段的第一夹角在预设的第一角度范围内,且与该第一直线段的距离小于预设的第一距离阈值,如果是,将该第一直线段与所述第二直线段进行连接。
4.如权利要求1所述的方法,其特征在于,所述根据所述两个目标直线段,确定DM码之前,所述方法还包括:
根据两个目标直线段,确定与两个所述目标直线段对应平行并与所述两个目标直线段构成第一封闭区域的每个第四直线段;
根据所述第一封闭区域内的每个目标直线段及每个第四直线段,确定每个包含对应目标直线段或包含对应第四直线段的第二封闭区域;
根据所述第一封闭区域对应的每个第二封闭区域内的像素点的灰度值,判断是否对所述第一封闭区域进行更新;
如果是,则对所述第一封闭区域内的每个目标直线段进行第二更新。
5.如权利要求4所述的方法,其特征在于,所述根据所述第一封闭区域对应的每个第二封闭区域内像素点的灰度值,判断是否对所述第一封闭区域进行更新包括:
针对所述第一封闭区域对应的每个第二封闭区域,判断包含目标直线段的第二封闭区域内的像素点的灰度值,在与该第二封闭区域包含的目标直线段垂直的方向上的变化规律与预设变化规律是否匹配,以及判断包含第四直线段的第二封闭区域内的像素点的灰度值,在与该第二封闭区域包含的第四直线段垂直的方向上的变化规律与所述预设变化规律是否匹配;
如果所述第一封闭区域对应的每个第二封闭区域对应的匹配结果均为是,则对所述第一封闭区域进行更新;
如果所述第一封闭区域对应的每个第二封闭区域中有至少一个第二封闭区域对应的匹配结果为否,则不对所述第一封闭区域进行更新。
6.如权利要求4所述的方法,其特征在于,所述对第一封闭区域内的每个目标直线段进行第二更新包括:
针对第一封闭区域内的每个目标直线段,确定包含该目标直线段的第二封闭区域内的与该目标直线段平行的直线段;
识别所述平行的直线段中的平均灰度值最小的直线段;
根据所述平均灰度值最小的直线段,对所述目标直线段进行第二更新。
7.如权利要求4所述的方法,其特征在于,所述根据所述第一封闭区域内的每个目标直线段及每个第四直线段,确定每个包含对应目标直线段或包含对应第四直线段的第二封闭区域之前,所述方法还包括:
针对每个第一封闭区域,根据该第一封闭区域内的像素点的灰度值及像素点的数量,判断是否将该第一封闭区域删除;
针对未被删除的第一封闭区域,进行后续步骤。
8.如权利要求7所述的方法,其特征在于,所述根据该第一封闭区域内的像素点的灰度值及像素点的数量,判断是否将该第一封闭区域删除包括以下至少一种:
针对该第一封闭区域,判断该第一封闭区域内的具有极性的像素点的第一数量与该第一封闭区域内的所有像素点的第二数量的比值是否大于预设的第一阈值,如果否,则将该第一封闭区域删除;
针对该第一封闭区域,判断该第一封闭区域内的像素点的灰度值相同的行和/或列的数量占该第一封闭区域内的像素点构成的所有行和/或所有列的比值是否小于预设的第二阈值,如果否,则将该第一封闭区域删除;
针对该第一封闭区域,判断该第一封闭区域内的灰度值为最大值的像素点的第三数量与该第一封闭区域内的所有像素点的第二数量的比值是否在预设的比值范围内,如果否,则将该第一封闭区域删除。
9.如权利要求4所述的方法,其特征在于,在对第一封闭区域内的每个目标直线段进行第二更新之后,所述方法还包括:
针对每个第二更新后的目标直线段,根据该目标直线段的预设区域范围内的像素点的灰度值对该目标直线段进行第三更新。
10.如权利要求1所述的方法,其特征在于,所述根据所述两个目标直线段,确定DM码之前,所述方法还包括:
判断所述原图像是否为所述原图像的金字塔图像中的最大尺度的图像;
如果否,则根据金字塔图像中的每个级别与图像的尺度的对应关系,确定与所述原图像的级别相邻级别的图像,在所述相邻级别的图像中确定两个所述目标直线段的投影直线段,并在所述相邻级别的图像中,将所述投影直线段作为目标直线段,进行后续步骤,其中,所述相邻级别的图像的尺度较原图像的尺度大;
如果是,则在最大尺度的原图像中,进行后续步骤。
11.如权利要求1-10任一项所述的方法,其特征在于,所述根据所述两个目标直线段,确定DM码包括:
针对两个目标直线段中的每个目标直线段,确定与该目标直线段对应平行且对应长度相同的第五直线段;
将两个所述目标直线段以及两个所述第五直线段构成的图形,确定为DM码。
12.如权利要求11所述的方法,其特征在于,所述将两个所述目标直线段以及两个所述第五直线段构成的图形,确定为DM码包括:
针对DM码的每个所述目标直线段以及每个所述第五直线段,采用包围盒算法确定该DM码的边缘,针对DM码的每个边缘,按照设定的规则选取至少一个边缘像素点,以该边缘像素点为中心,确定矩形区域,对每个矩形区域内的像素点进行投影,根据投影的峰值,确定每个矩形区域的投影边缘点,通过预设的算法将得到的每个矩形区域的投影边缘点拟合为一个矩形图形框,将该矩形框确定为该DM码精确的边缘。
13.一种数据矩阵DM码的定位装置,其特征在于,所述装置包括:
确定模块,用于针对待定位的原图像,根据所述原图像中的每个像素点的灰度值,确定所述原图像的梯度图以及所述梯度图中的每个像素点所在的象限;
所述确定模块,还用于在所述梯度图中,根据每个像素点的梯度值,确定所述梯度图中的鞍点;并根据每个象限的方向,将每个象限中的鞍点进行连接,构成鞍点线段;
所述确定模块,还用于按照链码的顺序,拟合每个鞍点线段中极性相同的像素点,构成每个直线段;
连接模块,用于对满足预设的第一距离条件及第一角度条件的对应的每个直线段进行连接;
定位模块,用于将相互连接的两个直线段作为目标直线段,根据所述两个目标直线段,确定DM码;
其中,所述装置还包括:
更新模块,用于针对两个目标直线段中的任意一个第一目标直线段,进行如下过程:A、判断是否存在与所述第一目标直线段的第二夹角在预设的第二角度范围内,且与所述第一目标直线段的距离小于预设的第二距离阈值的第三直线段;B、如果是,根据所述第三直线段与所述第一目标直线段对所述第一目标直线段进行第一更新,返回步骤A;C、如果否,则进行后续步骤。
14.如权利要求13所述的装置,其特征在于,所述确定模块,具体用于针对所述梯度图中的每个像素点,识别该像素点在预设第一方向上的第一子梯度值以及预设第二方向上的第二子梯度值,其中第一方向和第二方向相互垂直;根据第一子梯度值与第二子梯度值的正负,确定梯度图中的每个像素点所在的象限。
15.如权利要求13所述的装置,其特征在于,所述连接模块,具体用于针对每一个第一直线段,判断任意一个第二直线段是否与该第一直线段的第一夹角在预设的第一角度范围内,且与该第一直线段的距离小于预设的第一距离阈值,如果是,将该第一直线段与所述第二直线段进行连接。
16.如权利要求13所述的装置,其特征在于,所述更新模块,还用于根据两个目标直线段,确定与两个所述目标直线段对应平行并与所述两个目标直线段构成第一封闭区域的每个第四直线段;根据所述第一封闭区域内的每个目标直线段及每个第四直线段,确定每个包含对应目标直线段或包含对应第四直线段的第二封闭区域;根据所述第一封闭区域对应的每个第二封闭区域内的像素点的灰度值,判断是否对所述第一封闭区域进行更新;如果是,则对所述第一封闭区域内的每个目标直线段进行第二更新。
17.如权利要求16所述的装置,其特征在于,所述更新模块,具体用于针对所述第一封闭区域对应的每个第二封闭区域,判断包含目标直线段的第二封闭区域内的像素点的灰度值,在与该第二封闭区域包含的目标直线段垂直的方向上的变化规律与预设变化规律是否匹配,以及判断包含第四直线段的第二封闭区域内的像素点的灰度值,在与该第二封闭区域包含的第四直线段垂直的方向上的变化规律与所述预设变化规律是否匹配;如果所述第一封闭区域对应的每个第二封闭区域对应的匹配结果均为是,则对所述第一封闭区域进行更新;如果所述第一封闭区域对应的每个第二封闭区域中有至少一个第二封闭区域对应的匹配结果为否,则不对所述第一封闭区域进行更新。
18.如权利要求16所述的装置,其特征在于,所述更新模块,具体用于针对第一封闭区域内的每个目标直线段,确定包含该目标直线段的第二封闭区域内的与该目标直线段平行的直线段;识别所述平行的直线段中的平均灰度值最小的直线段;根据所述平均灰度值最小的直线段,对所述目标直线段进行第二更新。
19.如权利要求16所述的装置,其特征在于,所述装置还包括:
删除模块,用于针对每个第一封闭区域,根据该第一封闭区域内的像素点的灰度值及像素点的数量,判断是否将该第一封闭区域删除;针对未被删除的第一封闭区域,进行后续步骤。
20.如权利要求19所述的装置,其特征在于,所述删除模块,具体用于针对该第一封闭区域,判断该第一封闭区域内的具有极性的像素点的第一数量与该第一封闭区域内的所有像素点的第二数量的比值是否大于预设的第一阈值,如果否,则将该第一封闭区域删除;和/或针对该第一封闭区域,判断该第一封闭区域内的像素点的灰度值相同的行和/或列的数量占该第一封闭区域内的像素点构成的所有行和/或所有列的比值是否小于预设的第二阈值,如果否,则将该第一封闭区域删除;和/或针对该第一封闭区域,判断该第一封闭区域内的灰度值为最大值的像素点的第三数量与该第一封闭区域内的所有像素点的第二数量的比值是否在预设的比值范围内,如果否,则将该第一封闭区域删除。
21.如权利要求16所述的装置,其特征在于,所述更新模块,还用于针对每个第二更新后的目标直线段,根据该目标直线段的预设区域范围内的像素点的灰度值对该目标直线段进行第三更新。
22.如权利要求13所述的装置,其特征在于,所述装置还包括:
判断模块,用于判断所述原图像是否为所述原图像的金字塔图像中的最大尺度的图像;当判断结果为否,则根据金字塔图像中的每个级别与图像的尺度的对应关系,确定与所述原图像的级别相邻级别的图像,在所述相邻级别的图像中确定两个所述目标直线段的投影直线段,并在所述相邻级别的图像中,将所述投影直线段作为目标直线段,进行后续步骤,其中,所述相邻级别的图像的尺度较原图像的尺度大;当判断结果为是,则触发定位模块。
23.如权利要求13-22任一项所述的装置,其特征在于,所述定位模块,具体用于针对两个目标直线段中的每个目标直线段,确定与该目标直线段对应平行且对应长度相同的第五直线段;将两个所述目标直线段以及两个所述第五直线段构成的图形,确定为DM码。
24.如权利要求23所述的装置,其特征在于,所述定位模块,具体用于针对DM码的每个所述目标直线段以及每个所述第五直线段,采用包围盒算法确定该DM码的边缘,针对DM码的每个边缘,按照设定的规则选取至少一个边缘像素点,以该边缘像素点为中心,确定矩形区域,对每个矩形区域内的像素点进行投影,根据投影的峰值,确定每个矩形区域的投影边缘点,通过预设的算法将得到的每个矩形区域的投影边缘点拟合为一个矩形图形框,将该矩形框确定为该DM码精确的边缘。
CN201710171094.2A 2017-03-21 2017-03-21 一种数据矩阵dm码的定位方法及装置 Active CN106980851B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710171094.2A CN106980851B (zh) 2017-03-21 2017-03-21 一种数据矩阵dm码的定位方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710171094.2A CN106980851B (zh) 2017-03-21 2017-03-21 一种数据矩阵dm码的定位方法及装置

Publications (2)

Publication Number Publication Date
CN106980851A CN106980851A (zh) 2017-07-25
CN106980851B true CN106980851B (zh) 2020-02-14

Family

ID=59338264

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710171094.2A Active CN106980851B (zh) 2017-03-21 2017-03-21 一种数据矩阵dm码的定位方法及装置

Country Status (1)

Country Link
CN (1) CN106980851B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110414649B (zh) * 2019-07-29 2023-06-06 广州柔视智能科技有限公司 Dm码的定位方法、装置、终端及存储介质
CN110969802B (zh) * 2019-11-11 2021-07-09 中国铁塔股份有限公司廊坊市分公司 基于移动信号塔点的定位监控方法及智能监管平台
CN110933926B (zh) * 2019-11-13 2021-04-06 浙江工业大学 一种基于角点检测的贴片机吸嘴元件角度的自动校正方法
CN113033233B (zh) * 2019-12-27 2023-09-01 深圳大学 一种几何变形qr码的定位方法、装置及存储介质
CN117197422B (zh) * 2023-11-07 2024-03-26 深圳优艾智合机器人科技有限公司 识别码的定位方法、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102354363A (zh) * 2011-09-15 2012-02-15 西北工业大学 高反光柱面金属上的二维条码图像识别方法
CN102930268A (zh) * 2012-08-31 2013-02-13 西北工业大学 一种用于污染及多视角情况下DataMatrix码的精确定位方法
CN104268872A (zh) * 2014-09-25 2015-01-07 北京航空航天大学 基于一致性的边缘检测方法
CN105261031A (zh) * 2015-11-26 2016-01-20 四川汇源光通信有限公司 基于梯度计算的直线检测方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5629483B2 (ja) * 2010-03-30 2014-11-19 キヤノン株式会社 画像処理方法、画像処理装置、及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102354363A (zh) * 2011-09-15 2012-02-15 西北工业大学 高反光柱面金属上的二维条码图像识别方法
CN102930268A (zh) * 2012-08-31 2013-02-13 西北工业大学 一种用于污染及多视角情况下DataMatrix码的精确定位方法
CN104268872A (zh) * 2014-09-25 2015-01-07 北京航空航天大学 基于一致性的边缘检测方法
CN105261031A (zh) * 2015-11-26 2016-01-20 四川汇源光通信有限公司 基于梯度计算的直线检测方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
数字图像直线特征的亚像素位置检测;于新瑞 等;《光学技术》;20040331;第30卷(第2期);第2-4节 *

Also Published As

Publication number Publication date
CN106980851A (zh) 2017-07-25

Similar Documents

Publication Publication Date Title
CN106980851B (zh) 一种数据矩阵dm码的定位方法及装置
CN110390306B (zh) 直角车位的检测方法、车辆和计算机可读存储介质
CN108629292B (zh) 弯曲车道线检测方法、装置及终端
CN108734105B (zh) 车道线检测方法、装置、存储介质和电子设备
CN109099915B (zh) 移动机器人定位方法、装置、计算机设备和存储介质
CN109658454B (zh) 一种位姿信息确定方法、相关装置及存储介质
CN106919883B (zh) 一种qr码的定位方法及装置
CN111291603A (zh) 车道线检测方法、装置、系统及存储介质
CN111105452B (zh) 基于双目视觉的高低分辨率融合立体匹配方法
CN110414649B (zh) Dm码的定位方法、装置、终端及存储介质
CN111275776A (zh) 投影增强现实方法、装置和电子设备
CN112102342A (zh) 平面轮廓识别方法、装置、计算机设备和存储介质
CN113177941B (zh) 一种钢卷边裂识别方法、系统、介质和终端
CN109492639A (zh) 装载位置三维坐标获取方法、系统及图像识别设备
CN113420580A (zh) 用于对二维码进行辅助定位符定位的方法及装置、二维码扫描设备、存储介质
CN112001336A (zh) 行人越界报警方法、装置、设备及系统
Sihombing et al. Perspective rectification in vehicle number plate recognition using 2D-2D transformation of Planar Homography
CN113505745B (zh) 一种文字识别方法、装置、电子设备及存储介质
CN110874814A (zh) 一种图像处理方法、图像处理装置及终端设备
CN115880362A (zh) 码区定位方法、装置、计算机设备及计算机可读存储介质
CN115018735A (zh) 基于霍夫变换校正二维码图像的裂缝宽度识别方法及系统
CN114862870A (zh) 散斑图分区方法、装置、设备及介质
CN111639642B (zh) 一种图像处理方法、设备及装置
CN111047617B (zh) 一种矩形识别优化方法、装置及设备
CN109214230B (zh) 数据矩阵码识别方法、装置及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: C10, No. 1199 Bin'an Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: Zhejiang Huarui Technology Co.,Ltd.

Address before: C10, No. 1199 Bin'an Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee before: ZHEJIANG HUARAY TECHNOLOGY Co.,Ltd.

CP01 Change in the name or title of a patent holder