Harris and Stephens 提出了一种角检测算法。
基本思想即为用检测器窗计算灰度变化。如下图,A窗为各个方向上滑动所得到的灰度变化都比较小,B为某个方向上有变化但是其正交方向上不变化,C为所有方向上都发生重大变化。
HS角检测器是试图区分以下ABC三个条件的数学公式。
滑动前&滑动后 对应窗口中的像素点灰度变化 描述如下:在某些其他文章的描述里面,也叫做,二者含义是一样的。下文中的描述来源于多篇文章,等同于,等同于。
我们可以进一步简化上图中的式子。
根据泰勒定理,任何一个函数表达式,均可有泰勒公式进行展开,以逼近原函数:
将上式中的实对称矩阵对角化处理,将两个正交方向的变化分量提取出来,就是 λ1 和 λ2(特征值),如上上图。
HS检测器使用了一个角相应测度,这些测度基于一个平方矩阵的迹等于该矩阵的特征值之和,及该矩阵的行列式等于起特征值的积。
这里k是一个常数,根据经验确定。k的大小有什么意义呢?它可以被看成是一个“敏感因子”,k越小,检测器就越有可能找到角。网上有的说一般在 (0.04, 0.06) 范围内(见下知乎链接),DIP书中默认k值在0.04,也提到MATLAB图像处理工具箱使用的k值域在(0, 0.25)。
两个特征值都较大的时候R有较大的正值,说明存在一个角或者一个孤立的亮点;一个特征值较大的时候但是另一个特征值较小的时候,R有较大的负值,说明存在垂直边界或者水平边界;两个特征值都较小的时候,R绝对值小,说明该小块图像较平坦。
这几篇博客写得很详细,对我的理解有很大的帮助,笔记中有部分借鉴:
https://blog.csdn.net/lwzkiller/article/details/54633670, https://zhuanlan.zhihu.com/p/83064609
文章出处登录后可见!