harris角点检测matlab_Harris角点检测{HarrisCornerDetection}

本文详细介绍了Harris角点检测算法的原理、步骤,以及OpenCV中的函数应用。通过计算梯度协方差矩阵,利用Harris评价系数R筛选角点,并展示了Matlab代码实现及运行效果。
摘要由CSDN通过智能技术生成

〔此篇介绍Harris角点检测算法〕

作者 | zhangJA来源 | 程序算法实验室

Harris角点检测算法是一个对图像的角点检测,通常在计算机视觉算法中用于提取角点推断图像特征。它是由Chris Harris和Mike Stephens在1988年对Moravec的转角检测算法进行改进后提出的。

Harris角点检测算法可以计算角度的变化,实现定位;实现图像匹配;

1:原理

原理概述:

Harris角点检测算法的基本思想:使用一个固定窗口在图像上进行任意方向上的滑动,比较滑动前滑动后两种情况,窗口中的像素灰度变化程度,如果存在任意方向上的滑动,都有着较大灰度变化,那么我们可以认为该窗口中存在角点

如下图:part1为平坦区域-任意方向移动,无灰度变换;part2为边缘-沿着边缘方向移动,无灰度变化;part3为角点-沿任意方向移动,明显有灰度变化。

cdd2be4f4e6a846968292fb6bc1f200d.png

数学描述:

①当窗口发生[u,v]移动时,那么滑动前滑动后对应的窗口中的像素点灰度变化描述如下: 

$E(u,v)=\sum_{x,y\in W}w(x,y)[I(x+u,y+v)-I(x,y)]^2 \tag{1}$

3155ef3d7f1f0e89bd19f3cc4cce67c9.png

  • [u,v]是窗口W的偏移量;

  • (x,y)是窗口W所对应的像素坐标位置,窗口有多大,就有多少个位置;

  • I(x,y) 是像素坐标位置(x,y)的图像灰度值;

  • I(x+u,y+v)是像素坐标位置(x+u,y+v)的图像灰度值;

  • w(x,y) 是窗口函数,最简单情形就是窗口W内的所有像素所对应的w权重系数均为1;

根据上述表达式,当窗口在平坦区域上移动,显然灰度不会发生什么变换,E(u,v)=0;如果窗口处在纹理比较丰富的区域上滑动,那么灰度变化会很大。算法最终思想就是计算灰度发生较大变化时所对应的位置,此处的变化大小是指任意方向上的滑动,并非单一个方向。

②由泰勒一阶展开公式对\tag{1}

$f(x+u,y+v)\approx f(x,y)+uf_x(x,y)+vf_y(x,y) \tag{2}$

f69829f2eec214f1fc79214c5b891fda.png

代入①得:

$E(u,v)=\sum_{x,y\in W}w(x,y)[I(x+u,y+v)-I(x,y)]^2\approx\sum_{x,y\in W}w(x,y)[I(x,y)+uI_x+vI_y-I(x,y)]^2$
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值