特征点匹配 harris

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

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

  • 当窗口(局部区域)同时向 x (水平)和 y(垂直) 两个方向移动时,计算窗口内部的像素值变化量 E(x,y) ;
  • 对于每个窗口,都计算其对应的一个角点响应函数 R;
  • 然后对该函数进行阈值处理,如果 R>threshold,表示该窗口对应一个角点特征。

w(x,y)就是一个记录权重的卷积核 ,找到灰度变化最大的像素点

         

  • 左图表示一个平坦区域,在各方向移动,窗口内像素值均没有太大变化;
  • 中图表示一个边缘特征(Edges),如果沿着水平方向移动(梯度方向),像素值会发生跳变;如果沿着边缘移动(平行于边缘) ,像素值不会发生变化;
  • 右图表示一个角(Corners),不管你把它朝哪个方向移动,像素值都会发生很大变化。

边框意味着像素值发生突变,那么角附近的像素突变最大。

 像素值发生很大变化”这一现象可以用图像梯度进行描述。在图像局部内,图像梯度越大表示该局部内像素值变化越大(灰度的变化率越大)。 而图像的梯度在数学上可用微分或者导数来表示。对于数字图像来说,相当于是二维离散函数求梯度,并使用差分来近似导数:Gx(x,y)=H(x+1,y)−H(x−1,y)Gy(x,y)=H(x,y+1)−H(x,y−1)在实际操作中,对图像求梯度通常是考虑图像的每个像素的某个邻域内的灰度变化,因此通常对原始图像中像素某个邻域设置梯度算子,然后采用小区域模板进行卷积来计算,常用的有Prewitt算子、Sobel算子、Robinson算子、Laplace算子等。

(之前刚好写过sobel算子。。。😊😊)

 

 

 

相关推荐

  1. LightGlue-OpenCV 实现实时相机图片特征匹配

    2024-01-28 09:52:02       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-28 09:52:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-28 09:52:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-28 09:52:02       82 阅读
  4. Python语言-面向对象

    2024-01-28 09:52:02       91 阅读

热门阅读

  1. BloonsTD6 游戏拆解

    2024-01-28 09:52:02       45 阅读
  2. Web 安全之点击劫持(Clickjacking)攻击详解

    2024-01-28 09:52:02       51 阅读
  3. php函数 二

    2024-01-28 09:52:02       38 阅读
  4. 在React中使用React.createRef:更优雅的DOM引用方式

    2024-01-28 09:52:02       56 阅读
  5. ubuntu和树莓派下vim插件管理

    2024-01-28 09:52:02       54 阅读
  6. MySQL SQL 注入

    2024-01-28 09:52:02       60 阅读