0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

浅谈图像处理-harris角点检测算法

QQ475400555 来源:机器视觉沙龙 2023-09-22 15:46 次阅读

通常意义上来说,角点就是极值点,即在某方面属性特别突出的点,是在某些属性上强度最大或者最小的孤立点、线段的终点。对于图像而言,其是物体轮廓线的连接点。

1 harris角点检测算法思想

算法的核心是利用局部窗口在图像上进行移动,判断灰度是否发生较大的变化。如果窗口内的灰度值(在梯度图上)都有较大的变化,那么这个窗口所在区域就存在角点。

这样就可以将 Harris 角点检测算法分为以下三步:

1,当窗口(局部区域)同时向 x (水平)和 y(垂直) 两个方向移动时,计算窗口内部的像素值变化量 E(x,y);

2,对于每个窗口,都计算其对应的一个角点响应函数 R;

3,然后对该函数进行阈值处理,如果 R>threshold,表示该窗口对应一个角点特征。

2

建立数学模型

第一步是通过建立数学模型,确定哪些窗口会引起较大的灰度值变化。让一个窗口的中心位于灰度图像的一个位置(x,y),这个位置的像素灰度值为I(x,y),如果这个窗口分别向 x和 y 方向移动一个小的位移u和v,到一个新的位置 (x+u,y+v),这个位置的像素灰度值就是I(x+u,y+v)。|I(x+u,y+v)−I(x,y)|就是窗口移动引起的灰度值的变化值。

设w(x,y)为位置(x,y)处的窗口函数,表示窗口内各像素的权重,最简单的就是把窗口内所有像素的权重都设为1,即一个均值滤波核。当然,也可以把 w(x,y)设定为以窗口中心为原点的高斯分布,即一个高斯核。

9bcccb16-58db-11ee-939d-92fbcf53809c.png

如果窗口中心点像素是角点,那么窗口移动前后,中心点的灰度值变化非常强烈,所以该点权重系数应该设大一点,表示该点对灰度变化的贡献较大;而离窗口中心(角点)较远的点,这些点的灰度变化比较小,于是将权重系数设小一点,表示该点对灰度变化的贡献较小。

则窗口在各个方向上移动(u,v)所造成的像素灰度值的变化量公式如下:

9bdd21b4-58db-11ee-939d-92fbcf53809c.png

若窗口内是一个角点,则E(u,v)的计算结果将会很大。为了提高计算效率,对上述公式进行简化,利用泰勒级数展开来得到这个公式的近似形式。

对于二维的泰勒展开式公式为:

T(x,y)=f(u,v)+(x−u)fx(u,v)+(y−v)fy(u,v)+....

则I(x+u,y+v) 为:

I(x+u,y+v)=I(x,y)+uIx+vIy

其中Ix和Iy是I的微分(偏导),在图像中就是求x 和 y 方向的梯度图:

Ix=∂I(x,y)/∂x

Iy=∂I(x,y)/∂y

将I(x+u,y+v)=I(x,y)+uIx+vIy代入E(u,v)可得:

9be7b304-58db-11ee-939d-92fbcf53809c.png

提出 u 和 v ,得到最终的近似形式:

9bf3ca5e-58db-11ee-939d-92fbcf53809c.png

其中矩阵M为:

9c006bec-58db-11ee-939d-92fbcf53809c.png

最后是把实对称矩阵对角化处理后的结果,可以把R看成旋转因子,其不影响两个正交方向的变化分量。经对角化处理后,将两个正交方向的变化分量提取出来,就是 λ1 和 λ2(特征值)。

这里利用了线性代数中的实对称矩阵对角化的相关知识,有兴趣的同学可以进一步查阅相关资料

3

角点响应函数R

现在我们已经得到E(u,v)的最终形式,别忘了我们的目的是要找到会引起较大的灰度值变化的那些窗口。

灰度值变化的大小则取决于矩阵M,M为梯度的协方差矩阵。在实际应用中为了能够应用更好的编程,所以定义了角点响应函数R,通过判定R大小来判断像素是否为角点。

计算每个窗口对应的得分(角点响应函数R定义):

9c15854a-58db-11ee-939d-92fbcf53809c.png

其中 det(M)=λ1λ2是矩阵的行列式,trace(M)=λ1+λ2是矩阵的迹。λ1和 λ2是矩阵M的特征值,k是一个经验常数,在范围 (0.04, 0.06) 之间。R的值取决于M的特征值,对于角点∣R∣很大,平坦的区域∣R∣很小,边缘的R为负值。

4

角点判定

根据 R 的值,将这个窗口所在的区域划分为平面、边缘或角点。为了得到最优的角点,我们还可以使用非极大值抑制。

注意:Harris 检测器具有旋转不变性,但不具有尺度不变性,也就是说尺度变化可能会导致角点变为边缘。想要尺度不变特性的话,可以关注SIFT特征。

因为特征值 λ1 和 λ2 决定了 R 的值,所以我们可以用特征值来决定一个窗口是平面、边缘还是角点:

平面:该窗口在平坦区域上滑动,窗口内的灰度值基本不会发生变化,所以∣R∣ 值非常小,在水平和竖直方向的变化量均较小,即 Ix和 Iy都较小,那么 λ1 和 λ2 都较小;

边缘:∣R∣值为负数,仅在水平或竖直方向有较大的变化量,即 Ix和Iy只有一个较大,也就是 λ1>>λ2 或 λ2>>λ1;

角点:[公式] 值很大,在水平、竖直两个方向上变化均较大的点,即 Ix和 Iy都较大,也就是 λ1 和 λ2 都很大。

如下图所示:

9c328dac-58db-11ee-939d-92fbcf53809c.png

Harris 角点检测的结果是带有这些分数 R 的灰度图像,设定一个阈值,分数大于这个阈值的像素就对应角点。

编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 图像处理
    +关注

    关注

    26

    文章

    1224

    浏览量

    55823
  • 阈值
    +关注

    关注

    0

    文章

    120

    浏览量

    18350
  • Harris
    +关注

    关注

    0

    文章

    9

    浏览量

    8136

原文标题:图像处理-harris角点检测

文章出处:【微信号:机器视觉沙龙,微信公众号:机器视觉沙龙】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于FPGA的图像点检测

    有没有用verilog语言写的基于FPGA的图像点检测代码呀?
    发表于 04-10 10:47

    人脸检测算法及新的快速算法

    最近几年的人脸检测算法和一种新的快速算法,与大家探讨特征、弱分类器、收敛准则、样本选择等对人脸检测性能的影响,并尝试分析人脸姿态、表情、遮挡、年龄、种族等影响因素。2013年全国图像
    发表于 09-26 15:13

    基于matlab的图像处理--飞机检测

    ,一种自适应的Harris点检测算法2013年6月,何楚等,基于分层自适应部分的遥感图像飞机目标检测2011年9月,仇建斌等,
    发表于 09-30 11:46

    机器视觉图像处理点检测技术

    点检测算法Harris点检测算法、KLT点检测算法及SUSAN
    发表于 01-22 13:46

    【DragonBoard 410c试用体验】 之OpenCV中之图像点检测实现

    ( WINDOW_NAME2, scaledImage );}这里代码稍微有点多,不过我们主要看cornerHarris 函数,它这才是用于在OpenCV中运行Harris点检测算处理
    发表于 09-13 19:46

    ADI峰值和起始点检测算法对比传统诊断法有什么优点?

    一种可靠的峰值和起始点检测算法,该算法使用最初被提议用于动脉血压(ABP)波形的描绘方法。
    发表于 07-30 06:05

    对手腕PPG信号实施PRV分析的可靠峰值和起始点检测算法解析

    本文提出了可对手腕PPG信号实施PRV分析的可靠峰值和起始点检测算法
    发表于 06-17 09:25

    大家有会opencv的吗,harris点检测 的公式,大部分资料都是直接给出公式R=detM-(traceM)²,请问你能给出推导过程吗

    harris点检测的公式,大部分资料都是直接给出公式R=detM-(traceM)²,请问你能给出推导过程吗
    发表于 08-30 17:37

    基于图像距离差的织物疵点检测算法

    本文将机器视觉与数字图像处理技术引入到织物疵点检测中,提出了一种织物疵点检测算法——图像距离差
    发表于 05-27 13:12 17次下载

    基于数字图像处理的表面裂纹检测算法

    本文提出了一种基于数字图像处理技术的表面裂纹检测算法。运用这种算法能精确的检测裂纹的位置、长度等特征。将这种裂纹
    发表于 08-21 10:37 36次下载

    基于小波变换多尺度Harris点检测算法

    提出一种新的基于小波变换的Harris 多尺度角点检测算法,可以在不同的尺度下获取角点,克服了单一尺度的Harris点检测算法可能存在的角点信息丢失和易受噪声影响而
    发表于 01-09 11:18 41次下载

    Harris点检测

    《OpenCV3编程入门》书本配套源代码:Harris点检测
    发表于 06-06 15:20 4次下载

    一种双门限语音端点检测算法的ASIC实现

    一种双门限语音端点检测算法的ASIC实现
    发表于 01-07 20:32 0次下载

    局部密度离群点检测算法

    已有的密度离群点检测算法LOF不能适应数据分布异常情况离群点检测,INFLO算法虽引入反向五近邻点集有效地解决了数据分布异常情况的离群点检测问题,但存在需要对所有数据点不加区分地分析其
    发表于 11-25 09:34 6次下载
    局部密度离群<b class='flag-5'>点检测算法</b>

    基于高斯金字塔图像的改进Harris特征点检测算法

    为了提高海面特征点检测的准确度和三维重建的精度,在基于传统的μaris算法的基础上,提岀Ⅰ种基于高斯金字塔图像的改进Hars特征点检测算法。利用搭建的双目相机泙台,对海浪
    发表于 05-06 17:03 18次下载
    基于高斯金字塔<b class='flag-5'>图像</b>的改进<b class='flag-5'>Harris</b>特征<b class='flag-5'>点检测算法</b>