文章目录

  • 特征描述 ORB
    • ORB特征描述
    • ORB的基本思路
      • FAST角点检测的缺点
      • BRIEF的缺点
    • BRIEF
    • ORB对BRIEF的改进
    • 完整代码如下

特征描述 ORB

ORB 算法创建的特征向量只包含 1 和 0,称为二元特征向量。1 和 0 的顺序会根据特定关键点和其周围的像素区域而变化。该向量表示关键点周围的强度模式,因此多个特征向量可以用来识别更大的区域,甚至图像中的特定对象。
ORB 的特点是速度超快,而且在一定程度上不受噪点和图像变换的影响,例如旋转和缩放变换等。

ORB特征描述

ORB特征基于FAST角点的特征点检测与BRIEF特征描述技术。

与SIFT和SURF相比,速度快是ORB的最大优势。

ORB的基本思路

它是对FAST角点与BRIEF特征描述子的一种结合与改进。

FAST角点检测的缺点

  • 缺乏尺度不变性的;
  • 可以通过构建高斯金字塔,然后在每一层金字塔图像上检测角点,来实现尺度不变性;

BRIEF的缺点

  • 缺乏旋转不变性的;
  • 需要给BRIEF加上旋转不变性。

BRIEF

BRIEF需要先平滑图像,然后在特征点周围选择一个Patch,在这个Patch内通过一种选定的方法来挑选出来nd个点对。

比较点对中两点像素的大小,进行如下赋值


所有 nd 个点对,都进行比较之间,我们就生成了一个 nd 长的二进制串。

ORB对BRIEF的改进

ORB在计算BRIEF描述子时建立的坐标系是以关键点为圆心,以关键点和取点区域的形心(圆形)的连线为X轴建立坐标系。

计算形心时,圆形区域上每个点的"质量”是其对应的像素值。

完整代码如下

import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt
img1 = cv.imread('H:/pictures/box.png',0)          # queryImage
img2 = cv.imread('H:/pictures/box_in_scene.png',0) # trainImage
# Initiate ORB detector
orb = cv.ORB_create()
# find the keypoints and descriptors with ORB
kp1, des1 = orb.detectAndCompute(img1,None)
kp2, des2 = orb.detectAndCompute(img2,None)# create BFMatcher object
bf = cv.BFMatcher(cv.NORM_HAMMING, crossCheck=True)
# Match descriptors.
matches = bf.match(des1,des2)
# Sort them in the order of their distance.
matches = sorted(matches, key = lambda x:x.distance)
# Draw first 10 matches.
img3 = cv.drawMatches(img1,kp1,img2,kp2,matches[:20],None, flags=2)
plt.imshow(img3),plt.show()

【特征描述】ORB详解(附python实例代码)相关推荐

  1. sklearn预测评估指标:混淆矩阵计算详解-附Python计算代码

    目录 前言 混淆矩阵 python代码 前言 很多时候需要对自己模型进行性能评估,对于一些理论上面的知识我想基本不用说明太多,关于校验模型准确度的指标主要有混淆矩阵.准确率.精确率.召回率.F1 sc ...

  2. python直线拟合_RANSAC算法详解(附Python拟合直线模型代码)

    之前只是简单了解RANSAC模型,知道它是干什么的.然后今天有个课程设计的报告,上去讲了一下RANSAC,感觉这个东西也没那么复杂,所以今天就总结一些RASAC并用Python实现一下直线拟合. RA ...

  3. 蓝牙:CRC原理详解(附crc16校验代码)

    CRC原理详解(附crc16校验代码) 参考链接: https://www.cnblogs.com/esestt/archive/2007/08/09/848856.html Cyclic Redun ...

  4. catboost原理、参数详解及python实例

    catboost 简介 优点: 1)它自动采用特殊的方式处理类别型特征(categorical features).首先对categorical features做一些统计,计算某个类别特征(cate ...

  5. Linux用户、权限及改变文件所有者及文件所属组多例详解 附python代码

    https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) Linux用户.权 ...

  6. CRC原理详解(附crc16校验代码)

    CRC原理详解 算法原理 查表法 反向算法 附录1:crc16校验表及用法 算法原理 Cyclic Redundancy Check循环冗余检验,是基于数据计算一组效验码,用于核对数据传输过程中是否被 ...

  7. 一文数学数模-相关性分析(二)斯皮尔曼相关(spearman)相关性分析一文详解+python实例代码

    前言 相关性分析算是很多算法以及建模的基础知识之一了,十分经典.关于许多特征关联关系以及相关趋势都可以利用相关性分析计算表达.其中常见的相关性系数就有三种:person相关系数,spearman相关系 ...

  8. BRISK特征点描述算法详解

    转自:BRISK特征点描述算法详解_AstoncPou的博客-CSDN博客_brisk特征点 BRISK特征点描述算法详解 简介 BRISK算法是2011年ICCV上<BRISK:Binary ...

  9. python 快速排序_小白入门知识详解:Python实现快速排序的方法(含实例代码)...

    前言: 今天为大家带来的内容是:小白入门知识详解:Python实现快速排序的方法(含实例代码)希望通过本文的内容能够对各位有所帮助,喜欢的话记得点赞转发收藏不迷路哦!!! 提示: 这篇文章主要介绍了P ...

最新文章

  1. SQL Server调优系列进阶篇(如何维护数据库索引)
  2. java 画图保存图片_将绘图保存到图像文件,而不是使用Matplotlib显示它
  3. java 有多少api_Java常用API(二)
  4. 前端学习(1806):前端调试之列表伪类练习二
  5. 检查mysql的replication_MySQL Replication需要注意的问题
  6. LeetCode 858. 镜面反射(最小公倍数/最大公约数)
  7. Nginx软件优化【转】
  8. 不同版本的散点图矩阵
  9. MacOS 64位GaussView5的破解
  10. Recommended Django Project Layout
  11. 7z 7Zip 命令行压缩,解压缩文件
  12. 友华PT920/PT921/PT921G光猫破解超级密码
  13. 计算机课ppt插入图片,PPT中图片的巧妙切换 -电脑资料
  14. win10安装的虚拟机无法连接网络
  15. 将 字母 转换数字(1-26)
  16. bash:bison未找到命令
  17. 苹果5完美越狱_A12A13全新越狱工具发布,不需要电脑引导的半完美越狱
  18. 用户画像标签系统体系解释
  19. 失传万年的PS致富经典(三)
  20. java 网页防止刷赞_李洋

热门文章

  1. 小目标检测的一些总结
  2. sqlserver数据库提示:正在还原中,无法访问
  3. hdu 5078 2014鞍山现场赛 水题
  4. Python猫荐书系统之四:《Python源码剖析》
  5. JavaScript——异常处理
  6. 一起来了解下龙芯1B芯片处理器的介绍和特点
  7. 面试官说:说一说CommonJs的实现原理
  8. JAVA集合案例之使用Iterator迭代遍历输出企鹅信息升级版
  9. 知识付费的时代,哪些应该付费学习?
  10. Java属性setProperty()方法与示例