harris角点检测_角点检测(2) - harris算子 - 理论与Python代码

数字图像,图像=矩阵,[m*n]从[0,255]的灰度值

角点检测:物体边缘的拐点

->应用:图像匹配与检索、图像物体形变恢复(摄像机标定)、三维重建

v2-4558ae1951ce57149617cbd28881182c_b.jpg

Harris角点检测(早期,原理简单,视频跟踪,快速检测)

  • 1988年-Harris+Stepehns
  • 图像中一个局部窗口在不同方向少量平移后窗口内图像灰度值的平均变化

v2-f58ffa28a8f3fb2115e10858bd0a1041_b.jpg
  • 动机:特征点具有局部差异性
  • 以每个点为中心取一个窗口,例如,5×5/7×7的像素,描述特征点周围环境
  • 此点具有差异性->窗口往任意方向移动,则周围环境变化较大->具有局部差异性

分类

v2-80a8a07c63af9fcfd8facd76d39137b1_b.jpg
  • 光滑 - flat
  • 边缘 - edge
  • 角点 - corner

一个方向上的灰度变化

越大越可能为角点
  • 竖直和水平方向的偏移,
  • w(x,y)窗口中心,高斯滤波/均值滤波
  • x+u,y+v中心加偏移,
  • x,y中心灰度值

改进——多个反向上的像素变化:

  • 泰勒展开公式

所以:

  • 加和符号:表示窗口内每个像素
  • w:表示权重,权值1或者以点为中心的高斯权重(离点越近权重越大)
  • I:表示像素,RGB/灰度
  • u,v:窗口移动的方向
  • H:harris矩阵,由两个方向上的梯度构建而成
  • 图像梯度:
  • Harris矩阵:
  • 图像水平梯度、图像垂直梯度

Harris矩阵H 的特征值分析

  • 两个特征值反映相互垂直方向上的变化情况,分别代表变化最快和最慢的方向,特征值大变化快,特征值小变化慢
  • λ1 ≈ λ2 ≈ 0, 两个方向上变化都很小,兴趣点位于光滑区域
  • λ1 > 0 , λ2 ≈ 0 ,一个方向变化快,一个方向变化慢,兴趣点位于边缘区域
  • λ1 , λ2 > 0 , 两个方向变化都很快,兴趣点位于角点区域(容易判断)

v2-3f5f566d639b252f4379cb2e2b2fb338_b.jpg

v2-7d6626fbd70a3e097ac712b0abc58706_b.jpg

Harris角点准则代替矩阵分解:

  • 反映特征值情况,trace为迹
  • k的值越小,检测子越敏感
  • 只有当λ1和λ2同时取得最大值时,C才能取得较大值
  • 避免了特征值分解,提高检测计算效率
  • 非极大值抑制(Non-maximal Suppression) 选取局部响应最大值,避免重复的检测

算法流程:

  • 0)滤波、平滑,避免出现阶跃函数
  • 1)计算图像水平和垂直方向的梯度
  • 2)计算每个像素位置的Harris矩阵
  • 3)计算每个像素位置的Harris角点响应值
  • 3+)非极大值抑制
  • 4)找到Harris角点响应值大于给定阈值且局部最大的位置作为特征点

检测结果:

v2-cd0cd7cf1549779747d86668fd5e7b8d_b.jpg

求导:使用Sobel梯度算子

和sobel算子做卷积计算,3*3与 3*3卷积改写中心值

v2-f7631a2fb0fe5b29d8648e9cf81c064c_b.jpg
原始图像

v2-49f93b410bcf31b6237edafc4d96bf5b_b.png
水平方向梯度的sobel算子

v2-8303aded09f6577a0c1fe6bc0e2699de_b.jpg
水平梯度求解后的图像

v2-9f9f3887abc7c291b8289746a299d139_b.png
竖直方向的sobel梯度

v2-1ef68ca819a35263c83676efd275cccc_b.jpg
竖直梯度求解后的图像

Harris确定角点

v2-a96dcddaa896b131f486fb722c63cc36_b.jpg

v2-d0d90e67e295133a5b198a6b995c9091_b.jpg
平坦点,边缘点,角点

v2-0e7649039f7500bb24a9e7a07e9f995d_b.jpg
计算梯度圆半径判断是否为角点

v2-fdbbe961627abc6ae89845415612dfd4_b.jpg

判断:

v2-236451efaad609a1a1c3787c601ede4b_b.jpg

Python代码

import 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值