OpenCV | ORB特征检测与描述

举报
DrugAI 发表于 2021/07/15 02:10:44 2021/07/15
【摘要】 ORB (Oriented FAST and Rotated BRIEF) ORB基本上是FAST关键点检测器和Brief描述符的融合,并进行了许多修改以增强性能。首先,它使用FAST查找关键点,然后应用哈里斯角点度量在其中找到前N个点。它还使用金字塔生成多尺度特征。但是一个问题是,FAST无法计算方向。那么旋转不变性呢?作者提出以下修改。 它计算角点位于中心的贴片的强度...

ORB (Oriented FAST and Rotated BRIEF)

ORB基本上是FAST关键点检测器和Brief描述符的融合,并进行了许多修改以增强性能。首先,它使用FAST查找关键点,然后应用哈里斯角点度量在其中找到前N个点。它还使用金字塔生成多尺度特征。但是一个问题是,FAST无法计算方向。那么旋转不变性呢?作者提出以下修改。

它计算角点位于中心的贴片的强度加权质心。从此角点到质心的矢量方向确定了方向。为了改善旋转不变性,使用x和y计算矩,它们应该在半径为的圆形区域中[R,其中[R补丁的大小。

现在,对于描述符,ORB使用Brief描述符。但是我们已经看到,BRIEF的旋转性能很差。因此,ORB所做的就是根据关键点的方向“引导” BRIEF。对于位置的任何ñ二进制测试 功能集(x_i,y_i),请定义一个2次矩阵,小号其中包含这些像素的坐标。然后使用补丁的方向, theta找到其旋转矩阵并旋转小号以获得转向(旋转)版本S_  theta

 


      import numpy as np
      import cv2
      from matplotlib import pyplot as plt
      img = cv2.imread('molecule.png',0)
      # Initiate STAR detector
      orb = cv2.ORB_create()
      # find the keypoints with ORB
      kp = orb.detect(img,None)
      # compute the descriptors with ORB
      kp, des = orb.compute(img, kp)
      # draw only keypoints location,not size and orientation
      img2 = cv2.drawKeypoints(img,kp,color=(0,255,0), flags=0,outImage=None)
      cv2.imwrite('sift_keypoints.jpg',img)
      plt.imshow(img2),plt.show()
  
 


原图

 


参考:

https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_feature2d/py_orb/py_orb.html#orb

文章来源: drugai.blog.csdn.net,作者:DrugAI,版权归原作者所有,如需转载,请联系作者。

原文链接:drugai.blog.csdn.net/article/details/103008050

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。