【特征描述】ORB详解(附python实例代码)
文章目录
- 特征描述 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实例代码)相关推荐
- sklearn预测评估指标:混淆矩阵计算详解-附Python计算代码
目录 前言 混淆矩阵 python代码 前言 很多时候需要对自己模型进行性能评估,对于一些理论上面的知识我想基本不用说明太多,关于校验模型准确度的指标主要有混淆矩阵.准确率.精确率.召回率.F1 sc ...
- python直线拟合_RANSAC算法详解(附Python拟合直线模型代码)
之前只是简单了解RANSAC模型,知道它是干什么的.然后今天有个课程设计的报告,上去讲了一下RANSAC,感觉这个东西也没那么复杂,所以今天就总结一些RASAC并用Python实现一下直线拟合. RA ...
- 蓝牙:CRC原理详解(附crc16校验代码)
CRC原理详解(附crc16校验代码) 参考链接: https://www.cnblogs.com/esestt/archive/2007/08/09/848856.html Cyclic Redun ...
- catboost原理、参数详解及python实例
catboost 简介 优点: 1)它自动采用特殊的方式处理类别型特征(categorical features).首先对categorical features做一些统计,计算某个类别特征(cate ...
- Linux用户、权限及改变文件所有者及文件所属组多例详解 附python代码
https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) Linux用户.权 ...
- CRC原理详解(附crc16校验代码)
CRC原理详解 算法原理 查表法 反向算法 附录1:crc16校验表及用法 算法原理 Cyclic Redundancy Check循环冗余检验,是基于数据计算一组效验码,用于核对数据传输过程中是否被 ...
- 一文数学数模-相关性分析(二)斯皮尔曼相关(spearman)相关性分析一文详解+python实例代码
前言 相关性分析算是很多算法以及建模的基础知识之一了,十分经典.关于许多特征关联关系以及相关趋势都可以利用相关性分析计算表达.其中常见的相关性系数就有三种:person相关系数,spearman相关系 ...
- BRISK特征点描述算法详解
转自:BRISK特征点描述算法详解_AstoncPou的博客-CSDN博客_brisk特征点 BRISK特征点描述算法详解 简介 BRISK算法是2011年ICCV上<BRISK:Binary ...
- python 快速排序_小白入门知识详解:Python实现快速排序的方法(含实例代码)...
前言: 今天为大家带来的内容是:小白入门知识详解:Python实现快速排序的方法(含实例代码)希望通过本文的内容能够对各位有所帮助,喜欢的话记得点赞转发收藏不迷路哦!!! 提示: 这篇文章主要介绍了P ...
最新文章
- SQL Server调优系列进阶篇(如何维护数据库索引)
- java 画图保存图片_将绘图保存到图像文件,而不是使用Matplotlib显示它
- java 有多少api_Java常用API(二)
- 前端学习(1806):前端调试之列表伪类练习二
- 检查mysql的replication_MySQL Replication需要注意的问题
- LeetCode 858. 镜面反射(最小公倍数/最大公约数)
- Nginx软件优化【转】
- 不同版本的散点图矩阵
- MacOS 64位GaussView5的破解
- Recommended Django Project Layout
- 7z 7Zip 命令行压缩,解压缩文件
- 友华PT920/PT921/PT921G光猫破解超级密码
- 计算机课ppt插入图片,PPT中图片的巧妙切换 -电脑资料
- win10安装的虚拟机无法连接网络
- 将 字母 转换数字(1-26)
- bash:bison未找到命令
- 苹果5完美越狱_A12A13全新越狱工具发布,不需要电脑引导的半完美越狱
- 用户画像标签系统体系解释
- 失传万年的PS致富经典(三)
- java 网页防止刷赞_李洋