学习Harris角点检测

本文参考博客:https://blog.csdn.net/woxincd/article/details/60754658

                         https://blog.csdn.net/lwzkiller/article/details/54633670

(个人学习笔记,因此有大量内容来自原博客。)

1.1   算法思想

Harris角点检测是特征点检测的基础,提出了应用邻近像素点灰度差值概念,从而进行判断是否为角点、边缘、平滑区域。Harris角点检测原理是利用移动的局部窗口在图像中计算灰度变化值,如果窗口内的灰度发生较大的变化,则认为窗口内遇到了角点。其中关键流程包括转化为灰度图像、计算差分图像、高斯平滑、计算局部极值、确认角点。

1.2   数学模型

首先计算移动窗口的灰度差值,记将图像窗口平移 产生的灰度变化为:

 

(1)

其中 为窗口函数,为0/1函数或者高斯函数; 位置的图像灰度; 位置的图像灰度;

为了减小计算量,利用泰勒级数进行简化公式:

 

(2)

将公式(2)带入公式(1)得到:

 

(3)

其中

 

(4)

所以对于局部微小的移动量 ,可以近似得到下面的表达式:

 

(5)

 

(6)

M是2X2的偏导数矩阵,可以进行对称矩阵的变化。如果利用两个特征值进行替代,其几何含义如图1所示几何模型中通过判断两个特征值的大小来判定像素属性,其具体描述如图2所示。

                                                                       图1  对实对称矩阵M的特征值分析

                                                                图2  通过两个特征值的大小判定像素点的属性

M为梯度的协方差矩阵 ,在实际应用中为了能够应用更好的编程,定义了角点响应函数R,通过判定R大小来判断像素是否为角点,判定方式如图3所示。R决于M的特征值,其定义如下:

 

(7)

其中det\left ( \lambda _{1}\lambda _{2} \right )trace\left ( m \right )=\lambda _{1}+\lambda _{2}k为一个经验常数(0.04-0.06)。定义R>threshold 且为局部极大值的点时为角点。

Harris角点检测算子对图像亮度和对比度具有部分不变性,且具有旋转不变性,但不具有尺度不变性。

                                                                              图3 由R大小来判断像素的属性

猜你喜欢

转载自blog.csdn.net/m0_37849252/article/details/81780056