Opencv(七):Harris角点检测

一、原理概述

      灰度变化平缓区域,灰度积分值保持近似不变;灰度沿边缘方向积分值保持不变,其他方向灰度积分值变化剧烈;角点除,任意方向剧烈变化。如下图所示:

Opencv(七):Harris角点检测

二、数学推导

Opencv(七):Harris角点检测

简言之,灰度积分值可以转化为一个二次型,通过矩阵运算可知,二次型可转化为如下数学公式:

Opencv(七):Harris角点检测

进而,可转化为椭圆公式,如下所示:

Opencv(七):Harris角点检测

原二次型就是一个斜置的椭圆,A与B分别影响了椭圆的长边和短边,根据几何性质,可以得知,椭圆的长短轴即可反映出椭圆面积,椭圆面积可反映灰度积分值,最终得到如下结论:

Opencv(七):Harris角点检测

由于无法确定长短轴具体多少数值是大,多少数值是小,则使用一个角点相应函数,通过数学转化为与0的比较,如下所示:

Opencv(七):Harris角点检测

当R约等于0,说明长轴与短轴都很小,灰度积分值很小,灰度变化平缓;

当R小于0,说明长轴短轴有一个很大,一个很小,灰度沿一个方向变化平缓,其他方向变化剧烈,为边缘区域;

当R大于0,说明长短轴数值都很大,灰度沿任意方向变化剧烈,为角点。

三、相关opencv函数

Opencv(七):Harris角点检测

 

总结:

Harris角点检测算法对规则角点检测效果好,对不规则角点检测效果不好。