cv2--特征点特征提取(Sift,Orb,Surf)

cv2–特征点特征提取(Sift,Orb,Surf)

1. 关键点和关键点描述子

  • kp(关键点):位置、大小、方向
  • des(关键点描述子):记录了关键点周围对其有贡献的像素点的一组向量值,不受仿射变换、光照变换等影响。

2. Sift

  • Scale-Invariant Feature Transform :与缩放无关的特征转换
  • 解决问题:Harris角点检测,当图像缩放后,原来的角点可能会消失如下图所示。SIFT就是为了解决这一问题。

1

2.1 检测的步骤

# 1.创建SIFT对象  
sift = cv2.SIFT_create()

# 2.进行检测  
kp = sift.detect(img , mask) # mask感兴趣区域,默认None

# 3.绘制关键点  
drawKeypoints(gray , kp , img) # img是要绘制的图片

2.2 同时计算关键点kp和描述子des

kp, des = sift.detectAndCompute(img, mask=None)
# mask : 指明对img的哪个区域进行计算,其作用是进行特征匹配

3. Surf

  • Speeded-Up Robust Features
  • SIFT最大的问题是速度慢,所以有了该算法。
# 1.创建对象 
surf = cv2.xfeatures2d.SURF_create()

# 2.计算关键点和描述子  
kp,des = surf.detectAndCompute(img , mask)

检测结果同SIFT,检测到的角点会少一点。

4. Orb

  • Oriented FAST and Rotated BRIEF
  • 优点:可以做到实时检测。
orb = cv2.ORB_create()
kp,des = orb.detectAndCompute(gray,None)

orb看到检测到的特征点非常少,这是因为实时性提高了,计算量减少了,只留下关键点。

5. 总结

记录一下,方便自己使用。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋冬无暖阳°

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值