亚像素角点检测简介
角点检测,顾名思义就是寻找图像中的角点。角点是图像的一种重要特征,可以用于运动跟踪,三维建模,全景拼接等应用。常用的角点检测算法有Harris Corner,Fast Corner。常规的角点检测算法输出的角点坐标是整数,即角点位置恰好与像素位置重合。实际场景中角点位置是连续的,而相机的像素是离散的,两者总是有偏差。如果需要基于图像进行几何测量,这个偏差是不能容忍的。这就是亚像素角点检测问题的背景。相比常规角点检测,亚像素角点检测用实数取代整数来表示角点坐标。
亚像素角点检测算法
亚像素角点检测需要先运行常规的角点检测,得到整数表示的角点坐标。然后算法对每个角点做细化,得到实数表示的角点坐标
亚像素角点检测算法的基本思想如下[1]
对于一个角点 q q ,考虑在
附近的窗口win内的任意点 p p 。
的图像梯度与向量 q−p q − p 的点积总是为零。原因是如果 p p 在平坦区域,则
的梯度为零,如果 p p 在边缘处,
的梯度总是与 q−p q − p 垂直。
于是
<∇I(p),q−p>=0 < ∇ I ( p ) , q − p >= 0
<script type="math/tex; mode=display" id="MathJax-Element-21"><\nabla I(p),q-p>=0</script>即
Ix(p)(xq−xp)+Iy(p)(yq−yp)=0 I x ( p ) ( x q − x p ) + I y ( p ) ( y q − y p ) = 0
Ix(p)xq+Iy(p)yq=Ix(p)x