【CV】Harris角点检测算法-点特征提取

1 理论部分

1.1 特征

在数据挖掘、计算机视觉等领域经常会提起“特征”一词,那么究竟什么才是特征?数据挖掘中我们可以称被分析数据集的某一属性(一行为一个样本,一列为一个属性)为特征,因为它反映了该数据集的某一种特性,是该数据集的一种固有标识。在计算机视觉中,一张图像的特征其实也有类似的概念,这种特征也能够描述这张图像的全部(或局部)内容或含义。
图像特征可以是①有意义的图像区域,该区域具有独特的特征和良好的识别性;也可以是②对图像信息的一种数据抽取和表示

  • 针对①可以是图像中的角点、边缘、斑点、直线、曲线及高密度区域等。大多数特征检测算法都会涉及图像的角点、边和斑点的识别,也有一些涉及脊向的概念,可以认为脊向是细长物体的对称轴,例如识别图像中的一条路。角点和边都好理解,那什么是斑点呢?斑点通常是指与周围有着颜色和灰度差别的区域。在实际地图中,往往存在着大量这样的斑点,如一颗树是一个斑点,一块草地是一个斑点,一栋房子也可以是一个斑点。由于斑点代表的是一个区域,相比单纯的角点,它的稳定性要好,抗噪声能力要强,所以它在图像配准上扮演了很重要的角色。
  • 对于②,则是采用直方图向量、投影向量等方法提取出新形式的数据特征,使得所提取出来的特征具有一些较好的特性,比如旋转不变性、光照不变性等,使得模型能更好地检测或识别出图像的特征。

图像的特征应用很广泛,我们通过图像特征能过够将实现图像的分类、目标检测、图像拼接等。而特征就需要特征检测来提出,最终达到的目标是:通过特征检测我们实现的就是能够让计算机“读懂”图像,将人类看到的视觉信息转化成计算机能够识别和处理的定量形式。

1.2 角点

角点是常见的点特征,它具有旋转不变形,光照不变性,视角不变性等特性,可以在目标匹配、目标跟踪、三维重建等应用中使用。常见的点特征提取算法主要有Harris角点检测算法、FAST特征检测算法、SIFT特征检测算法、SURF特征检测算法等,本文主要介绍Harris算法。

用一个滑动的窗口在图像内移动,分别会出现以下三种情况(如图1所示):

  1. 平坦区域(左图):当窗口向任意方向移动时,窗口内的像素值不会发生太大变化;
  2. 边缘(中图):当窗口沿着平行于边缘的方向移动时,窗口内的像素值不会发生太大变化;
  3. 角点(右图):不管窗口向着哪个方向移动,窗口内的像素值都会发生很大的改变。
    角点
    图1. 角点的识别

1.3 图像梯度

图像的梯度,指的是图像灰度值的变化率。由于图像灰度变化并不连续,因此采用差分法来求梯度。如点 ( x , y ) (x,y) (x,y)处在 x x x方向和 y y y方向的梯度按sobel算子计算,具体见Sobel算子简介

1.4 Harris角点检测算法思想

该算法可以分为三个主要的步骤:

  1. 建立数学模型描述窗口灰度变化
    当窗口在 x x x y y y方向分别移动了 u u u v v v该窗口的灰度值变化为 I ( x + u , y + v ) − I ( x , y ) I(x+u,y+v)-I(x,y) I(x+u,y+v)I(x,y)
    w ( x , y ) w(x,y) w(x,y)为窗口函数,即窗口内各点之间的权重,表示该点对窗口灰度变化的贡献大小。当各点权重都为1时,此窗口函数也称为一个均值滤波核
    [ 1 1 1 1 1 1 1 1 1 ] \left[ \begin{matrix} 1&1&1\\1&1&1\\1&1&1 \end{matrix} \right] 111111111当窗口函数为以窗口中心为原点并呈高斯分布时,此窗口函数也称为高斯滤波核,如:
    1 16 [ 1 2 1 2 4 2 1 2 1 ] \frac 1 {16} \left[ \begin{matrix} 1&2&1\\2&4&2\\1&2&1 \end{matrix} \right] 161121242121高斯滤波实质是一种加权平均滤波,为了实现平均,核还带有一个系数,例如上面的十六分之一,这些系数等于矩阵中所有数值之和的倒数。因为高斯滤波是以空间距离来确定权重大小的,但并没有考虑用颜色距离来确定权重,这样就导致了高斯滤波在去除噪声的同时,也一定程度上模糊了边界。关于高斯滤波可参考图像平滑去噪之高斯滤波器
    窗口函数
    图2. 移动窗口导致的灰度变化

    将图2中公式进行简化,由泰勒公式得:
    I ( x + u , y + v ) = I ( x , y ) + u I x + v I y I(x+u,y+v)=I(x,y)+uI_x+vI_y I(x+u,y+v)=I(x,y)+uIx+vIy I ( x + u , y + v ) − I ( x , y ) = u I x + v I y I(x+u,y+v)-I(x,y)=uI_x+vI_y I(x+u,y+v)I(x,y)=uIx+vIy
    窗口的灰度变化 E ( u , v ) E(u,v) E(u,v)
    E ( u , v ) = Σ ( x , y ) w ( x , y ) × ( u 2 I x 2 + v 2 I y 2 + 2 u v I x I y ) E(u,v)=\Sigma_{(x,y)} w(x,y)\times(u^2I_x^2+v^2I_y^2+2uvI_xI_y) E(u,v)=Σ(x,y)w(x,y)×(u2Ix2+v2Iy2+2uvIxIy)
    将上式写成矩阵形式:
    E ( u , v ) = ∑ ( x , y ) w ( x , y ) × [ u v ] [ I x 2 I x I y I x I y I y 2 ] [ u v ] E(u,v)=\sum_{(x,y)} w(x,y)\times\left[ \begin{matrix} u & v \end{matrix} \right] \left[ \begin{matrix} I_x^2 & I_xI_y \\ I_xI_y & I_y^2 \end{matrix} \right] \left[ \begin{matrix} u \\ v \end{matrix} \right] E(u,v)=(x,y)w(x,y)×[
  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
问题: HARRIS角点检测算法用于什么应用领域? 回答: HARRIS角点检测算法主要用于目标匹配、目标跟踪和三维重建等应用领域。角点是常见的点特征,具有旋转不变性、光照不变性和视角不变性等特点,适用于在这些应用中使用。常见的点特征提取算法包括Harris角点检测算法、FAST特征检测算法、SIFT特征检测算法和SURF特征检测算法等,其中Harris算法是其中一种常用的角点检测算法HARRIS角点检测算法对亮度和对比度的变化不敏感,并具有旋转不变性,但不具有尺度不变性。它使用角点附近的区域灰度二阶矩矩阵进行计算,可以通过特征椭圆的变化来判断角点响应值的变化,从而实现角点的检测。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【CVHarris角点检测算法-特征提取](https://blog.csdn.net/bhdnjngjmfgjm/article/details/106918418)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Harris角点检测算法详解](https://blog.csdn.net/woxincd/article/details/60754658)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值