005 Harris Corner Detection
算法理解
一种角点检测算法。
用一个窗口在图像上扫描,窗口移动(u,v)后的图像与移动前的图像之间的差异用下式描述
从下图可以看出,角点的特点在于,做同样的移动(u,v),它变化剧烈的方向比平缓区域(0)、边缘区域(2)更多,很多时候占上下左右4个方向中的3个。也就是说要求上式的最大值。
简化推导上式
求和是对窗口里的x,y求和的
它的多项式形式如下
u,v是常数,这个式子的值与Ix、Iy的关系,以及图像的意义如下:
- Ix,Iy都很小,公式取值很小,图像每个方向变化都很小,平缓点
- lx、ly一个大,一个小,公式值一般,图像有一个方向变化剧烈,边缘点
- lx、ly都很大,公式值很大,图像两个以上方向变化剧烈,角点
用矩阵的特征值作为评价指标,更易于计算
k取0.04-0.06。
通过极限情况理解R - 如果特征值都很小,那这个矩阵每个元素接近0,最后的E(u,v)也接近0,对应平缓点,R接近0
- 如果一个大,一个小,考虑M(1,1)=无穷,其他为0,也就是说u和v中有一个方向变化很剧烈,对应边缘点,R向负无穷走
- 如果两个特征值都很大,考虑M的对角元素是无穷,E(u,v)向无穷走,对应角点,R向无穷走
形象讲,矩阵代表运动,特征值是最快的速度,特征方向是运动最快的方向,两个特征值都很大,说明窗口在图像上移动相同的距离,窗口框起来的图像变化最剧烈,这就是角点的特点。
矩阵、特征值的理解
https://www.zhihu.com/question/21874816
https://en.wikipedia.org/wiki/Eigenvalues_and_eigenvectors
Harris Corner
http://www.cse.psu.edu/~rtc12/CSE486/lecture06.pdf