特征点匹配 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算子。。。😊😊)

相关推荐
冬奇Lab6 小时前
Workflow 系列(04):Multi-Agent 协调——编排器边界、并发控制与上下文隔离
人工智能·工作流引擎
冬奇Lab6 小时前
每日一个开源项目(第147篇):HyperGraphRAG - 用超图表示 N 元关系,RAG 的第三代范式
人工智能·开源·graphql
甲维斯7 小时前
Github + 阿里云oss实现类似codex的自动更新!
人工智能
阿里云大数据AI技术8 小时前
光轮智能 × 阿里云:共建 Physical AI 云上数据、评测与持续学习基础设施
人工智能·机器学习
机器之心9 小时前
实锤了:Claude Code偷查用户,时区、中国AI实验室全是关键词
人工智能·openai
网易云信9 小时前
Cursor点燃个人开发者,企业级AI为何频频受挫?Agent工厂从提效工具到AI员工的跃迁
人工智能·开源
网易云信9 小时前
解锁触手可及的温暖:网易智企 x Wander Puffs AI 云游泡芙
人工智能
转转技术团队9 小时前
从 PRD 到可验证代码:AI 需求开发闭环实践
人工智能