角点检测(Corner Detection)是计算机视觉中用来获得图像特征的一种方法,广泛应用于运动检测、视频追踪、目标识别等领域中,也称特征点检测。
一、兴趣点与角点
对于角点,到目前为止还没有明确的数学定义。但是你可以认为角点就是极值点,即在某方面属性特别突出的点。一般的角点检测都是对有具体定义的、或者是能够具体检测出来的兴趣点的检测。这意味着兴趣点可以是角点,是在某些属性上强度最大或者最小的孤立点、线段的终点,或者是曲线上局部曲率最大的点。
通俗的来说,在一副图像中,我们可以认为角点是物体轮廓线的连接点(见图1),当拍摄视角变化的时候,这些特征点仍能很好地保持稳定的属性。
角点通常被定义为两条边的交点,角点的局部领域应该具有两个不同区域的不同方向的边界。实际应用中,大多数角点检测方法检测的是拥有特定特征的图像点,不仅仅是“角点”。这些特征点在图像中具有具体的坐标,并具有某些数学特征,如局部最大或最小灰度、某些梯度特征。角点在保留图像图形重要特征的同时,可以有效地减少信息的数据量,使其信息的含量很高,有效地提高了计算的速度,有利于图像的可靠匹配,使得实时处理成为可能。
图像特征类型可以被分为如下三种:
- 边缘
- 角点(感兴趣关键点)
- 斑点(Blobs)(感兴趣区域)
其中,角点是个很特殊的存在。如果某一点在任意方向的一个微小变动都会引起灰度很大变化,那么就称为角点。角点位于两条边缘的交点处,代表了两个边缘变化的方向上的点,所以它们是可以精确定位的二维特征,甚至可以达到亚精度的精度。
关于角点的具体描述可以有如下几种:
- 一阶导师(即灰度的梯度)的局部最大所对应的像素点。
- 两条即两条以上边缘交点。
- 图像中梯度值和梯度方向的变化速率都很高的点。
- 角点处的一阶导数最大,二阶导数为零,它指示了物体边缘变化不连续的方向。
二、角点检测
在当前的图像处理领域,角点检测算法可以归纳为以下三类
- 基于灰度图像的角点检测
- 基于二值图像的角点检测
- 基于轮廓曲线的角点检测
基于灰度图像的角点检测又可分为基于梯度、基于模版和基于模版梯度组合三类方法。基于模版的方法主要考虑像素领域点的灰度变化,即图像亮度的变化,