图像角点检测是图像视觉领域中的经典研究方向。鉴于不同类型的角点有着不同的特点,棋盘格角点作为一种特殊的角点广泛应用于摄像机标定中,角点检测在整个摄像机标定过程中也扮演着相当重要的角色。
目前来说,主要有基于图像灰度的角点检测和图像边缘提取的角点检测,其中后一种依赖于图像边缘提取的好坏,实用性不是很强。所以当下应用最广泛的是基于图像灰度曲率变化的检测方法,常用到的算子有Moravec 、Harris,Forstner和Susan等,其中Harris的定位性能和鲁棒性较好,加之Harris算法原理简单,不受摄像机姿态和光照的影响,现已成为了使用最为广泛的角点提取算法之一。因此,针对Harris算法现在也已提出了许多改进算法:亚像素级的角点检测算法与尺度空间相结合的算法,自适应角点提取算法根据棋盘格的几何特性提出的检测算法等,但大部分都是以增加计算量或者低效率为代价,同时,用 Harris 算法进行检测,有三点不足:(1 )该算法不具有尺度不变性;(2 )该算法提取的角点是像素级的;(3 )该算法检测时间不是很令人满意。以下就介绍一种基于Harris算子的改进算法,且该算法已用到本人的论文中,效果很好。
首先Harris 角点检测是基于图像像素灰度值变化梯度的,灰度值图像的角点附近,是其像素灰度值变化非常大的区域,其梯度也非常大。换句话说,在非角点位置邻域里,各点的像素值变化不大,甚至几乎相等,其梯度相对也比较小。如果邻域内点的灰度值与中心点Image (i,j) 的灰度值之差 的绝对值 在一个阈值t 范围 内,那就认为这个点与中心点是相似的。与此同时,属于该 Image(i,j) 点的相似点计数器nlike(i,j) 也随之加1。在 Image (i,j) 点的n 邻域 全部被遍历一边之后,就能得到在这个邻域范围内 与中心点相似的 点个数的统计值nlike(i,j) 。根据nlike(i,j) 的大小,就可以判断这个中心点是否可能为角点。由于选择3*3的检测窗口,所以,对于中心像素点 , 在下面的讨论中只考虑其8 邻域内像素点的相似度。算该范围的像素点与中心像素点的灰度值之差的绝对值 (记为 Δ ) , 如果该值小于等于设定的阈值 ( 记为 t) , 则认为该像素点与目标像素点相似。
nlike(i,j)=sum(R(i+x,j+y)) ( - 1≤ x≤ 1 , - 1 ≤ y ≤ 1 , 且 x ≠ 0 , y ≠ 0) ,
其中 : R(i+x, j+y)=1 , 当