本篇博客主要介绍cv2中ORB模块。ORB是FAST关键点检测和BRIEF关键点描述器的结合体,并做了很多修改增强了性能。首先他使用FAST找到关键点,然后在使用Harris关键点检测对这些关键点做排序找到前N个点,他也是用金字塔从而产生尺度不变性特征。
对于描述符,ORB使用BRIEF描述符,但是BRIEF在旋转方面表现不佳,因此ORB所做的是根据关键点的方向来做引导,对于在未知(xi,yi)的n个二进制测试的任何特性集,定义一个包含这些像素租表的2 n矩阵,然后利用补丁的方向,找到旋转矩阵并旋转S,以得到引导(旋转)版本。
ORB将角度进行离散化,以增加2/30(12度),并构建一个预先计算过的简短模式的查找表,只要关键点的方向是一致的,就会使用正确的点集来计算它的描述符。
BRIEF有一个重要的属性,即每个比特的特性都有很大的方差,数据的方差大的一个好处是使得特征更容易分辨,而平均值接近于0.5,。但是一旦它沿着关键点的方向移动,它就会失去这个属性并变得更加分散。
示例代码:
import numpy as np
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('../data/blox.jpg', 0)
# Initiate ORB detector
orb = cv2.ORB_create()
# find t

这篇博客探讨了cv2库中的ORB模块,它是FAST关键点检测与BRIEF描述符的组合,通过Harris角点检测优化关键点,并采用尺度不变性。ORB通过对描述符进行旋转引导和角度离散化提升旋转不变性。文中提供了相关代码示例展示ORB在图像处理中的应用。
订阅专栏 解锁全文
1452

被折叠的 条评论
为什么被折叠?



