最近学习了一下关于Harris响应的相关知识,主要用于角点的提取上,它主要是利用一个滑动的窗口,对于某个固定方向的(u,v),我们可以得到在当前像素下的窗口进行移动所产生的像素差,公式如下:
w为窗口函数,代表了窗口下每个像素点的权重,一般采用高斯函数,表示越靠近所选点,其权值越大。
然后对于变化的像素点,我们为了加速,用泰勒展开
这样我们成功将差值转换为了这样的二次型,然后对中间的A求它的特征值,如果两个特征值都很大,那么认为是角点,都很小,那么认为是平滑的区域,否则认为是边线
我们将其进一步转换得
k一般取0.04-0.06
这样如果R很大的正数认为是角点,很大的负数是边线,一般的正数是平滑区域。
至此,算法结束,可以看出Harris响应还是比较容易理解的,且代码实现不困难,因为偏导数就用差值来计算即可。