一种X型角点亚像素提取方法与流程

文档序号:15164520发布日期:2018-08-14 17:18阅读:392来源:国知局

本发明属于图像处理技术领域,具体涉及一种x型角点亚像素提取方法。



背景技术:

随着科学技术的不断发展,摄像机也得到了飞速的发展,摄像机的种类以及功能也越来越多,人们也享受到了科技发展带来的各种便利。比如,人们可以利用将摄像机设置在车辆上,通过摄像机采集图像的方式获知停车场内的环境信息。

目前的摄像机,在使用时需要对参数进行标定,以得到较为精确的参数,而参数计算直接受角点精确度影响,这就要求角点提取的精确度较高;传统的角点提取技术有基于段测试的角点检测方法,但是图像场景复杂,加上段测试的模板大小、灰度差阀值难以选择等原因,导致在检测x型角点的过程中,容易造成漏检、多检,出现较多伪角点。



技术实现要素:

针对现有技术的不足,本发明提出一种x型角点亚像素提取方法,能够精确识别图像中x型角点,为摄像机精确标定提供保障。

一种x型角点亚像素提取方法,包括以下步骤:

步骤1、将待处理图像转换为灰度图像;

步骤2、以灰度图像左上角的像素点为原点建立坐标系,所述灰度图像的水平方向为x轴,垂直方向为y轴,采用harris算子对灰度图像进行角点检测;

步骤3、通过harris算子确定角点的坐标位置,根据角点的坐标位置获得亚像素级角点坐标;

步骤4、以每个亚像素级角点为窗口中心并设置窗口边长,构建窗口,保留窗口内角点量最大的角点,并删除其它的角点;

步骤5、判断被测图像的角点个数是否已知,若是,则执行步骤6,否则执行步骤7;

步骤6、将保留下来的角点按照角点量由大到小进行排序,根据图像已知角点的个数,选择排在前面的角点,完成图像x型角点亚像素的提取;

步骤7、判断保留下的角点的角点量是否大于设定阈值,若是,则保留,完成图像x型角点亚像素的提取;否则,删除。

所述的x型角点,设x型角点p周围任意一点为q,则p点处的梯度与向量qp点积为零。

本发明优点:

本发明提出一种x型角点亚像素提取方法,该方法可以滤掉图像中的伪角点,能够精确检测出图像中的角点,检测精度可以达到0.09个像素,该方法计算简单,对图像旋转、灰度变化、噪声影响和视点变换不敏感。

附图说明

图1为本发明一种实施例的x型角点亚像素提取方法流程图;

图2为本发明一种实施例的待处理图像;

图3为本发明一种实施例的待处理图像灰度图像;

图4为本发明一种实施例的高斯图像;

图5为本发明一种实施例的滤波和腐蚀后的灰度图像;

图6为本发明一种实施例的利用harris算子提取到的像素级坐标示意图;

图7为本发明一种实施例的利用harris算子提取到的亚像素级坐标示意图;

图8为本发明一种实施例的亚像素级x型角点向量示意图;

图9为本发明一种实施例的像素级角点经过删除的角点坐标示意图;

图10为本发明一种实施例的亚像素级角点经过删除的角点坐标示意图;

图11为本发明一种实施例的角点个数已知时亚像素级x型角点示意图;

图12为本发明一种实施例的角点个数未知时亚像素级x型角点示意图;

图13为本发明一种实施例的根据像素级别的角点的提取结果示意图。

具体实施方式

下面结合附图对本发明一种实施例做进一步说明。

本发明实施例中,x型角点亚像素提取方法,方法流程图如图1所示,包括以下步骤:

步骤1、将待处理图像转换为灰度图像;

本发明实施例中,harris角点为图像上在任意两个垂直方向上灰度值变化都比较大的点。但是harris算法是针对灰度图像进行处理提取其中角点的,所以首先将原始图像转换为灰度图像,图2是原图,图3是对应的灰度图像;

步骤2、以灰度图像左上角的点为原点建立坐标系,所述灰度图像的水平方向为x轴,垂直方向为y轴,采用harris算子对灰度图像进行角点检测;

本发明实施例中,以图像中左上角的点为原点建立坐标系,其中,图像的水平方向为x轴,图像的垂直方向为y轴,通过harris算子进行角点检测,具体检测过程如下:

步骤2-1、利用梯度算子计算x、y方向差值;

步骤2-2、利用图像中每个像素点的灰度计算图像中每个像素点的x轴、y轴方向的梯度ix、iy;

计算公式如下:

其中,公式(1)和公式(2)中,梯度算子可以是如表1所示的算子;

表1

步骤2-3、分别计算图像中每个像素点在两个方向的梯度乘积ix2、iy2和ixy;

计算公式如下:

ix2=ix*ix(3)

iy2=iy*iy(4)

ixy=ix*iy(5)

步骤2-4、利用高斯函数生成高斯核分别对ix2、iy2和ixy滤波,高斯滤波器图像如图4所示;

其中高斯函数公式为:

其中,x表示水平方向,y表示竖直方向,σ为二维高斯曲线的标准差,g表示卷积,w为高斯滤波窗口。

根据公式(6)至公式(9)计算每个像素点的角点量r,计算公式如下:

本发明实施例中,从得到的角点量r中找出角点量r局部最大值对应的角点即为所需提取的x型角点;但是对于实际应用中有一类角点棱角明显,并非所需提取到的点,因此本发明实施例中,利用类似棋盘格的形状来进行,先对得到的灰度图像进行中值滤波和腐蚀操作,从而使图像形状的棱角不明显,减小我们不期望角点的r值从而将此类角点的角点特征弱化,同时避免了x型角点应滤波处理造成的模糊,使图像中x型角点的r值最高;图5就是经过滤波和腐蚀操作后的灰度图像。

步骤3、通过harris算子确定角点的坐标位置,根据角点的坐标位置获得亚像素级角点坐标;

本发明实施例中,利用harris算子确定角点的坐标位置,根据角点的坐标位置计算亚像素级的角点坐标,其中,设x型角点p,设p周围任意一点为q,则p点处的梯度与向量qp点积为零;利用harris算子提取到的像素级坐标如图6所示,亚像素级坐标如图7所示;

本发明实施例中,由图7可以看出,用大白纸铺设的黑白格区域有且仅能检测到7个harris角点,且检测的位置相对准确,其中7个角点中有一个是所需要的标记点。由于场景相对复杂,图6中也检测到了很多非标记的点,如位于图6场景即大白纸之外的点,且图6中角点的位置坐标只是像素级别,还需进一步提纯,得到亚像素级;

本发明实施例中,由于p点处的梯度与向量qp点积为零,依据此定理,可以构造如图8所示的向量;

本发明实施例中,角点区域附近点的位置可分为在边缘上和不在边缘上两种,在图8中,假设b点在边缘上,其灰度梯度向量垂直于向量ob,则与向量ob点积为0;a点不在边缘上,由于该点的灰度梯度向量为0,所以与向量oa点积也为0,可以用如下公式表示:

其中,表示灰度梯度向量,表示图像原点到坐标点i的向量,表示图像原点到坐标点o的向量;

本发明实施例中,根据公式(11)可以在点o附近寻找多个点,计算所寻找的多个点的每个点的灰度梯度向量以及组成方程组,可以求解方程组,得到角点o亚像素级精度的坐标值,以完成图像中角点亚像素的提取,亚像素级坐标如图7所示。

步骤4、以每个亚像素级角点为窗口中心并设置窗口边长,构建窗口,保留窗口内角点量最大的角点,并删除其它的角点;

本发明实施例中,对于找到的角点,经常会出现角点聚集的情况,图6和图7也可以很清楚的看到这一点,将这种类型的角点称为重复角点,需要在角点聚集的地方选取一个r值最大的角点;具体做法如下:

以找出的每个角点为窗口中心,设置大小为n×n窗口,找出该n×n窗口内中每个像素点的角点量的最大值对应的角点同时删除其它的角点,根据具体的图像大小选取合适的n值,本发明实施例中n取5,单位为像素;图9是图6经过删除之后的结果,图10是图7经过删除之后的结果;

根据白纸上实际的角点位置,利用亚像素提取出的角点坐标准确度有了很大的提高,更加靠近实际的角点,角点位置更加精准。

步骤5、判断被测图像的角点个数是否已知,若是,则执行步骤6,否则执行步骤7;

步骤6、将保留下来的角点按照角点量由大到小进行排序,根据图像已知角点的个数,选择排在前面的角点,完成图像x型角点亚像素的提取;

本发明实施例中,角点是通过计算角点量r值得到的,x型角点r值要比轮廓上的角点的r值要大,因此当已知图像中角点个数n的时候,将图像中所有角点按r值得大小进行排序,选择前n个角点即为x型角点;本发明实施例中,地板上铺了4张白纸,因此设置n为4,即已知有4个x型角点;

步骤7、判断保留下的角点的角点量是否大于设定阈值,若是,则保留,完成图像x型角点亚像素的提取;否则,删除。

本发明实施例中,利用harris算子提取角点的时候设置阈值,当该点的r值大于阈值的时,将它当做角点,当该点的r值小于阈值的时候,它就不是角点。针对x型角点,它们的r值普遍偏大,因此,本发明实施例中,在设置阈值的时候将阈值适当提高就可以只提取出x型角点;阈值的选择要做到既不漏掉x型角点,又不能将非x型角点提取出来。

针对上面的两种方法都进行了实验,图11是角点个数已知得到的结果,图12是角点个数未知得到的结果;由结果可以看出,两种方法提取到的x型角点一致,而且符合实际的情况,对于复杂背景的x型角点的提取有很好的效果;同样,利用上面两种方法对像素级角点进行提取,也得到了相同的结果,图13是根据像素级别的角点的提取结果;将两者进行对比发现,亚像素级x型角点位置更准确,更符合实际情况。

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