python+OpenCV笔记(二十二):角点检测原理(Harris角点检测原理、Shi-Tomasi角点检测原理)

目录

角点特征

Harris角点检测原理

Shi-Tomasi角点检测原理

代码示例


角点特征

        角点就是极值点,即在某方面属性特别突出的点,角点可以是两条线的交叉处,也可以是位于相邻的两个主要方向不同的事物上的点。

应用

        角点是图像很重要的特征,对图像图形的理解和分析有很重要的作用。角点在保留图像图形重要特征的同时,可以有效地减少信息的数据量,使其信息的含量很高,有效地提高了计算的速度,有利于图像的可靠匹配,使得实时处理成为可能。

        角点在三维场景重建、运动估计、目标跟踪、目标识别、图像配准与匹配等计算机视觉领域起着非常重要的作用。

举例

扫描二维码关注公众号,回复: 14248881 查看本文章

         如上图所示,蓝色框中的区域是一个平面很难被找到和跟踪的。无论向哪个方向移动蓝色框,都是一样的。对于黑色框中的区域,它是一个边缘。如果沿垂直方向移动,它会改变。但是如果沿水平方向移动就不会改变。而红色框中的角点,无论你向那个方向移动,得到的结果都不同,这说明它是唯一的。所以,我们说角点是一个好的图像特征。

总结
        图像特征要有区分性,容易被比较。一般认为角点,斑点等是较好的图像特征。

        特征检测:找到图像中的特征。

        特征描述:对特征及其周围的区域进行描述。

Harris角点检测原理

    1.    

        Harris角点检测的思想是通过图像的局部的小窗口观察图像,角点的特征是窗口沿任意方向移动都会导致图像灰度的明显变化,如下图所示:

         将上述思想转换为数学形式,即将局部窗口向各个方向移动(u,v)并计算所有灰度差异的总和,表达式如下:

        其中 I(x, y) 是局部窗口的图像灰度,I(x + u,y + v) 是平移后的图像灰度,w(x, y)是窗口函数,该可以是矩形窗口,也可以是对每一个像素赋予不同权重的高斯窗口,如下所示:

     2.    

        角点检测中使E(u, v)的值最大。利用一阶泰勒展开有:

        其中I{x}I{y}是沿 x 和 y 方向的导数,可用sobel算子计算。
        推导如下:

        M矩阵决定了 E(u,v) 的取值,下面我们利用 M 来求角点,M是I{x}I{y}的二次项函数,M的特征值为\lambda{1}\lambda {2}

        图像中的角点、直线(边缘)和平面之间的关系如下图所示:

 共可分为三种情况:

  1. 图像中的直线。一个特征值大,另一个特征值小,\lambda{1}<<\lambda {2}\lambda{1}>>\lambda {2}
  2. 图像中的平面。两个特征值都小,且近似相等。
  3. 图像中的角点。两个特征值都大,且近似相等。

     3.    

        Harris给出的角点计算方法并不需要计算具体的特征值,而是计算一个角点响应值R来判断角点。R的计算公式为︰

R=detM-\alpha (traceM)^{2}

式中,detM为矩阵M的行列式(detM=\lambda {_1}\lambda {_2}),traceM为矩阵M的迹(traceM=\lambda {_1}+\lambda {_2});a为常数,取值范围为0.04~0.06。所以,特征是隐含在detM和traceM中的。

        那我们怎么判断角点的呢?如下图所示:

  1. 当R为大数值的正数时是角点
  2. 当R为大数值的负数时是边界
  3. 当R为小数是认为是平坦区域

Shi-Tomasi角点检测原理

        Shi-Tomasi算法是对Harris角点检测算法的改进,一般会比Harris算法得到更好的角点。Harris算法的角点响应函数是将矩阵M的行列式值与M的迹相减,利用差值判断是否为角点。后来Shi和Tomasi提出改进的方法是:若矩阵M的两个特征值中较小的一个大于阈值,则认为他是角点,即:

R=min\left \{\lambda {_1} ,\lambda {_2} \right \}

即只有当\lambda {_1} ,\lambda {_2}都大于最小值时,才被认为是角点。

代码示例

1.Harris角点检测

python+OpenCV笔记(二十三):Harris角点检测https://blog.csdn.net/qq_45832961/article/details/1225687462.Shi-Tomasi角点检测

python+OpenCV笔记(二十四):Shi-Tomasi角点检测https://blog.csdn.net/qq_45832961/article/details/122578231

猜你喜欢

转载自blog.csdn.net/qq_45832961/article/details/122547958