ORB算法在opencv中实现方法

在OPenCV中实现ORB算法,使用的是:

1.实例化ORB

bash 复制代码
orb = cv.xfeatures2d.orb_create(nfeatures)

参数:

·nfeatures: 特征点的最大数量

2.利用orb.detectAndCompute()检测关键点并计算

bash 复制代码
kp,des = orb.detectAndCompute(gray,None)

参数:

·gray: 进行关键点检测的图像,注意是灰度图像

返回:

·kp: 关键点信息,包括位置,尺度,方向信息

·des: 关键点描述符,每个关键点BRIEF特征向量,二进制字符串,

3.将关键点检测结果绘制在图像上

bash 复制代码
cv.drawKeypoints(image, keypoints, outputimage, color, flags)

cv.drawKeypoints(image, keypoints, outputimage, color, flags)

示例:

bash 复制代码
import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt
# 1 图像读取
img = cv.imread('./image/tv.jpg')

# 2 ORB角点检测
# 2.1 实例化ORB对象
orb = cv.ORB_create(nfeatures=500)
# 2.2 检测关键点,并计算特征描述符
kp,des = orb.detectAndCompute(img,None)

print(des.shape)

# 3 将关键点绘制在图像上
img2 = cv.drawKeypoints(img, kp, None, color=(0,0,255), flags=0)

# 4. 绘制图像
plt.figure(figsize=(10,8),dpi=100)
plt.imshow(img2[:,:,::-1])
plt.xticks([]), plt.yticks([])
plt.show()
BRIEF算法04
相关推荐
szuzhan.gy几秒前
DS查找—二叉树平衡因子
数据结构·c++·算法
西西弗Sisyphus1 分钟前
开放世界目标检测 Grounding DINO
人工智能·目标检测·计算机视觉·大模型
抓哇能手19 分钟前
数据库系统概论
数据库·人工智能·sql·mysql·计算机
火云洞红孩儿25 分钟前
基于AI IDE 打造快速化的游戏LUA脚本的生成系统
c++·人工智能·inscode·游戏引擎·lua·游戏开发·脚本系统
一只码代码的章鱼32 分钟前
排序算法 (插入,选择,冒泡,希尔,快速,归并,堆排序)
数据结构·算法·排序算法
青い月の魔女1 小时前
数据结构初阶---二叉树
c语言·数据结构·笔记·学习·算法
风清扬雨1 小时前
【计算机视觉】超简单!傅里叶变换的经典案例
人工智能·计算机视觉
HuggingFace1 小时前
自动评估基准 | 设计你的自动评估任务
人工智能·自动评估
GISer_Jing1 小时前
神经网络初学总结(一)
人工智能·深度学习·神经网络