CN107452028B - 一种确定目标图像位置信息的方法及装置 - Google Patents
一种确定目标图像位置信息的方法及装置 Download PDFInfo
- Publication number
- CN107452028B CN107452028B CN201710632873.8A CN201710632873A CN107452028B CN 107452028 B CN107452028 B CN 107452028B CN 201710632873 A CN201710632873 A CN 201710632873A CN 107452028 B CN107452028 B CN 107452028B
- Authority
- CN
- China
- Prior art keywords
- template
- gradient
- point
- direction control
- determining
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
- G06T7/33—Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
- G06T7/344—Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods involving models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
- G06T7/33—Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20016—Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种确定目标图像位置信息的方法及装置,所述方法包括:针对每个匹配区域,根据该匹配区域内每个像素点以及预先保存的模板图像中每个模板像素点的水平梯度值、垂直梯度值和梯度幅值,确定该匹配区域的分值;进而确定目标区域,根据模板像素点的梯度方向,确定目标区域中位于第一邻域内的像素点;采用预设的算法,确定所述目标区域的透视矩阵;根据所述透视矩阵对模板图像的每条边缘线进行矫正,确定目标区域中的目标图像位置信息。由于在本发明实施例中,确定目标区域后,确定所述目标区域的透视矩阵,根据所述透视矩阵对边缘线进行矫正,确定目标区域中的目标图像位置信息,提高了发生透视形变时目标图像位置信息的确定准确率。
Description
技术领域
本发明涉及图像处理领域,尤其涉及一种确定目标图像位置信息的方法及装置。
背景技术
模板匹配是一项在一幅图像中寻找与模板图像最匹配或相似部分的技术,通过模板匹配可以确定待匹配图像中的目标图像位置信息。例如在机器视觉中定位某个零件图案,指导机械臂的运动;在缺陷检测中,实现两幅图像的配准等。
现有技术中,一般基于特征点的匹配算法实现透视模板匹配,具体的实现过程包括:根据像素点的灰度值,分别提取模板图像和待匹配图像中的特征点,根据提取的特征点建立特征描述子,进而通过匹配策略完成模板图像和待匹配图像中的特征点的配对,从而实现模板匹配,确定出待匹配图像中的目标图像位置信息。基于特征点的匹配算法实现透视模板匹配对待匹配图像的采集场景要求较高,需要待匹配图像存在明显的纹理特征,而在复杂场景中,即纹理信息较弱,对比度差的场景中,无法准确确定待匹配图像中的特征点,导致在发生透视形变时,目标图像位置信息的确定准确率较低。
发明内容
本发明实施例提供了一种确定目标图像位置信息的方法及装置,用以解决现有技术中在复杂场景下发生透视形变时,确定目标图像位置信息准确率较低的问题。
本发明实施例提供了一种确定目标图像位置信息的方法,该方法包括:
针对待匹配图像中的每个像素点,确定该像素点的水平梯度值和垂直梯度值,并根据该像素点的水平梯度值和垂直梯度值,确定该像素点的梯度幅值;
根据预先保存的匹配参数,确定模板图像在待匹配图像中的每个匹配区域,针对所述每个匹配区域,根据待匹配图像中该匹配区域内每个像素点的水平梯度值、垂直梯度值和梯度幅值,以及预先保存的模板图像中每条边缘线上的每个模板像素点的水平梯度值、垂直梯度值和梯度幅值,确定该匹配区域的分值;
根据每个匹配区域的分值,确定目标区域,针对所述每个模板像素点,根据预先保存的该模板像素点的梯度方向,确定与该模板像素点的梯度方向对应的第一邻域,确定待匹配图像的目标区域中位于所述第一邻域内的像素点;
根据模板图像每条边缘线上的模板像素点以及确定的待匹配图像的目标区域中位于所述第一邻域内的像素点,采用预设的算法,确定所述目标区域的透视矩阵;
根据所述透视矩阵对模板图像的每条边缘线进行矫正,并根据矫正后的所述模板图像中的每条边缘线,确定目标区域中的目标图像位置信息。
进一步地,所述预先保存模板图像中每条边缘线上的每个模板像素点的水平梯度值、垂直梯度值和梯度幅值的过程包括:
针对模板图像中的每个模板像素点,确定该模板像素点的水平梯度值和垂直梯度值,并根据该模板像素点的水平梯度值和垂直梯度值,确定该模板像素点的梯度幅值;
根据每个模板像素点的梯度幅值和预设的第一幅值阈值,对模板像素点进行过滤处理,确定模板图像中的边缘模板像素点;
针对每个边缘模板像素点,根据该边缘模板像素点及其水平方向相邻的两个模板像素点的梯度幅值的第一差值,和该边缘模板像素点及其垂直方向相邻的两个模板像素点的梯度幅值的第二差值,确定该边缘模板像素点是否为垂直方向控制点或水平方向控制点;
针对每个水平方向控制点或垂直方向控制点,及与每个水平方向控制点或垂直方向控制点连接的模板像素点是否为垂直方向控制点或水平方向控制点,确定所述模板图像中的边缘线,并保存所述边缘线上每个模板像素点的水平梯度值、垂直梯度值和梯度幅值。
进一步地,所述根据每个模板像素点的梯度幅值和预设的第一幅值阈值,对模板像素点进行过滤处理之后,确定模板图像中的边缘模板像素点之前,所述方法还包括:
针对过滤处理后的每个模板像素点,确定包含该模板像素点在内的第二邻域;根据该模板像素点的水平梯度值和垂直梯度值,确定该模板像素点的梯度方向,并确定在所述第二邻域内与所述模板像素点的所述梯度方向对应的两个位置点;根据所述第二邻域内每个模板像素点的梯度幅值,采用双线性插值算法,确定所述两个位置点的梯度幅值;判断该模板像素点的梯度幅值是否分别大于所述两个位置点的梯度幅值,如果是,将该模板像素点保留,如果否,将该模板像素点滤除。
进一步地,所述针对每个水平方向控制点或垂直方向控制点,及与每个水平方向控制点或垂直方向控制点连接的模板像素点是否为垂直方向控制点或水平方向控制点,确定所述模板图像中的边缘线包括:
A、将边缘模板像素点中的任意一个水平方向控制点或垂直方向控制点作为边缘线连接起点;
B、如果所述边缘线连接起点是水平方向控制点,分别确定与该水平方向控制点水平相邻,并位于该水平方向控制点两侧的第一设定数量的模板像素点,在所述水平方向控制点两侧分别识别梯度幅值最大的模板像素点,将该水平方向控制点分别与所述梯度幅值最大的模板像素点连接;如果所述边缘线连接起点是垂直方向控制点,分别确定与该垂直方向控制点垂直相邻,并位于该垂直方向控制点两侧的第二设定数量的模板像素点,在所述垂直方向控制点两侧分别识别梯度幅值最大的模板像素点,将该垂直方向控制点分别与所述梯度幅值最大的模板像素点连接;
C、判断与所述水平方向控制点或垂直方向控制点连接的梯度幅值最大的模板像素点是否为垂直方向控制点或水平方向控制点,如果否,则将所述梯度幅值最大的模板像素点作为水平方向控制点或垂直方向控制点,否则,将所述梯度幅值最大的模板像素点作为垂直方向控制点或水平方向控制点;
D、判断边缘模板像素点中的每个水平方向控制点或垂直方向控制点是否都与其对应的两侧的梯度幅值最大的模板像素点进行了连接,如果否,将边缘模板像素点中未进行连接的水平方向控制点或垂直方向控制点中的任意一个作为边缘线连接起点,进行步骤B,如果是,根据连接后的模板图像中的模板像素点确定边缘线。
进一步地,所述确定所述模板图像中的边缘线之后,并保存所述边缘线上每个模板像素点的水平梯度值、垂直梯度值和梯度幅值之前,所述方法还包括:
针对每条边缘线,判断该边缘线上的模板像素点的数量是否大于预设的数量阈值;
如果是,保留该边缘线;如果否,将该边缘线滤除。
进一步地,所述根据该像素点的水平梯度值和垂直梯度值,确定该像素点的梯度幅值包括:
根据该像素点的水平梯度值和垂直梯度值,确定该像素点的梯度幅值和梯度方向;
所述根据该像素点的水平梯度值和垂直梯度值,确定该像素点的梯度幅值之后,根据预先保存的匹配参数,确定模板图像在待匹配图像中的每个匹配区域之前,所述方法还包括:
根据每个像素点的梯度幅值和预设的第二幅值阈值,确定待匹配图像中的边缘像素点;
针对每个边缘像素点,确定包含该边缘像素点在内的且与该边缘像素点的梯度方向对应的第三邻域,将所述第三邻域内与该边缘像素点相邻的两个像素点作为第一目标像素点,将所述第三邻域内不与该边缘像素点相邻的像素点作为第二目标像素点;依次针对每个第二目标像素点,根据更新了梯度幅值的像素点的梯度幅值,依次对每个第二目标像素点的梯度幅值进行更新。
进一步地,所述针对待匹配图像中的每个像素点,确定该像素点的水平梯度值和垂直梯度值之前,所述方法还包括:
获取待匹配图像的第一金字塔图像;
对所述第一金字塔图像中的每一层待匹配图像进行后续处理。
进一步地,所述针对模板图像中的每个模板像素点,确定该模板像素点的水平梯度值和垂直梯度值之前,所述方法还包括:
获取模板图像的第二金字塔图像;
对所述第二金字塔图像中的每一层模板图像进行后续处理。
另一方面,本发明实施例提供了一种确定目标图像位置信息的装置,所述装置包括:
第一确定模块,用于针对待匹配图像中的每个像素点,确定该像素点的水平梯度值和垂直梯度值,并根据该像素点的水平梯度值和垂直梯度值,确定该像素点的梯度幅值;
第二确定模块,用于根据预先保存的匹配参数,确定模板图像在待匹配图像中的每个匹配区域,针对所述每个匹配区域,根据待匹配图像中该匹配区域内每个像素点的水平梯度值、垂直梯度值和梯度幅值,以及预先保存的模板图像中每条边缘线上的每个模板像素点的水平梯度值、垂直梯度值和梯度幅值,确定该匹配区域的分值;
第三确定模块,用于根据每个匹配区域的分值,确定目标区域,针对所述每个模板像素点,根据预先保存的该模板像素点的梯度方向,确定与该模板像素点的梯度方向对应的第一邻域,确定待匹配图像的目标区域中位于所述第一邻域内的像素点;
第四确定模块,用于根据模板图像每条边缘线上的模板像素点以及确定的待匹配图像的目标区域中位于所述第一邻域内的像素点,采用预设的算法,确定所述目标区域的透视矩阵;
第五确定模块,用于根据所述透视矩阵对模板图像的每条边缘线进行矫正,并根据矫正后的所述模板图像中的每条边缘线,确定目标区域中的目标图像位置信息。
进一步地,所述装置还包括:
第六确定模块,用于针对模板图像中的每个模板像素点,确定该模板像素点的水平梯度值和垂直梯度值,并根据该模板像素点的水平梯度值和垂直梯度值,确定该模板像素点的梯度幅值;
第七确定模块,用于根据每个模板像素点的梯度幅值和预设的第一幅值阈值,对模板像素点进行过滤处理,确定模板图像中的边缘模板像素点;
第八确定模块,用于针对每个边缘模板像素点,根据该边缘模板像素点及其水平方向相邻的两个模板像素点的梯度幅值的第一差值,和该边缘模板像素点及其垂直方向相邻的两个模板像素点的梯度幅值的第二差值,确定该边缘模板像素点是否为垂直方向控制点或水平方向控制点;
确定保存模块,用于针对每个水平方向控制点或垂直方向控制点,及与每个水平方向控制点或垂直方向控制点连接的模板像素点是否为垂直方向控制点或水平方向控制点,确定所述模板图像中的边缘线,并保存所述边缘线上每个模板像素点的水平梯度值、垂直梯度值和梯度幅值。
进一步地,所述装置还包括:
第一滤除模块,用于针对过滤处理后的每个模板像素点,确定包含该模板像素点在内的第二邻域;根据该模板像素点的水平梯度值和垂直梯度值,确定该模板像素点的梯度方向,并确定在所述第二邻域内与所述模板像素点的所述梯度方向对应的两个位置点;根据所述第二邻域内每个模板像素点的梯度幅值,采用双线性插值算法,确定所述两个位置点的梯度幅值;判断该模板像素点的梯度幅值是否分别大于所述两个位置点的梯度幅值,如果是,将该模板像素点保留,如果否,将该模板像素点滤除。
进一步地,所述确定保存模块包括:
确定单元,用于将边缘模板像素点中的任意一个水平方向控制点或垂直方向控制点作为边缘线连接起点;
连接单元,用于如果所述边缘线连接起点是水平方向控制点,分别确定与该水平方向控制点水平相邻,并位于该水平方向控制点两侧的第一设定数量的模板像素点,在所述水平方向控制点两侧分别识别梯度幅值最大的模板像素点,将该水平方向控制点分别与所述梯度幅值最大的模板像素点连接;如果所述边缘线连接起点是垂直方向控制点,分别确定与该垂直方向控制点垂直相邻,并位于该垂直方向控制点两侧的第二设定数量的模板像素点,在所述垂直方向控制点两侧分别识别梯度幅值最大的模板像素点,将该垂直方向控制点分别与所述梯度幅值最大的模板像素点连接;
第一判断确定单元,用于判断与所述水平方向控制点或垂直方向控制点连接的梯度幅值最大的模板像素点是否为垂直方向控制点或水平方向控制点,如果否,则将所述梯度幅值最大的模板像素点作为水平方向控制点或垂直方向控制点,否则,将所述梯度幅值最大的模板像素点作为垂直方向控制点或水平方向控制点;
第二判断确定单元,用于判断边缘模板像素点中的每个水平方向控制点或垂直方向控制点是否都与其对应的两侧的梯度幅值最大的模板像素点进行了连接,如果否,将边缘模板像素点中未进行连接的水平方向控制点或垂直方向控制点中的任意一个作为边缘线连接起点,触发连接单元,如果是,根据连接后的模板图像中的模板像素点确定边缘线。
进一步地,所述装置还包括:
第二滤除模块,用于针对每条边缘线,判断该边缘线上的模板像素点的数量是否大于预设的数量阈值;如果是,保留该边缘线;如果否,将该边缘线滤除。
进一步地,所述第一确定模块,具体用于根据该像素点的水平梯度值和垂直梯度值,确定该像素点的梯度幅值和梯度方向;
所述装置还包括:
确定更新模块,用于根据每个像素点的梯度幅值和预设的第二幅值阈值,确定待匹配图像中的边缘像素点;针对每个边缘像素点,确定包含该边缘像素点在内的且与该边缘像素点的梯度方向对应的第三邻域,将所述第三邻域内与该边缘像素点相邻的两个像素点作为第一目标像素点,将所述第三邻域内不与该边缘像素点相邻的像素点作为第二目标像素点;依次针对每个第二目标像素点,根据更新了梯度幅值的像素点的梯度幅值,依次对每个第二目标像素点的梯度幅值进行更新。
进一步地,所述装置还包括:
第一获取模块,用于获取待匹配图像的第一金字塔图像;针对所述第一金字塔图像中的每一层待匹配图像,触发第一确定模块。
进一步地,所述装置还包括:
第二获取模块,用于获取模板图像的第二金字塔图像;针对所述第二金字塔图像中的每一层模板图像,触发第六确定模块。
本发明实施例提供了一种确定目标图像位置信息的方法及装置,所述方法包括:针对待匹配图像中的每个像素点,确定该像素点的水平梯度值和垂直梯度值,并根据该像素点的水平梯度值和垂直梯度值,确定该像素点的梯度幅值;根据预先保存的匹配参数,确定模板图像在待匹配图像中的每个匹配区域,针对所述每个匹配区域,根据待匹配图像中该匹配区域内每个像素点的水平梯度值、垂直梯度值和梯度幅值,以及预先保存的模板图像中每条边缘线上的每个模板像素点的水平梯度值、垂直梯度值和梯度幅值,确定该匹配区域的分值;根据每个匹配区域的分值,确定目标区域,针对所述每个模板像素点,根据预先保存的该模板像素点的梯度方向,确定与该模板像素点的梯度方向对应的第一邻域,确定待匹配图像的目标区域中位于所述第一邻域内的像素点;根据模板图像每条边缘线上的模板像素点以及确定的待匹配图像的目标区域中位于所述第一邻域内的像素点,采用预设的算法,确定所述目标区域的透视矩阵;根据所述透视矩阵对模板图像的每条边缘线进行矫正,并根据矫正后的所述模板图像中的每条边缘线,确定目标区域中的目标图像位置信息。由于在本发明实施例中,确定了模板图像在待匹配图像中的每个匹配区域后,根据每个像素点的水平梯度值、垂直梯度值和梯度幅值,确定每个匹配区域的分值,进而确定目标区域,根据模板图像每条边缘线上的模板像素点以及确定的待匹配图像的目标区域中位于确定的第一邻域内的像素点,采用预设的算法,确定所述目标区域的透视矩阵;根据所述透视矩阵对模板图像的每条边缘线进行矫正,并根据矫正后的所述模板图像中的每条边缘线,确定目标区域中的目标图像位置信息,而不需要提取待匹配图像中的特征点,有效避免了复杂场景的影响,从而提高了发生透视形变时目标图像位置信息的确定准确率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种确定目标图像位置信息的过程示意图;
图2为本发明实施例1提供的确定透视矩阵的示意图;
图3为本发明实施例1提供的透视模板匹配效果示意图;
图4为本发明实施例3提供的确定位置点的示意图;
图5A为本发明实施例4提供的水平方向控制点两侧模板像素点示意图;
图5B为本发明实施例4提供的垂直方向控制点两侧模板像素点示意图;
图6为本发明实施例6提供的确定所述第一目标像素点以及第二目标像素点的梯度幅值的示意图;
图7为本发明实施例提供的确定目标图像位置信息的装置结构示意图。
具体实施方式
下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例1:
图1为本发明实施例提供的一种确定目标图像位置信息的过程示意图,该过程包括以下步骤:
S101:针对待匹配图像中的每个像素点,确定该像素点的水平梯度值和垂直梯度值,并根据该像素点的水平梯度值和垂直梯度值,确定该像素点的梯度幅值。
本发明实施例提供的确定目标图像位置信息的方法应用于电子设备,所述电子设备包括PC、手机及平板电脑等设备。
具体的,在确定像素点的水平梯度值时,可以根据与该像素点水平方向相邻的两个像素点的像素值,确定该像素点的水平梯度值,可以将与该像素点水平方向相邻且位于该像素点左侧的像素点的像素值减去,与该像素点水平方向相邻且位于该像素点右侧的像素点的像素值后的差值作为该像素点的水平梯度值;也可以将与该像素点水平方向相邻且位于该像素点右侧的像素点的像素值减去,与该像素点水平方向相邻且位于该像素点左侧的像素点的像素值后的差值作为该像素点的水平梯度值。针对每个像素点,只要保证相减顺序一致即可。
具体的,在确定像素点的垂直梯度值时,可以根据与该像素点垂直方向相邻的两个像素点的像素值,确定该像素点的垂直梯度值,可以将与该像素点垂直方向相邻且位于该像素点上侧的像素点的像素值减去,与该像素点垂直方向相邻且位于该像素点下侧的像素点的像素值后的差值作为该像素点的水平梯度值,也可以将与该像素点垂直方向相邻且位于该像素点下侧的像素点的像素值减去,与该像素点垂直方向相邻且位于该像素点上侧的像素点的像素值后的差值作为该像素点的水平梯度值。针对每个像素点,只要保证相减顺序一致即可。
电子设备确定像素点的水平梯度值和垂直梯度值之后,根据该像素点的水平梯度值和垂直梯度值,可以确定该像素点的梯度幅值。可以根据下式确定该像素点的梯度幅值:
式中:Gx(x,y)为坐标为(x,y)的像素点的水平梯度值;Gy(x,y)为坐标为(x,y)的像素点的垂直梯度值;G(x,y)为坐标为(x,y)的像素点的梯度幅值。
S102:根据预先保存的匹配参数,确定模板图像在待匹配图像中的每个匹配区域,针对所述每个匹配区域,根据待匹配图像中该匹配区域内每个像素点的水平梯度值、垂直梯度值和梯度幅值,以及预先保存的模板图像中每条边缘线上的每个模板像素点的水平梯度值、垂直梯度值和梯度幅值,确定该匹配区域的分值。
所述电子设备在确定待匹配图像中的目标图像时,先确定模板图像在待匹配图像中的每个匹配区域。电子设备中预先保存有匹配参数,所述匹配参数包括位置参数,并且还可以包括角度参数和尺度参数中的至少一种。可以根据位置参数,并且还可以根据角度参数和尺度参数中的至少一种,确定模板图像在待匹配图像中的每个匹配区域。较佳的,为了保证能够确定出目标图像,可以同时根据位置参数、角度参数和尺度参数,确定模板图像在待匹配图像中的每个匹配区域。
根据位置参数确定每个匹配区域的过程属于现有技术,在此不再对此过程进行赘述。在本发明实施例中,针对根据位置参数确定的每个匹配区域,可以根据角度参数对该匹配区域对应的模板图像进行旋转,得到旋转后的模板图像对应的匹配区域,其中,每次的旋转角度可以为1度,即模板图像每旋转1度,得到一个匹配区域。另外,针对得到的每个匹配区域,还可以根据尺度参数对该匹配区域对应的模板图像进行缩放处理,得到缩放处理后的模板图像对应的匹配区域。其中,缩放处理的倍数可以为0.5,0.6,0.7,……,1.3,1.4,1.5等。
根据所述位置参数,并且还可以根据角度参数和尺度参数中的至少一个,可以确定模板图像在待匹配图像中的每个匹配区域,针对每个匹配区域,可以确定该匹配区域的分值。具体的,由于针对待匹配图像中的每个像素点,确定出了该像素点的水平梯度值、垂直梯度值和梯度幅值,因此针对每个匹配区域,可以确定该匹配区域内每个像素点的水平梯度值、垂直梯度值和梯度幅值。电子设备中预先保存了模板图像中每条边缘线上的每个模板像素点的水平梯度值、垂直梯度值和梯度幅值。针对每个匹配区域,在该匹配区域中存在与所述模板图像中每条边缘线上的每个模板像素点对应的每个像素点,针对每条边缘线上的每个模板像素点,根据该模板像素点的水平梯度值、垂直梯度值和梯度幅值,以及与该模板像素点对应的匹配区域中像素点的水平梯度值、垂直梯度值和梯度幅值,可以确定该模板像素点的分值。
可以针对每个匹配区域,根据下式确定该模板像素点的分值:
式中:(x,y)为该匹配区域中与该模板像素点对应的像素点在待匹配图像中的坐标;Gx1为该模板像素点的水平梯度值;Gx2为该匹配区域中与该模板像素点对应的像素点的水平梯度值;Gy1为该模板像素点的垂直梯度值;Gy2为该匹配区域中与该模板像素点对应的像素点的垂直梯度值;G1为该模板像素点的梯度幅值;G2为该匹配区域中与该模板像素点对应的像素点的梯度幅值;S(x,y)为该模板像素点的分值。
根据上式,针对每个匹配区域,可以确定该匹配区域对应的模板图像中每条边缘线上的每个模板像素点的分值,针对每条边缘线,将该边缘线上的模板像素点的分值的平均值作为该边缘线的分值,将该匹配区域中的每条边缘线的分值的平均值作为该匹配区域的分值。
S103:根据每个匹配区域的分值,确定目标区域,针对所述每个模板像素点,根据预先保存的该模板像素点的梯度方向,确定与该模板像素点的梯度方向对应的第一邻域,确定待匹配图像的目标区域中位于所述第一邻域内的像素点。
电子设备可以根据确定的每个匹配区域的分值,确定待匹配图像中的目标区域。具体的,可以将匹配区域中分值最高的匹配区域作为目标区域,如果分值最高的匹配区域不止一个,则将每个分值最高的匹配区域都作为目标区域。另外,为了使确定的目标区域更加准确,所述电子设备中可以预先保存一个分值阈值,在将分值最高的匹配区域作为目标区域之前,可以判断最高的分值是否大于分值阈值,如果是,则将分值最高的匹配区域作为目标区域,如果否,则确定待匹配图像中没有目标区域。
另外,由于本发明实施例中是在匹配区域中确定目标区域,从而确定目标图像位置信息,因此匹配区域的确定的准确性对后续目标图像的影响很大,为了提高目标图像识别的准确性,一般预先保存的位置参数、角度参数和尺度参数中的步长都很小,比如位置步长为1个像素点,角度步长为1度,尺度步长为0.1。
在确定目标区域后,针对模板图像每条边缘线上的每个模板像素点,根据预先保存的该模板像素点的梯度方向,可以确定包含该模板像素点在内的且于该模板像素点的梯度方向对应的第一邻域。即将包含该模板像素点在内的,与该模板像素点的梯度方向对应的,包含第三设定数量模板像素点的邻域范围,确定为第一邻域,其中,第三设定数量可以为5、6、7等。由于在目标区域中,模板图像中的模板像素点与待匹配图像中的像素点存在对应关系,在确定所述第一邻域后,可以确定待匹配图像的目标区域中位于所述第一邻域内的像素点。
S104:根据模板图像每条边缘线上的模板像素点以及确定的待匹配图像的目标区域中位于所述第一邻域内的像素点,采用预设的算法,确定所述目标区域的透视矩阵。
采用随机抽样一致ransac算法,可以对所述模板图像每条边缘线上的模板像素点,以及待匹配图像的目标区域中位于所述第一邻域内的像素点进行过滤处理,根据过滤处理后的所述模板图像每条边缘线上的模板像素点以及待匹配图像的目标区域中位于所述第一邻域内的像素点,采用奇异值分解算法SVD算法可以确定所述目标区域的透视矩阵。图2为确定透视矩阵的示意图,如图2所示,根据述模板图像每条边缘线上的模板像素点以及待匹配图像的目标区域中位于所述第一邻域内的像素点,通过计算得到透视矩阵M。其中,采用ransac算法和SVD算法确定透视矩阵的过程,以及根据透视矩阵对模板图像的每条边缘线进行矫正的过程属于现有技术,在此不再对此过程进行赘述。
S105:根据所述透视矩阵对模板图像的每条边缘线进行矫正,并根据矫正后的所述模板图像中的每条边缘线,确定目标区域中的目标图像位置信息。
在确定所述目标区域的透视矩阵之后,根据所述透视矩阵可以对模板图像的每条边缘线进行矫正,根据矫正后的所述模板图像中的每条边缘线,可以确定目标区域中的目标图像位置信息。图3为本发明实施例提供的透视模板匹配效果示意图,如图3所示,通过确定的目标区域透视矩阵,可以完成2D到3D的透视模板匹配,确定目标区域中的目标图像位置信息。
由于在本发明实施例中,确定了模板图像在待匹配图像中的每个匹配区域后,根据每个像素点的水平梯度值、垂直梯度值和梯度幅值,确定每个匹配区域的分值,进而确定目标区域,根据模板图像每条边缘线上的模板像素点以及确定的待匹配图像的目标区域中位于确定的第一邻域内的像素点,采用预设的算法,确定所述目标区域的透视矩阵;根据所述透视矩阵对模板图像的每条边缘线进行矫正,并根据矫正后的所述模板图像中的每条边缘线,确定目标区域中的目标图像位置信息,而不需要提取待匹配图像中的特征点,有效避免了复杂场景的影响,从而提高了发生透视形变时目标图像位置信息的确定准确率。
实施例2:
在上述实施例的基础上,在本发明实施例中,所述预先保存模板图像中每条边缘线上的每个模板像素点的水平梯度值、垂直梯度值和梯度幅值的过程包括:
针对模板图像中的每个模板像素点,确定该模板像素点的水平梯度值和垂直梯度值,并根据该模板像素点的水平梯度值和垂直梯度值,确定该模板像素点的梯度幅值;
根据每个模板像素点的梯度幅值和预设的第一幅值阈值,对模板像素点进行过滤处理,确定模板图像中的边缘模板像素点;
针对每个边缘模板像素点,根据该边缘模板像素点及其水平方向相邻的两个模板像素点的梯度幅值的第一差值,和该边缘模板像素点及其垂直方向相邻的两个模板像素点的梯度幅值的第二差值,确定该边缘模板像素点是否为垂直方向控制点或水平方向控制点;
针对每个水平方向控制点或垂直方向控制点,及与每个水平方向控制点或垂直方向控制点连接的模板像素点是否为垂直方向控制点或水平方向控制点,确定所述模板图像中的边缘线,并保存所述边缘线上每个模板像素点的水平梯度值、垂直梯度值和梯度幅值。
具体的,为了方便说明,将模板中的像素点称为模板像素点,在确定模板像素点的水平梯度值时,可以根据与该模板像素点水平方向相邻的两个模板像素点的像素值,确定该模板像素点的水平梯度值,可以将与该模板像素点水平方向相邻且位于该模板像素点左侧的模板像素点的像素值减去,与该模板像素点水平方向相邻且位于该模板像素点右侧的模板像素点的像素值后的差值作为该模板像素点的水平梯度值;也可以将与该模板像素点水平方向相邻且位于该模板像素点右侧的模板像素点的像素值减去,与该模板像素点水平方向相邻且位于该模板像素点左侧的模板像素点的像素值后的差值作为该模板像素点的水平梯度值。针对每个模板像素点,只要保证相减顺序一致即可。
具体的,在确定模板像素点的垂直梯度值时,可以根据与该模板像素点垂直方向相邻的两个模板像素点的像素值,确定该模板像素点的垂直梯度值,可以将与该模板像素点垂直方向相邻且位于该模板像素点上侧的模板像素点的像素值减去,与该模板像素点垂直方向相邻且位于该模板像素点下侧的模板像素点的像素值后的差值作为该模板像素点的水平梯度值,也可以将与该模板像素点垂直方向相邻且位于该模板像素点下侧的模板像素点的像素值减去,与该模板像素点垂直方向相邻且位于该模板像素点上侧的模板像素点的像素值后的差值作为该模板像素点的水平梯度值。针对每个模板像素点,只要保证相减顺序一致即可。
由于边缘模板像素点水平方向相邻的每个像素点的像素值或垂直方向相邻的每个像素点的像素值的差较大,因此,边缘模板像素点的梯度幅值较大。因此,在确定模板图像中的边缘模板像素点时,可以将梯度幅值较大的模板像素点作为边缘模板像素点。
具体的,电子设备中可以预先保存预设的第一幅值阈值,在确定每个模板像素点的梯度幅值之后,根据每个模板像素点的梯度幅值和预设的第一幅值阈值,对模板像素点进行过滤处理,即将梯度幅值小于预设的第一幅值阈值的模板像素点过滤,将梯度幅值不小于预设的第一幅值阈值的模板像素点确定为模板图像中的边缘模板像素点。
例如,预设的第一幅值阈值为80,在确定每个模板像素点的梯度幅值之后,将模板图像中梯度幅值小于80的模板像素点过滤,将梯度幅值不小于80的模板像素点确定为模板图像中的边缘模板像素点。
在本发明实施例中根据确定的边缘模板像素点确定出水平方向控制点和垂直方向控制点,根据确定的水平方向控制点和垂直方向控制点,确定边缘线。其中,模板图像中的水平方向控制点的梯度幅值大于与其相邻、且位于其上侧的模板像素点的梯度幅值,并且大于与其相邻且位于其下侧的模板像素点的梯度幅值;模板图像中的垂直方向控制点的梯度幅值大于与其相邻、且位于其左侧的模板像素点的梯度幅值,并且大于与其相邻且位于其右侧的模板像素点的梯度幅值。
在确定水平方向控制点和垂直方向控制点时,针对确定的每个边缘模板像素点,可以判断该边缘模板像素点的梯度幅值是否分别大于与该边缘模板像素点垂直方向相邻的两个模板像素点的梯度幅值,如果是,确定该边缘模板像素点为水平方向控制点。针对确定的每个边缘模板像素点,可以判断该边缘模板像素点的梯度幅值是否分别大于与该边缘模板像素点水平方向相邻的两个模板像素点的梯度幅值,如果是,确定该边缘模板像素点为垂直方向控制点。
因为在进行水平方向控制点和垂直方向控制点判断时,分别是根据水平方向相邻的两个模板像素点的梯度幅值和垂直方向相邻的两个模板像素点的梯度幅值来判断的,因此一个边缘模板像素点可能会即为垂直方向控制点也为水平方向控制点。另外,如果边缘模板像素点的梯度幅值小于与其水平方向相邻的两个模板像素点中至少一个模板像素点的梯度幅值,并且小于与其垂直方向相邻的两个模板像素点中至少一个模板像素点的梯度幅值,则该边缘模板像素点既不是水平方向控制点,也不是垂直方向控制点。
较佳的,为了使确定的水平方向控制点和垂直方向控制点更加准确,在确定水平方向控制点和垂直方向控制点时,针对每个边缘模板像素点,可以根据该边缘模板像素点及其水平方向相邻的两个模板像素点的梯度幅值的第一差值,和该边缘模板像素点及其垂直方向相邻的两个模板像素点的梯度幅值的第二差值,确定该边缘模板像素点是否为垂直方向控制点或水平方向控制点。具体的,针对每个边缘模板像素点,可以分别确定该边缘模板像素点与其水平方向相邻的两个模板像素点的梯度幅值的两个第一差值,电子设备中预先保存有垂直方向控制点对应的第一阈值,当所述确定的两个第一差值都大于第一阈值时,确定该边缘模板像素点为垂直方向控制点。
针对每个边缘模板像素点,可以分别确定该边缘模板像素点与其垂直方向相邻的两个模板像素点的梯度幅值的两个第二差值,电子设备中预先保存有水平方向控制点对应的第二阈值,当所述确定的两个第二差值都大于第二阈值时,确定该边缘模板像素点为水平方向控制点。另外,如果确定的两个第一差值都大于第一阈值,并且确定的两个第二差值都大于第二阈值,则确定该边缘模板像素点既为水平方向控制点,也为垂直方向控制点。如果确定的两个第一差值中的至少一个小于第一阈值,并且确定的两个第二差值中的至少一个小于第二阈值,则该边缘模板像素点既不是水平方向控制点,也不是垂直方向控制点。其中,垂直方向控制点对应的第一阈值和水平方向对应的第二阈值可以相同,也可以不同。
确定模板图像中的水平方向控制点和垂直方向控制点之后,针对每个水平方向控制点,将该水平方向控制点分别与该水平方向控制点水平方向相邻的两个模板像素点连接;针对每个垂直方向控制点,将该垂直方向控制点分别与该垂直方向控制点垂直方向相邻的两个模板像素点连接。判断与每个水平方向控制点或垂直方向控制点连接的模板像素点是否为垂直方向控制点或水平方向控制点,如果否,则将所述模板像素点作为水平方向控制点或垂直方向控制点,否则,将所述模板像素点作为垂直方向控制点或水平方向控制点,并依次与模板像素点进行连接,确定所述模板图像中的边缘线,并保存所述边缘线上每个模板像素点的水平梯度值、垂直梯度值和梯度幅值。
实施例3:
为了进一步提高确定的模板图像中边缘模板像素点的准确性,在上述各实施例的基础上,在本发明实施例中,所述根据每个模板像素点的梯度幅值和预设的第一幅值阈值,对模板像素点进行过滤处理之后,确定模板图像中的边缘模板像素点之前,所述方法还包括:
针对过滤处理后的每个模板像素点,确定包含该模板像素点在内的第二邻域;根据该模板像素点的水平梯度值和垂直梯度值,确定该模板像素点的梯度方向,并确定在所述第二邻域内与所述模板像素点的所述梯度方向对应的两个位置点;根据所述第二邻域内每个模板像素点的梯度幅值,采用双线性插值算法,确定所述两个位置点的梯度幅值;判断该模板像素点的梯度幅值是否分别大于所述两个位置点的梯度幅值,如果是,将该模板像素点保留,如果否,将该模板像素点滤除。
针对模板图像中的每个模板像素点,根据每个模板像素点的梯度幅值和预设的第一幅值阈值,对模板像素点进行过滤处理,虽然过滤处理后的模板像素点的梯度幅值较大,但是过滤处理后的模板像素点并不一定是边缘模板像素点。
为了使确定的边缘模板像素点更加准确,在本发明实施例中,针对过滤处理后的每个模板像素点,根据该模板像素点的水平梯度值和垂直梯度值,可以确定该模板像素点的梯度方向。其中,可以根据下式确定该模板像素点的梯度方向:
式中:Gx(x,y)为坐标为(x,y)的模板像素点的水平梯度值;Gy(x,y)为坐标为(x,y)的模板像素点的垂直梯度值;θ(x,y)为坐标为(x,y)的模板像素点的梯度方向。
针对过滤处理后的每个模板像素点,确定包含该模板像素点在内的第二邻域,根据确定的第二邻域和该模板像素点的梯度方向,可以确定在所述第二邻域内与所述模板像素点的所述梯度方向对应的两个位置点。图4为确定位置点的示意图,如图4所示的黑色圆点为该模板像素点,针对该模板像素点,将以该模板像素点为中心的3×3的邻域范围,确定为包含该模板像素点在内的第二邻域,如图3所示的白色圆点为所述第二邻域内的模板像素点,如图4所述,根据该模板像素点的水平梯度值和垂直梯度值,确定该模板像素点的梯度方向为θ,在所述第二邻域内与所述模板像素点的所述梯度方向对应的两个位置点为图4中的黑色方点。
针对过滤处理后的模板图像,由于所述两个位置点是与该模板像素点的梯度方向对应的,而该模板像素点的梯度方向一般不是整数角度,因此所述两个位置点一般不与模板图像中的模板像素点重合。因此,在本发明实施例中,根据所述第二邻域内过滤处理之前的每个模板像素点的梯度幅值,采用双线性插值算法,确定所述两个位置点的梯度幅值。如图4所示,第二邻域内第一行的位置点根据第一行由左到右第二个和第三个模板像素点的梯度幅值,采用双线性插值算法确定,第二邻域内第三行的位置点根据第三行由左到右第一个和第二个模板像素点的梯度幅值,采用双线性插值算法确定。在本发明实施例中,根据所述第二邻域内每个模板像素点的梯度幅值,采用双线性插值算法,确定所述两个位置点的梯度幅值的过程属于现有技术,在此不再对此过程进行赘述。
在确定所述两个位置点的梯度幅值之后,判断该模板像素点的梯度幅值是否分别大于所述两个位置点的梯度幅值,如果是,将该模板像素点保留,如果否,将该模板像素点滤除。
由于在本发明实施例中,针对过滤处理后的每个模板像素点,确定包含该模板像素点在内的第二邻域,并确定第二邻域内与该模板像素点的梯度方向对应的两个位置点,根据所述第二邻域内每个模板像素点的梯度幅值,采用双线性插值算法,确定所述两个位置点的梯度幅值,如果该模板像素点的梯度幅值分别大于所述两个位置点的梯度幅值,将该模板像素点保留,否则将该模板像素点滤除,使确定的模板图像中的边缘模板像素点更加准确。
实施例4:
为了使确定的模板图像中的边缘线更加准确,在上述各实施例的基础上,在本发明实施例中,所述针对每个水平方向控制点或垂直方向控制点,及与每个水平方向控制点或垂直方向控制点连接的模板像素点是否为垂直方向控制点或水平方向控制点,确定所述模板图像中的边缘线包括:
A、将边缘模板像素点中的任意一个水平方向控制点或垂直方向控制点作为边缘线连接起点;
B、如果所述边缘线连接起点是水平方向控制点,分别确定与该水平方向控制点水平相邻,并位于该水平方向控制点两侧的第一设定数量的模板像素点,在所述水平方向控制点两侧分别识别梯度幅值最大的模板像素点,将该水平方向控制点分别与所述梯度幅值最大的模板像素点连接;如果所述边缘线连接起点是垂直方向控制点,分别确定与该垂直方向控制点垂直相邻,并位于该垂直方向控制点两侧的第二设定数量的模板像素点,在所述垂直方向控制点两侧分别识别梯度幅值最大的模板像素点,将该垂直方向控制点分别与所述梯度幅值最大的模板像素点连接;
C、判断与所述水平方向控制点或垂直方向控制点连接的梯度幅值最大的模板像素点是否为垂直方向控制点或水平方向控制点,如果否,则将所述梯度幅值最大的模板像素点作为水平方向控制点或垂直方向控制点,否则,将所述梯度幅值最大的模板像素点作为垂直方向控制点或水平方向控制点;
D、判断边缘模板像素点中的每个水平方向控制点或垂直方向控制点是否都与其对应的两侧的梯度幅值最大的模板像素点进行了连接,如果否,将边缘模板像素点中未进行连接的水平方向控制点或垂直方向控制点中的任意一个作为边缘线连接起点,进行步骤B,如果是,根据连接后的模板图像中的模板像素点确定边缘线。
确定模板图像中的边缘模板像素点中的水平方向控制点和垂直方向控制点之后,可以将边缘模板像素点中的任意一个水平方向控制点或垂直方向控制点作为边缘线连接起点,自所述边缘线连接起点开始,进行模板图像中模板像素点的连接,得到模板图像中的边缘线。
具体的,如果所述边缘线连接起点是水平方向控制点,分别确定与该水平方向控制点水平相邻,并位于该水平方向控制点两侧的第一设定数量的模板像素点,所述第一设定数量可以为4个、5个、6个等,较佳的,所述第一设定数量为6个,即该水平方向控制点两侧分别为3个模板像素点。图5A为水平方向控制点两侧模板像素点示意图,如图5A所示,该水平方向控制点左侧的3个模板像素点为:与该水平方向控制点相邻且位于该水平方向控制点左侧、左上侧和左下侧的模板像素点,该水平方向控制点右侧的3个模板像素点为:与该水平方向控制点相邻且位于该水平方向控制点右侧、右上侧和右下侧的模板像素点。在所述水平方向控制点两侧分别识别梯度幅值最大的模板像素点,将该水平方向控制点分别与所述梯度幅值最大的模板像素点连接,即分别识别与该水平方向控制点相邻且位于该水平方向控制点左侧、左上侧和左下侧的模板像素点中梯度幅值最大的第一模板像素点,将水平方向控制点与该梯度幅值最大的第一模板像素点连接,以及与该水平方向控制点相邻且位于该水平方向控制点右侧、右上侧和右下侧的模板像素点中梯度幅值最大的第二模板像素点,将该水平方向控制点与该梯度幅值最大的第二模板像素点连接。
具体的,如果所述边缘线连接起点是垂直方向控制点,分别确定与该垂直方向控制点垂直相邻,并位于该垂直方向控制点两侧的第二设定数量的模板像素点,所述第二设定数量可以为4个、5个、6个等,较佳的,所述第二设定数量为6个,即该垂直方向控制点两侧分别为3个模板像素点。图5B为垂直方向控制点两侧模板像素点示意图,如图5B所示,该垂直方向控制点上侧的3个模板像素点为:与该垂直方向控制点相邻且位于该垂直方向控制点上侧、左上侧和右上侧的模板像素点,该垂直方向控制点下侧的3个模板像素点为:与该垂直方向控制点相邻且位于该垂直方向控制点下侧、左下侧和右下侧的模板像素点。在所述垂直方向控制点两侧分别识别梯度幅值最大的模板像素点,将该垂直方向控制点分别与所述梯度幅值最大的模板像素点连接,即分别识别与该垂直方向控制点相邻且位于该垂直方向控制点上侧、左上侧和右上侧的模板像素点中梯度幅值最大的第三模板像素点,将垂直方向控制点与该梯度幅值最大的第三模板像素点连接,以及与该垂直方向控制点相邻且位于该垂直方向控制点下侧、左下侧和右下侧的模板像素点中梯度幅值最大的第四模板像素点,将该垂直方向控制点与该梯度幅值最大的第四模板像素点连接。
在将水平方向控制点或垂直方向控制点分别与其对应的梯度幅值最大的模板像素点连接之后,需要确定所述梯度幅值最大的模板像素点是否为垂直方向控制点或水平方向控制点,并依次进行连接。在本发明实施例中,如果边缘线连接起点是水平方向控制点,判断与所述水平方向控制点连接的梯度幅值最大的模板像素点是否为垂直方向控制点,如果不是垂直方向控制点,则将所述梯度幅值最大的模板像素点作为水平方向控制点,否则将所述梯度幅值最大的模板像素点作为垂直方向控制点。如果边缘线连接起点是垂直方向控制点,判断与所述垂直方向控制点连接的梯度幅值最大的模板像素点是否为水平方向控制点,如果不是水平方向控制点,则将所述梯度幅值最大的模板像素点作为垂直方向控制点,否则将所述梯度幅值最大的模板像素点作为水平方向控制点。
针对一个边缘线连接起点,根据上述公开的方法,根据连接后的模板图像中的模板像素点,可以确定模板图像中包含所述边缘线连接起点在内的边缘线。但是,如果存在未进行连接的水平方向控制点或垂直方向控制点,则说明模板图像中存在未确定出的边缘线。因此,为了使确定模板图像中的边缘线更加准确,针对一个边缘线连接起点进行边缘线连接之后,判断边缘模板像素点中的每个水平方向控制点或垂直方向控制点是否都与其对应的两侧的梯度幅值最大的模板像素点进行了连接,如果否,则说明模板图像中存在未确定出的边缘线,因此将边缘模板像素点中未进行连接的水平方向控制点或垂直方向控制点中的任意一个作为边缘线连接起点,针对所述边缘线连接起点,根据上述公开的方法进行模板像素点的连接。直至边缘模板像素点中的每个水平方向控制点或垂直方向控制点都与其对应的两侧的梯度幅值最大的模板像素点进行了连接,此时根据连接后的模板图像中的模板像素点确定边缘线,使得确定的模板图像的边缘线更准确。
由于在本发明实施例中,针对根据水平方向控制点或垂直方向控制点确定的边缘线连接起点,进行模板像素点的连接,并且边缘模板像素点中的每个水平方向控制点或垂直方向控制点并未都与其对应的两侧的梯度幅值最大的模板像素点进行了连接时,将边缘模板像素点中未进行连接的水平方向控制点或垂直方向控制点中的任意一个作为边缘线连接起点,进行模板像素点的连接,直至边缘模板像素点中的每个水平方向控制点或垂直方向控制点都与其对应的两侧的梯度幅值最大的模板像素点进行了连接。使得确定的模板图像的边缘线更准确。
实施例5:
电子设备在确定所述模板图像中的边缘线时,由于噪声模板像素点的存在,确定出的边缘线中有可能存在由模板图像中的噪声模板像素点确定的噪声边缘线,因此,为了使确定的模板图像中的边缘线更加准确,在上述各实施例的基础上,在本发明实施例中,所述确定所述模板图像中的边缘线之后,并保存所述边缘线上每个模板像素点的水平梯度值、垂直梯度值和梯度幅值之前,所述方法还包括:
针对每条边缘线,判断该边缘线上的模板像素点的数量是否大于预设的数量阈值;
如果是,保留该边缘线;如果否,将该边缘线滤除。
由于模板图像中噪声模板像素点的存在,导致确定的所述模板图像中的边缘线中可能存在噪声边缘线,由于模板图像中噪声模板像素点数量较少,因此,在确定出所述模板图像中的边缘线之后,针对每条边缘线,可以根据该边缘线上的模板像素点的数量判断该边缘线是否为噪声边缘线。
在电子设备中预先保存有预设的数量阈值,针对每条边缘线,判断该边缘线上的模板像素点的数量是否大于预设的数量阈值,如果是,则说明该边缘线是根据模板图像中的边缘模板像素点确定的边缘线,保留该边缘线;如果否,则说明该边缘线是由模板图像中的噪声模板像素点确定的边缘线,为噪声边缘线,将该边缘线滤除。
由于在本发明实施例中,确定所述模板图像中的边缘线之后,针对每条边缘线,判断该边缘线上的模板像素点的数量是否大于预设的数量阈值;如果是,保留该边缘线;如果否,将该边缘线滤除,避免了噪声模板像素点对确定边缘线的干扰,使得确定的模板图像中的边缘线更准确。
实施例6:
在确定待匹配图像中的目标图像位置信息时,模板图像是没有形变的,而由于获取待匹配图像的场景的不同,待匹配图像中的目标图像有可能发生了形变,这样就可能无法确定出发生形变的目标图像位置信息。为了使确定的目标图像位置信息更准确,在上述各实施例的基础上,在本发明实施例中,所述根据该像素点的水平梯度值和垂直梯度值,确定该像素点的梯度幅值包括:
根据该像素点的水平梯度值和垂直梯度值,确定该像素点的梯度幅值和方向;
所述根据该像素点的水平梯度值和垂直梯度值,确定该像素点的梯度幅值之后,根据预先保存的匹配参数,确定模板图像在待匹配图像中的每个匹配区域之前,所述方法还包括:
根据每个像素点的梯度幅值和预设的第二幅值阈值,确定待匹配图像中的边缘像素点;
针对每个边缘像素点,确定包含该边缘像素点在内的且与该边缘像素点的梯度方向对应的第三邻域,将所述第三邻域内与该边缘像素点相邻的两个像素点作为第一目标像素点,将所述第三邻域内不与该边缘像素点相邻的像素点作为第二目标像素点;依次针对每个第二目标像素点,根据更新了梯度幅值的像素点的梯度幅值,依次对每个第二目标像素点的梯度幅值进行更新。
由于在确定目标图像时,是根据每个匹配区域的分值,确定目标区域,进而在目标区域确定目标图像。而在确定每个匹配区域的分值时,是根据该匹配区域内每个像素点的水平梯度值、垂直梯度值和梯度幅值,以及预先保存的模板图像中每条边缘线上的每个模板像素点的水平梯度值、垂直梯度值和梯度幅值确定的,因此,为了避免待匹配图像中的目标图像发生了形变,可能无法确定出发生形变的目标图像的问题,可以根据待匹配图像中的每个像素点的梯度幅值和预设的第二幅值阈值,确定待匹配图像中的边缘像素点,针对每个边缘像素点,根据该边缘像素点的梯度幅值对设定邻域内像素点的梯度幅值进行更新,这样即使目标图像发生了形变,由于每个边缘像素点的设定邻域内像素点的梯度幅值是根据边缘像素点的梯度幅值进行更新的,因此,即使目标图像发生形变,也能确定出目标图像所在的目标区域。
在本发明实施例中,针对待匹配图像中的每个像素点,可以根据该像素点的水平梯度值和垂直梯度值,确定该像素点的梯度幅值和梯度方向,其中,确定待匹配图像中每个像素点的梯度方向的过程与确定模板图像中每个像素点的梯度方向的过程相同,在此不再对此过程进行赘述。
针对待匹配图像中的每个像素点,根据该像素点的水平梯度值和垂直梯度值,确定该像素点的梯度幅值之后,根据每个像素点的梯度幅值和预设的第二幅值阈值,可以确定待匹配图像中的边缘像素点,即将梯度幅值大于预设的第二幅值阈值的像素点确定为边缘像素点。其中,预设的第一幅值阈值和预设的第二幅值阈值可以相同,也可以不同。
另外,为了使确定的边缘像素点更准确,也可以采用与确定模板图像中的边缘模板像素点相同的方法确定待匹配图像中的边缘像素点。即根据待匹配图像中每个像素点的梯度幅值和预设的第二幅值阈值,对像素点进行过滤处理,针对过滤处理后的每个像素点,确定包含该像素点在内的第三邻域;确定在所述第三邻域内与所述像素点的梯度方向对应的两个位置点;根据所述第三邻域内每个像素点的梯度幅值,采用双线性插值算法,确定所述两个位置点的梯度幅值;判断该像素点的梯度幅值是否分别大于所述两个位置点的梯度幅值,如果是,将该像素点保留,如果否,将该像素点滤除,将保留的像素点确定为边缘像素点。
确定待匹配图像中的边缘点之后,针对每个边缘像素点,可以确定包含该边缘像素点在内的且与该边缘像素点的梯度方向对应的第三邻域,即将包含该边缘像素点在内的,与该边缘像素点的梯度方向对应的,包含第四设定数量像素点的邻域范围,确定为第三邻域,其中,第四设定数量可以为5、6、7等。将所述第三邻域内与该边缘像素点相邻的两个像素点作为第一目标像素点,将所述第三邻域内不与该边缘像素点相邻的像素点作为第二目标像素点。根据该边缘像素点的梯度幅值,可以对所述第一目标像素点以及第二目标像素点的梯度幅值进行更新,依次针对每个第二目标像素点,根据更新了梯度幅值的像素点的梯度幅值,依次对每个第二目标像素点的梯度幅值进行更新。
具体的,可以根据该边缘像素点和与所述第一目标像素点相邻的其它边缘像素点的梯度幅值,以及该边缘像素点的第一权重和与所述第一目标像素点相邻的其它边缘像素点的第二权重,对所述第一目标像素点的梯度幅值进行更新;根据更新了梯度幅值的像素点的梯度幅值,以及更新了梯度幅值的像素点的第三权重,依次对每个第二目标像素点的梯度幅值进行更新。
图6为确定所述第一目标像素点以及第二目标像素点的梯度幅值的示意图,如图6所示的黑色圆点为该边缘像素点,例如确定的该边缘像素点的梯度方向为90度,则针对该边缘像素点确定的第三邻域为包含该边缘像素点在内且位于该边缘像素点上侧有两个像素点,位于该边缘像素点下侧有两个像素点的邻域范围。例如所述第三邻域内的像素点由上到下依次为像素点1、像素点2、该边缘像素点3、像素点4和像素点5,则像素点2和像素点4为第一目标像素点,像素点1和像素点5为第二目标像素点。在对第一目标像素点的梯度幅值进行更新时,可以先确定与每个第一目标像素点相邻的边缘像素点,如图6所述,与像素点2相邻的边缘像素点除边缘像素点3之外,还包括边缘像素点6和边缘像素点7。与像素点4相邻的边缘像素点除边缘像素点3之外,还包括边边缘像素点7和边缘像素点8。边缘像素点6、边缘像素点7和边缘像素点8如图4中的黑色方点。根据该边缘像素点3的梯度幅值和第一权重,以及边缘像素点6和边缘像素点7的梯度幅值和第二权重,对像素点2的梯度幅值进行更新;根据该边缘像素点3的梯度幅值和第一权重,以及边缘像素点7和边缘像素点8的梯度幅值和第二权重,对像素点4的梯度幅值进行更新。根据更新了梯度幅值的像素点2的梯度幅值和像素点2的第三权重,对像素点1的梯度幅值进行更新;根据更新了梯度幅值的像素点4的梯度幅值和像素点4的第三权重,对像素点5的梯度幅值进行更新。
例如,边缘像素点3的梯度幅值为140,第一权重为0.8;边缘像素点6的梯度幅值为144,边缘像素点7的梯度幅值为138,第二权重为0.1,则更新后的像素点2的梯度幅值为140×0.8+144×0.1+138×0.1=140.2。边缘像素点8的梯度幅值为148,则更新后的像素点4的梯度幅值为140×0.8+148×0.1+138×0.1=140.6。第三权重为0.8,则更新后的像素点1的梯度幅值为140.2×0.8=112.16。更新后的像素点5的梯度幅值为140.6×0.8=112.48。
针对每个边缘像素点,对该边缘像素点对应的第三邻域内的像素点的梯度幅值更新,将该边缘像素点的梯度方向作为所述第三邻域内每个像素点的梯度方向,针对所述第三邻域内的每个像素点,根据该像素点更新后的梯度幅值以及梯度方向,可以确定该像素点的水平梯度值和垂直梯度值,根据所述确定的该像素点的水平梯度值和垂直梯度值对该像素点的水平梯度值和垂直梯度值进行更新。对第三邻域内的像素点的水平梯度值、垂直梯度值和梯度幅值进行更新之后,进行根据预先保存的匹配参数,确定模板图像在待匹配图像中的每个匹配区域的步骤。
由于在本发明实施例中,根据每个像素点的梯度幅值和预设的第二幅值阈值,确定待匹配图像中的边缘像素点;针对每个边缘像素点,确定包含该边缘像素点在内的且与该边缘像素点的梯度方向对应的第三邻域,并对第三邻域内每个像素点的梯度幅值进行更新,因此即使目标图像发生了形变,由于每个边缘像素点的设定邻域内像素点的梯度幅值是根据边缘像素点的梯度幅值进行更新的,因此,也能确定出目标图像位置信息。
实施例7:
为了提高确定目标图像位置信息的效率,并且能够保证确定的目标图像位置信息准确,在上述各实施例的基础上,在本发明实施例中,所述针对待匹配图像中的每个像素点,确定该像素点的水平梯度值和垂直梯度值之前,所述方法还包括:
获取待匹配图像的第一金字塔图像;
对所述第一金字塔图像中的每一层待匹配图像进行后续处理。
所述针对模板图像中的每个模板像素点,确定该模板像素点的水平梯度值和垂直梯度值之前,所述方法还包括:
获取模板图像的第二金字塔图像;
对所述第二金字塔图像中的每一层模板图像进行后续处理。
由于确定待匹配图像中的目标图像位置信息时,根据预先保存的匹配参数,确定模板图像在待匹配图像中的每个匹配区域,所述待匹配图像中存在大量的匹配区域,直接在待匹配图像中确定目标图像效率较低,因此可以通过获取待匹配图像的第一金字塔图像,针对第一金字塔图像中尺寸较小的待匹配图像,可以确定出所述待匹配图像中的每个匹配区域,可以确定每个匹配区域的分值,根据每个匹配区域的分值和分值阈值,可以确定候选区域,即将分值大于分值阈值的匹配区域作为候选区域,根据候选区域可以确定所述待匹配图像中的搜索范围,使较为集中的候选区域位于一个较小的搜索范围内,并将确定的搜索范围映射到下一级第一金字塔图像中较大的待匹配图像,在所述较大的待匹配图像的搜索范围内进行目标图像的确定。这样使得确定目标图像位置信息的效率大大提高。
电子设备获取待匹配图像的第一金字塔图像,为了使得在第一金字塔图像中的每一层待匹配图像中都能够确定出候选区域,进而确定出搜索范围,需要获取模板图像的第二金字塔图像。其中获取第一金字塔图像的缩放比例和获取第二金字塔图像的缩放比例相同,并且第一金字塔图像中的每一层待匹配图像与第二金字塔图像中的每一层模板图像存在对应关系。
电子设备获取待匹配图像的第一金字塔图像和模板图像的第二金字塔图像,在获取第一金字塔图像和第二金字塔图像时,可以将待匹配图像和模板图像按比例放大或缩小。在本发明实施例中,为了提高确定目标图像位置信息的效率,将待匹配图像和模板图像按比例缩小,例如,针对待匹配图像和模板图像,分别可以按0.5的比例依次缩小两次,得到三层的第一金字塔图像和第二金字塔图像,并且,针对每一层在确定目标图像位置信息时,第一金字塔图像的第一层与第二金字塔图像的第一层对应,第一金字塔图像的第二层与第二金字塔图像的第二层对应,第一金字塔图像的第三层与第二金字塔图像的第三层对应。
根据第一金字塔图像的第一层待匹配图像与第二金字塔图像的第一层模板图像,可以确定出第一层待匹配图像中的候选区域,根据候选区域可以确定第一层待匹配图像中的搜索范围;将所述搜索范围映射到第二层待匹配图像,并根据第一金字塔图像的第二层待匹配图像与第二金字塔图像的第二层模板图像,在第二层待匹配图像的所述搜索范围内确定候选区域,根据候选区域可以确定第二层待匹配图像中的搜索范围;将所述搜索范围映射到第三层待匹配图像,根据第一金字塔图像的第三层待匹配图像与第二金字塔图像的第三层模板图像,在第三层待匹配图像的所述搜索范围内确定出目标区域,进而确定所述目标区域的透视矩阵,根据所述透视矩阵对模板图像的每条边缘线进行矫正,并根据矫正后的所述模板图像中的每条边缘线,确定目标区域中的目标图像位置信息。
由于在本发明实施例中,通过获取待匹配图像的第一金字塔图像,获取模板图像的第二金字塔图像,可以在第一金字塔图像中的较小的待匹配图像中确定出搜索范围,并映射到下一级第一金字塔图像中较大的待匹配图像,在所述较大的待匹配图像的搜索范围内进行目标图像位置信息的确定。提高了确定目标图像位置信息的效率,同时能够保证确定的目标图像准确。
图7为本发明实施例提供的确定目标图像位置信息的装置结构示意图,所述装置包括:
第一确定模块71,用于针对待匹配图像中的每个像素点,确定该像素点的水平梯度值和垂直梯度值,并根据该像素点的水平梯度值和垂直梯度值,确定该像素点的梯度幅值;
第二确定模块72,用于根据预先保存的匹配参数,确定模板图像在待匹配图像中的每个匹配区域,针对所述每个匹配区域,根据待匹配图像中该匹配区域内每个像素点的水平梯度值、垂直梯度值和梯度幅值,以及预先保存的模板图像中每条边缘线上的每个模板像素点的水平梯度值、垂直梯度值和梯度幅值,确定该匹配区域的分值;
第三确定模块73,用于根据每个匹配区域的分值,确定目标区域,针对所述每个模板像素点,根据预先保存的该模板像素点的梯度方向,确定与该模板像素点的梯度方向对应的第一邻域,确定待匹配图像的目标区域中位于所述第一邻域内的像素点;
第四确定模块74,用于根据模板图像每条边缘线上的模板像素点以及确定的待匹配图像的目标区域中位于所述第一邻域内的像素点,采用预设的算法,确定所述目标区域的透视矩阵;
第五确定模块75,用于根据所述透视矩阵对模板图像的每条边缘线进行矫正,并根据矫正后的所述模板图像中的每条边缘线,确定目标区域中的目标图像位置信息。
所述装置还包括:
第六确定模块76,用于针对模板图像中的每个模板像素点,确定该模板像素点的水平梯度值和垂直梯度值,并根据该模板像素点的水平梯度值和垂直梯度值,确定该模板像素点的梯度幅值;
第七确定模块77,用于根据每个模板像素点的梯度幅值和预设的第一幅值阈值,对模板像素点进行过滤处理,确定模板图像中的边缘模板像素点;
第八确定模块78,用于针对每个边缘模板像素点,根据该边缘模板像素点及其水平方向相邻的两个模板像素点的梯度幅值的第一差值,和该边缘模板像素点及其垂直方向相邻的两个模板像素点的梯度幅值的第二差值,确定该边缘模板像素点是否为垂直方向控制点或水平方向控制点;
确定保存模块79,用于针对每个水平方向控制点或垂直方向控制点,及与每个水平方向控制点或垂直方向控制点连接的模板像素点是否为垂直方向控制点或水平方向控制点,确定所述模板图像中的边缘线,并保存所述边缘线上每个模板像素点的水平梯度值、垂直梯度值和梯度幅值。
所述装置还包括:
第一滤除模块710,用于针对过滤处理后的每个模板像素点,确定包含该模板像素点在内的第二邻域;根据该模板像素点的水平梯度值和垂直梯度值,确定该模板像素点的梯度方向,并确定在所述第二邻域内与所述模板像素点的所述梯度方向对应的两个位置点;根据所述第二邻域内每个模板像素点的梯度幅值,采用双线性插值算法,确定所述两个位置点的梯度幅值;判断该模板像素点的梯度幅值是否分别大于所述两个位置点的梯度幅值,如果是,将该模板像素点保留,如果否,将该模板像素点滤除。
所述确定保存模块79包括:
确定单元791,用于将边缘模板像素点中的任意一个水平方向控制点或垂直方向控制点作为边缘线连接起点;
连接单元792,用于如果所述边缘线连接起点是水平方向控制点,分别确定与该水平方向控制点水平相邻,并位于该水平方向控制点两侧的第一设定数量的模板像素点,在所述水平方向控制点两侧分别识别梯度幅值最大的模板像素点,将该水平方向控制点分别与所述梯度幅值最大的模板像素点连接;如果所述边缘线连接起点是垂直方向控制点,分别确定与该垂直方向控制点垂直相邻,并位于该垂直方向控制点两侧的第二设定数量的模板像素点,在所述垂直方向控制点两侧分别识别梯度幅值最大的模板像素点,将该垂直方向控制点分别与所述梯度幅值最大的模板像素点连接;
第一判断确定单元793,用于判断与所述水平方向控制点或垂直方向控制点连接的梯度幅值最大的模板像素点是否为垂直方向控制点或水平方向控制点,如果否,则将所述梯度幅值最大的模板像素点作为水平方向控制点或垂直方向控制点,否则,将所述梯度幅值最大的模板像素点作为垂直方向控制点或水平方向控制点;
第二判断确定单元794,用于判断边缘模板像素点中的每个水平方向控制点或垂直方向控制点是否都与其对应的两侧的梯度幅值最大的模板像素点进行了连接,如果否,将边缘模板像素点中未进行连接的水平方向控制点或垂直方向控制点中的任意一个作为边缘线连接起点,触发连接单元792,如果是,根据连接后的模板图像中的模板像素点确定边缘线。
所述装置还包括:
第二滤除模块711,用于针对每条边缘线,判断该边缘线上的模板像素点的数量是否大于预设的数量阈值;如果是,保留该边缘线;如果否,将该边缘线滤除。
所述第一确定模块71,具体用于根据该像素点的水平梯度值和垂直梯度值,确定该像素点的梯度幅值和梯度方向;
所述装置还包括:
确定更新模块712,用于根据每个像素点的梯度幅值和预设的第二幅值阈值,确定待匹配图像中的边缘像素点;针对每个边缘像素点,确定包含该边缘像素点在内的且与该边缘像素点的梯度方向对应的第三邻域,将所述第三邻域内与该边缘像素点相邻的两个像素点作为第一目标像素点,将所述第三邻域内不与该边缘像素点相邻的像素点作为第二目标像素点;依次针对每个第二目标像素点,根据更新了梯度幅值的像素点的梯度幅值,依次对每个第二目标像素点的梯度幅值进行更新。
所述装置还包括:
第一获取模块713,用于获取待匹配图像的第一金字塔图像;针对所述第一金字塔图像中的每一层待匹配图像,触发第一确定模块71。
所述装置还包括:
第二获取模块714,用于获取模板图像的第二金字塔图像;针对所述第二金字塔图像中的每一层模板图像,触发第六确定模块76。
本发明实施例提供了一种确定目标图像位置信息的方法及装置,所述方法包括:针对待匹配图像中的每个像素点,确定该像素点的水平梯度值和垂直梯度值,并根据该像素点的水平梯度值和垂直梯度值,确定该像素点的梯度幅值;根据预先保存的匹配参数,确定模板图像在待匹配图像中的每个匹配区域,针对所述每个匹配区域,根据待匹配图像中该匹配区域内每个像素点的水平梯度值、垂直梯度值和梯度幅值,以及预先保存的模板图像中每条边缘线上的每个模板像素点的水平梯度值、垂直梯度值和梯度幅值,确定该匹配区域的分值;根据每个匹配区域的分值,确定目标区域,针对所述每个模板像素点,根据预先保存的该模板像素点的梯度方向,确定与该模板像素点的梯度方向对应的第一邻域,确定待匹配图像的目标区域中位于所述第一邻域内的像素点;根据模板图像每条边缘线上的模板像素点以及确定的待匹配图像的目标区域中位于所述第一邻域内的像素点,采用预设的算法,确定所述目标区域的透视矩阵;根据所述透视矩阵对模板图像的每条边缘线进行矫正,并根据矫正后的所述模板图像中的每条边缘线,确定目标区域中的目标图像位置信息。由于在本发明实施例中,确定了模板图像在待匹配图像中的每个匹配区域后,根据每个像素点的水平梯度值、垂直梯度值和梯度幅值,确定每个匹配区域的分值,进而确定目标区域,根据模板图像每条边缘线上的模板像素点以及确定的待匹配图像的目标区域中位于确定的第一邻域内的像素点,采用预设的算法,确定所述目标区域的透视矩阵;根据所述透视矩阵对模板图像的每条边缘线进行矫正,并根据矫正后的所述模板图像中的每条边缘线,确定目标区域中的目标图像位置信息,而不需要提取待匹配图像中的特征点,有效避免了复杂场景的影响,从而提高了发生透视形变时目标图像位置信息的确定准确率。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (16)
1.一种确定目标图像位置信息的方法,其特征在于,所述方法包括:
针对待匹配图像中的每个像素点,确定该像素点的水平梯度值和垂直梯度值,并根据该像素点的水平梯度值和垂直梯度值,确定该像素点的梯度幅值;
根据预先保存的匹配参数,确定模板图像在待匹配图像中的每个匹配区域,针对所述每个匹配区域,根据待匹配图像中该匹配区域内每个像素点的水平梯度值、垂直梯度值和梯度幅值,以及预先保存的模板图像中每条边缘线上的每个模板像素点的水平梯度值、垂直梯度值和梯度幅值,确定该匹配区域的分值;
根据每个匹配区域的分值,确定目标区域,针对所述每个模板像素点,根据预先保存的该模板像素点的梯度方向,确定与该模板像素点的梯度方向对应的第一邻域,确定待匹配图像的目标区域中位于所述第一邻域内的像素点;
根据模板图像每条边缘线上的模板像素点以及确定的待匹配图像的目标区域中位于所述第一邻域内的像素点,采用预设的算法,确定所述目标区域的透视矩阵;
根据所述透视矩阵对模板图像的每条边缘线进行矫正,并根据矫正后的所述模板图像中的每条边缘线,确定目标区域中的目标图像位置信息。
2.如权利要求1所述的方法,其特征在于,所述预先保存模板图像中每条边缘线上的每个模板像素点的水平梯度值、垂直梯度值和梯度幅值的过程包括:
针对模板图像中的每个模板像素点,确定该模板像素点的水平梯度值和垂直梯度值,并根据该模板像素点的水平梯度值和垂直梯度值,确定该模板像素点的梯度幅值;
根据每个模板像素点的梯度幅值和预设的第一幅值阈值,对模板像素点进行过滤处理,确定模板图像中的边缘模板像素点;
针对每个边缘模板像素点,根据该边缘模板像素点及其水平方向相邻的两个模板像素点的梯度幅值的第一差值,和该边缘模板像素点及其垂直方向相邻的两个模板像素点的梯度幅值的第二差值,确定该边缘模板像素点是否为垂直方向控制点或水平方向控制点;
针对每个水平方向控制点或垂直方向控制点,及与每个水平方向控制点或垂直方向控制点连接的模板像素点是否为垂直方向控制点或水平方向控制点,确定所述模板图像中的边缘线,并保存所述边缘线上每个模板像素点的水平梯度值、垂直梯度值和梯度幅值。
3.如权利要求2所述的方法,其特征在于,所述根据每个模板像素点的梯度幅值和预设的第一幅值阈值,对模板像素点进行过滤处理之后,确定模板图像中的边缘模板像素点之前,所述方法还包括:
针对过滤处理后的每个模板像素点,确定包含该模板像素点在内的第二邻域;所述第二邻域为以该模板像素点为中心的设定的邻域范围;根据该模板像素点的水平梯度值和垂直梯度值,确定该模板像素点的梯度方向,并确定在所述第二邻域内与所述模板像素点的所述梯度方向对应的两个位置点;根据所述第二邻域内每个模板像素点的梯度幅值,采用双线性插值算法,确定所述两个位置点的梯度幅值;判断该模板像素点的梯度幅值是否分别大于所述两个位置点的梯度幅值,如果是,将该模板像素点保留,如果否,将该模板像素点滤除。
4.如权利要求2所述的方法,其特征在于,所述针对每个水平方向控制点或垂直方向控制点,及与每个水平方向控制点或垂直方向控制点连接的模板像素点是否为垂直方向控制点或水平方向控制点,确定所述模板图像中的边缘线包括:
A、将边缘模板像素点中的任意一个水平方向控制点或垂直方向控制点作为边缘线连接起点;
B、如果所述边缘线连接起点是水平方向控制点,分别确定与该水平方向控制点水平相邻,并位于该水平方向控制点两侧的第一设定数量的模板像素点,在所述水平方向控制点两侧分别识别梯度幅值最大的模板像素点,将该水平方向控制点分别与所述梯度幅值最大的模板像素点连接;如果所述边缘线连接起点是垂直方向控制点,分别确定与该垂直方向控制点垂直相邻,并位于该垂直方向控制点两侧的第二设定数量的模板像素点,在所述垂直方向控制点两侧分别识别梯度幅值最大的模板像素点,将该垂直方向控制点分别与所述梯度幅值最大的模板像素点连接;
C、判断与所述水平方向控制点或垂直方向控制点连接的梯度幅值最大的模板像素点是否为垂直方向控制点或水平方向控制点,如果否,则将所述梯度幅值最大的模板像素点作为水平方向控制点或垂直方向控制点,否则,将所述梯度幅值最大的模板像素点作为垂直方向控制点或水平方向控制点;
D、判断边缘模板像素点中的每个水平方向控制点或垂直方向控制点是否都与其对应的两侧的梯度幅值最大的模板像素点进行了连接,如果否,将边缘模板像素点中未进行连接的水平方向控制点或垂直方向控制点中的任意一个作为边缘线连接起点,进行步骤B,如果是,根据连接后的模板图像中的模板像素点确定边缘线。
5.如权利要求2所述的方法,其特征在于,所述确定所述模板图像中的边缘线之后,并保存所述边缘线上每个模板像素点的水平梯度值、垂直梯度值和梯度幅值之前,所述方法还包括:
针对每条边缘线,判断该边缘线上的模板像素点的数量是否大于预设的数量阈值;
如果是,保留该边缘线;如果否,将该边缘线滤除。
6.如权利要求1所述的方法,其特征在于,所述根据该像素点的水平梯度值和垂直梯度值,确定该像素点的梯度幅值包括:
根据该像素点的水平梯度值和垂直梯度值,确定该像素点的梯度幅值和梯度方向;
所述根据该像素点的水平梯度值和垂直梯度值,确定该像素点的梯度幅值之后,根据预先保存的匹配参数,确定模板图像在待匹配图像中的每个匹配区域之前,所述方法还包括:
根据每个像素点的梯度幅值和预设的第二幅值阈值,确定待匹配图像中的边缘像素点;
针对每个边缘像素点,确定包含该边缘像素点在内的且与该边缘像素点的梯度方向对应的第三邻域,将所述第三邻域内与该边缘像素点相邻的两个像素点作为第一目标像素点,将所述第三邻域内不与该边缘像素点相邻的像素点作为第二目标像素点;依次针对每个第二目标像素点,根据更新了梯度幅值的像素点的梯度幅值,依次对每个第二目标像素点的梯度幅值进行更新。
7.如权利要求1所述的方法,其特征在于,所述针对待匹配图像中的每个像素点,确定该像素点的水平梯度值和垂直梯度值之前,所述方法还包括:
获取待匹配图像的第一金字塔图像;
对所述第一金字塔图像中的每一层待匹配图像进行后续处理。
8.如权利要求2所述的方法,其特征在于,所述针对模板图像中的每个模板像素点,确定该模板像素点的水平梯度值和垂直梯度值之前,所述方法还包括:
获取模板图像的第二金字塔图像;
对所述第二金字塔图像中的每一层模板图像进行后续处理。
9.一种确定目标图像位置信息的装置,其特征在于,所述装置包括:
第一确定模块,用于针对待匹配图像中的每个像素点,确定该像素点的水平梯度值和垂直梯度值,并根据该像素点的水平梯度值和垂直梯度值,确定该像素点的梯度幅值;
第二确定模块,用于根据预先保存的匹配参数,确定模板图像在待匹配图像中的每个匹配区域,针对所述每个匹配区域,根据待匹配图像中该匹配区域内每个像素点的水平梯度值、垂直梯度值和梯度幅值,以及预先保存的模板图像中每条边缘线上的每个模板像素点的水平梯度值、垂直梯度值和梯度幅值,确定该匹配区域的分值;
第三确定模块,用于根据每个匹配区域的分值,确定目标区域,针对所述每个模板像素点,根据预先保存的该模板像素点的梯度方向,确定与该模板像素点的梯度方向对应的第一邻域,确定待匹配图像的目标区域中位于所述第一邻域内的像素点;
第四确定模块,用于根据模板图像每条边缘线上的模板像素点以及确定的待匹配图像的目标区域中位于所述第一邻域内的像素点,采用预设的算法,确定所述目标区域的透视矩阵;
第五确定模块,用于根据所述透视矩阵对模板图像的每条边缘线进行矫正,并根据矫正后的所述模板图像中的每条边缘线,确定目标区域中的目标图像位置信息。
10.如权利要求9所述的装置,其特征在于,所述装置还包括:
第六确定模块,用于针对模板图像中的每个模板像素点,确定该模板像素点的水平梯度值和垂直梯度值,并根据该模板像素点的水平梯度值和垂直梯度值,确定该模板像素点的梯度幅值;
第七确定模块,用于根据每个模板像素点的梯度幅值和预设的第一幅值阈值,对模板像素点进行过滤处理,确定模板图像中的边缘模板像素点;
第八确定模块,用于针对每个边缘模板像素点,根据该边缘模板像素点及其水平方向相邻的两个模板像素点的梯度幅值的第一差值,和该边缘模板像素点及其垂直方向相邻的两个模板像素点的梯度幅值的第二差值,确定该边缘模板像素点是否为垂直方向控制点或水平方向控制点;
确定保存模块,用于针对每个水平方向控制点或垂直方向控制点,及与每个水平方向控制点或垂直方向控制点连接的模板像素点是否为垂直方向控制点或水平方向控制点,确定所述模板图像中的边缘线,并保存所述边缘线上每个模板像素点的水平梯度值、垂直梯度值和梯度幅值。
11.如权利要求10所述的装置,其特征在于,所述装置还包括:
第一滤除模块,用于针对过滤处理后的每个模板像素点,确定包含该模板像素点在内的第二邻域;所述第二邻域为以该模板像素点为中心的设定的邻域范围;根据该模板像素点的水平梯度值和垂直梯度值,确定该模板像素点的梯度方向,并确定在所述第二邻域内与所述模板像素点的所述梯度方向对应的两个位置点;根据所述第二邻域内每个模板像素点的梯度幅值,采用双线性插值算法,确定所述两个位置点的梯度幅值;判断该模板像素点的梯度幅值是否分别大于所述两个位置点的梯度幅值,如果是,将该模板像素点保留,如果否,将该模板像素点滤除。
12.如权利要求10所述的装置,其特征在于,所述确定保存模块包括:
确定单元,用于将边缘模板像素点中的任意一个水平方向控制点或垂直方向控制点作为边缘线连接起点;
连接单元,用于如果所述边缘线连接起点是水平方向控制点,分别确定与该水平方向控制点水平相邻,并位于该水平方向控制点两侧的第一设定数量的模板像素点,在所述水平方向控制点两侧分别识别梯度幅值最大的模板像素点,将该水平方向控制点分别与所述梯度幅值最大的模板像素点连接;如果所述边缘线连接起点是垂直方向控制点,分别确定与该垂直方向控制点垂直相邻,并位于该垂直方向控制点两侧的第二设定数量的模板像素点,在所述垂直方向控制点两侧分别识别梯度幅值最大的模板像素点,将该垂直方向控制点分别与所述梯度幅值最大的模板像素点连接;
第一判断确定单元,用于判断与所述水平方向控制点或垂直方向控制点连接的梯度幅值最大的模板像素点是否为垂直方向控制点或水平方向控制点,如果否,则将所述梯度幅值最大的模板像素点作为水平方向控制点或垂直方向控制点,否则,将所述梯度幅值最大的模板像素点作为垂直方向控制点或水平方向控制点;
第二判断确定单元,用于判断边缘模板像素点中的每个水平方向控制点或垂直方向控制点是否都与其对应的两侧的梯度幅值最大的模板像素点进行了连接,如果否,将边缘模板像素点中未进行连接的水平方向控制点或垂直方向控制点中的任意一个作为边缘线连接起点,触发连接单元,如果是,根据连接后的模板图像中的模板像素点确定边缘线。
13.如权利要求10所述的装置,其特征在于,所述装置还包括:
第二滤除模块,用于针对每条边缘线,判断该边缘线上的模板像素点的数量是否大于预设的数量阈值;如果是,保留该边缘线;如果否,将该边缘线滤除。
14.如权利要求9所述的装置,其特征在于,所述第一确定模块,具体用于根据该像素点的水平梯度值和垂直梯度值,确定该像素点的梯度幅值和梯度方向;
所述装置还包括:
确定更新模块,用于根据每个像素点的梯度幅值和预设的第二幅值阈值,确定待匹配图像中的边缘像素点;针对每个边缘像素点,确定包含该边缘像素点在内的且与该边缘像素点的梯度方向对应的第三邻域,将所述第三邻域内与该边缘像素点相邻的两个像素点作为第一目标像素点,将所述第三邻域内不与该边缘像素点相邻的像素点作为第二目标像素点;依次针对每个第二目标像素点,根据更新了梯度幅值的像素点的梯度幅值,依次对每个第二目标像素点的梯度幅值进行更新。
15.如权利要求9所述的装置,其特征在于,所述装置还包括:
第一获取模块,用于获取待匹配图像的第一金字塔图像;针对所述第一金字塔图像中的每一层待匹配图像,触发第一确定模块。
16.如权利要求10所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于获取模板图像的第二金字塔图像;针对所述第二金字塔图像中的每一层模板图像,触发第六确定模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710632873.8A CN107452028B (zh) | 2017-07-28 | 2017-07-28 | 一种确定目标图像位置信息的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710632873.8A CN107452028B (zh) | 2017-07-28 | 2017-07-28 | 一种确定目标图像位置信息的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107452028A CN107452028A (zh) | 2017-12-08 |
CN107452028B true CN107452028B (zh) | 2020-05-26 |
Family
ID=60490517
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710632873.8A Active CN107452028B (zh) | 2017-07-28 | 2017-07-28 | 一种确定目标图像位置信息的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107452028B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108712616B (zh) * | 2018-08-14 | 2020-06-09 | 浙江大丰实业股份有限公司 | 侧光吊笼侧光检测机构 |
CN111178366B (zh) * | 2018-11-12 | 2023-07-25 | 杭州萤石软件有限公司 | 一种移动机器人的定位方法和移动机器人 |
CN110245674B (zh) * | 2018-11-23 | 2023-09-15 | 浙江大华技术股份有限公司 | 模板匹配方法、装置、设备及计算机存储介质 |
CN113228035A (zh) | 2018-12-26 | 2021-08-06 | 浙江大华技术股份有限公司 | 用于对象识别的系统和方法 |
CN112164032B (zh) * | 2020-09-14 | 2023-12-29 | 浙江华睿科技股份有限公司 | 一种点胶方法、装置、电子设备及存储介质 |
CN112862848B (zh) * | 2021-03-18 | 2023-11-21 | 北京小米移动软件有限公司 | 图像处理方法、装置及存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101950426B (zh) * | 2010-09-29 | 2014-01-01 | 北京航空航天大学 | 一种多摄像机场景下车辆接力跟踪方法 |
CN103020941A (zh) * | 2012-12-28 | 2013-04-03 | 昆山市工业技术研究院有限责任公司 | 基于全景拼接的旋转摄像头背景建立法及运动物体检测法 |
CN104134209B (zh) * | 2014-07-18 | 2018-04-10 | 北京国电富通科技发展有限责任公司 | 一种视觉导航中的特征提取与匹配方法及系统 |
US10063840B2 (en) * | 2014-12-31 | 2018-08-28 | Intel Corporation | Method and system of sub pixel accuracy 3D measurement using multiple images |
KR101714896B1 (ko) * | 2015-09-09 | 2017-03-23 | 중앙대학교 산학협력단 | 지능형 운전자 보조 시스템을 위한 광량 변화에 강건한 스테레오 정합 장치 및 방법 |
CN105261040B (zh) * | 2015-10-19 | 2018-01-05 | 北京邮电大学 | 一种多目标跟踪方法及装置 |
CN105335973B (zh) * | 2015-10-20 | 2018-08-03 | 上海交通大学 | 运用于带钢加工生产线的视觉处理方法 |
CN106355577B (zh) * | 2016-09-08 | 2019-02-12 | 武汉科技大学 | 基于特征状态与全局一致性的快速图像匹配方法及系统 |
CN106384363B (zh) * | 2016-09-13 | 2019-09-06 | 天津大学 | 一种快速自适应权重立体匹配方法 |
CN106845484B (zh) * | 2017-02-28 | 2019-09-17 | 浙江华睿科技有限公司 | 一种一维码区域的定位方法及装置 |
-
2017
- 2017-07-28 CN CN201710632873.8A patent/CN107452028B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107452028A (zh) | 2017-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107452028B (zh) | 一种确定目标图像位置信息的方法及装置 | |
CN108198141B (zh) | 实现瘦脸特效的图像处理方法、装置及计算设备 | |
CN110163912B (zh) | 二维码位姿标定方法、装置及系统 | |
CN106296578B (zh) | 一种图像处理方法及装置 | |
CN104715487B (zh) | 一种基于伪Zernike矩的亚像素边缘检测方法 | |
CN108345821B (zh) | 面部追踪方法及设备 | |
CN112132907B (zh) | 一种相机标定方法、装置、电子设备及存储介质 | |
CN110619285B (zh) | 人体骨骼关键点提取方法及计算机可读存储介质 | |
CN104760812B (zh) | 基于单目视觉的传送带上产品实时定位系统和方法 | |
CN108074237B (zh) | 图像清晰度检测方法、装置、存储介质及电子设备 | |
US20220292796A1 (en) | Method and system for associating device coordinate systems in a multi-person ar system | |
CN103810475A (zh) | 一种目标物识别方法及装置 | |
CN111681186A (zh) | 图像处理方法、装置、电子设备及可读存储介质 | |
CN114897999B (zh) | 物体位姿识别方法、电子设备、存储介质和程序产品 | |
CN115937003A (zh) | 图像处理方法、装置、终端设备和可读存储介质 | |
CN114119437B (zh) | 一种基于gms的用于改善运动物体畸变的图像拼接方法 | |
US20210304411A1 (en) | Map construction method, apparatus, storage medium and electronic device | |
CN113177941B (zh) | 一种钢卷边裂识别方法、系统、介质和终端 | |
CN112950528A (zh) | 证件姿态确定方法、模型训练方法、装置、服务器及介质 | |
CN107403448B (zh) | 代价函数生成方法和代价函数生成装置 | |
CN106127147B (zh) | 一种基于三维数据的人脸深度纹理修复方法 | |
CN108335308A (zh) | 一种橙子自动检测方法、系统以及机器人智能零售终端 | |
CN112634377B (zh) | 扫地机器人的相机标定方法、终端和计算机可读存储介质 | |
CN113723432B (zh) | 一种基于深度学习的智能识别、定位追踪的方法及系统 | |
CN113870190B (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 | ||
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. |