cv2--特征点特征提取(Sift,Orb,Surf)
创始人
2024-05-25 07:43:37
0

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

文章目录

  • cv2--特征点特征提取(Sift,Orb,Surf)
    • 1. 关键点和关键点描述子
    • 2. Sift
      • 2.1 检测的步骤
      • 2.2 同时计算关键点kp和描述子des
    • 3. Surf
    • 4. Orb
    • 5. 总结

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. 总结

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

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...