opencv-ORB检测
ORB(Oriented FAST and Rotated BRIEF)是一种图像特征检测和描述算法,结合了 FAST 关键点检测器和 BRIEF 描述子的优点。ORB 算法具有良好的性能,特别适用于实时应用,如目标追踪、相机定位等。
以下是 ORB 算法的一般步骤:
-
FAST 关键点检测器: 使用 FAST(Features from Accelerated Segment Test)算法检测图像中的关键点。FAST 是一种高效的角点检测算法。
-
Harris 角点响应计算: 对 FAST 检测到的关键点使用 Harris 角点响应进行筛选。
-
非极大值抑制: 在图像中选择具有最大角点响应的关键点。
-
Oriented BRIEF 描述子计算: 在关键点周围计算描述子,为了提高描述子的鲁棒性,引入方向信息。
-
描述子匹配: 使用描述子进行关键点匹配。
cv2.ORB_create是 OpenCV 中用于创建 ORB(Oriented FAST and Rotated BRIEF)检测器和描述器的函数。ORB 是一种用于图像特征检测和描述的算法,结合了 FAST 关键点检测器和 BRIEF 描述子的优点。
基本的使用方式如下:
orb = cv2.ORB_create([, nfeatures[, scaleFactor[, nlevels[, edgeThreshold[, firstLevel[, WTA_K[, scoreType[, patchSize[, fastThreshold]]]]]]]]])
其中方括号表示可选参数,具体的参数说明如下:
nfeatures: 保留的关键点数量,默认为 500。scaleFactor: 图像金字塔的缩放因子,默认为 1.2。nlevels: 图像金字塔的层数,默认为 8。edgeThreshold: 边缘阈值,用于过滤不稳定的边缘关键点,默认为 31。firstLevel: 图像金字塔的第一层索引,默认为 0。WTA_K: 用于计算描述子的像素点的数量,可以是 2、3或 4,默认为 2。scoreType: 评分类型,可以是cv2.ORB_HARRIS_SCORE或cv2.ORB_FAST_SCORE,默认为cv2.ORB_HARRIS_SCORE。patchSize: BRIEF 描述子的窗口大小,默认为 31。fastThreshold: FAST 关键点检测的阈值,默认为 20。
在 OpenCV 中,可以使用 cv2.ORB_create 函数创建 ORB 检测器和描述器。以下是一个简单的示例:
import cv2
import numpy as np
import matplotlib.pyplot as plt# 读取图像
img = cv2.imread(r"C:\Users\mzd\Desktop\opencv\images.jpg", cv2.IMREAD_GRAYSCALE)
# 创建 ORB 检测器和描述器
orb = cv2.ORB_create()
# 检测关键点并计算描述子
keypoints, descriptors = orb.detectAndCompute(img, None)
# 在图像上绘制关键点
img_with_keypoints = cv2.drawKeypoints(img, keypoints, None, color=(0, 255, 0), flags=0)# 显示原图和带有关键点的图像
plt.figure(figsize=(10, 5))plt.subplot(121), plt.imshow(img, cmap='gray')
plt.title('Original Image'), plt.axis('off')plt.subplot(122), plt.imshow(cv2.cvtColor(img_with_keypoints, cv2.COLOR_BGR2RGB))
plt.title('Image with ORB Keypoints'), plt.axis('off')plt.show()

在这个示例中,我们使用了 cv2.ORB_create 创建了一个 ORB 检测器和描述器,然后使用 detectAndCompute 方法在图像中检测关键点并计算描述子。最后,通过 drawKeypoints 方法在图像上绘制关键点,并使用 Matplotlib 显示原图和带有关键点的图像。
ORB 算法的优点之一是其计算速度较快,适用于实时应用。
相关文章:
opencv-ORB检测
ORB(Oriented FAST and Rotated BRIEF)是一种图像特征检测和描述算法,结合了 FAST 关键点检测器和 BRIEF 描述子的优点。ORB 算法具有良好的性能,特别适用于实时应用,如目标追踪、相机定位等。 以下是 ORB 算法的一般…...
please upgrade numpy version to >=1.20
升级 upgrade numpy_升级numpy-CSDN博客 pip install numpy --upgrade 没有pip conda install numpy --upgrade 会报错 conda list numpy来查看numpy版本 似乎这个numpy要看numpy-base这个 似乎没有pip...
关于进制的转化
二进制转十进制: 🔰 方法一:二进制转十进制,用各数的码位与位权的乘积之和,说白了就是用从右到左的每个数去乘以2的幂次方(最右边是0),然后就所有的数相加。 补充:位权是…...
JVM 之 字节码指令
目录 一. 前言 二. 指令集 2.1. 支持的数据类型 2.2. 指令分类 三. 指令手册 3.1. 操作数栈 3.2. 运算与转换 3.3. 条件转移 3.4. 类与数组 3.5. 调度与返回加 finally 3.6. 指令手册汇总 3.7. 示例 一. 前言 字节码指令集的特点是数据量短小精干,便于传…...
阿里云跨账号建立局域网
最近有活动,和好友一并薅了下阿里云的羊毛。琢磨着两台机器组一个局域网,于是有了这个需求,把步骤记录一下: 假设两台机器叫A和B,我们开始进行建立和组网 1. 建立ECS 把A机器公共环境装好,然后使用《实例与…...
【OpenSTL】方便好用的时空预测开源库
OpenSTL:方便好用的时空预测开源库 时空预测学习是一种学习范式,它使得模型能够通过在无监督的情况下从给定的过去帧预测未来帧,从而学习空间和时间的模式。尽管近年来取得了显著的进展,但由于不同的设置、复杂的实现和难以复现性…...
【Unity】IBeginDragHandler、IDragHandler 和 IEndDragHandler 介绍
IBeginDragHandler、IDragHandler 和 IEndDragHandler 介绍 IBeginDragHandler、IDragHandler 和 IEndDragHandler 是 Unity 引擎中的三个接口,用于处理 UI 元素的拖放事件。这些接口通常结合使用,构成了 Unity 引擎的拖放事件系统。 IBeginDragHandler…...
杰发科技AC7801——Flash模拟EEP内存分布情况
简介 本文记录了在使用AutoChips芯片Flash模拟EEP过程中的一些理解 核心代码如下 #include <stdlib.h> #include "ac780x_sweeprom.h" #include "ac780x_debugout.h"#define SWEEPROM_SIZE (2048UL) /* Ssoftware eeprom size(Byte) */ #define TE…...
【前端知识】Node——http模块url模块的常用操作
一、创建简易Server const http require(http); const URL require(url);const HTTP_PORT 8088;const server http.createServer((req, res) > {// req:request请求对象,包含请求相关的信息;// res:response响应对象&…...
平衡二叉树 (简单易懂)
目录 一、概念 二、性质 三、插入操作 四、旋转操作 五、删除操作 六、代码实现 七、复杂度 一、概念 平衡二叉树(Balanced Binary Tree)是一种特殊的二叉搜索树(Binary Search Tree,BST),它在插入和…...
Vue.observable 是什么
Observable 翻译过来我们可以理解成可观察的 Vue.js2.6 新增 Vue.observable,让一个对象变成响应式数据。Vue 内部会用它来处理 data 函数返回的对象 。 返回的对象可以直接用于渲染函数和计算属性内,并且会在发生变更时触发相应的更新。也可以作为最小化…...
【五年创作纪念日】
机缘 我成为创作者的过程并不复杂,可以说是一个自然的发展。我是一名软件工程师,日常的工作主要是编程和解决问题。在工作的过程中,我发现有很多时候我需要查找一些特定的技术问题或者寻找一些最佳实践来解决我遇到的问题。在这个过程中&…...
数据库基础入门 — SQL排序与分页
我是南城余!阿里云开发者平台专家博士证书获得者! 欢迎关注我的博客!一同成长! 一名从事运维开发的worker,记录分享学习。 专注于AI,运维开发,windows Linux 系统领域的分享! 本…...
WordPress站点屏蔽过滤垃圾评论教程(Akismet反垃圾评论插件)
前段时间我的WordPress站点经常收到垃圾评论的轰炸,严重时一天会收到几十条垃圾评论。我这个小破站一没啥流量,二又不盈利,实在是不太理解为啥有人要这么执着地浪费资源在上面。 Akismet反垃圾评论插件 其实用了 Akismet 反垃圾评论插件后&a…...
Modbus-RTU协议讲解与实战
1、背景 工作需要,需要使用Modbus-RTU实现RS485通信,于是简单学习并实践了一下。 2、参考资料 一文看懂Modbus协议 3、协议说明 3.1、协议类型 当前设备采用Modbus-RTU协议,采用CRC-16_Modbus校验算法,数据链路层使用用标准串口协议,物理层采用RS485进行数据传输。 …...
数据结构 查找基本概念
敬请期待。。。 1. 适用于折半查找的表的存储方式及元素排列要求为(顺序方式存储,元素有序 )。 2. 有一个按元素值排好序的顺序表(长度大于2),分别用顺序查找和折半查找与给定值相等的元素,比较次数分别是s和b&am…...
『Linux升级路』基础开发工具——gcc/g++篇
🔥博客主页:小王又困了 📚系列专栏:Linux 🌟人之为学,不日近则日退 ❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、快速认识gcc/g 二、预处理 📒1.1头文件展开 📒1…...
面试:RocketMQ相关问题
文章目录 什么是 RocketMQ,有哪些使用场景?RocketMQ 由哪些⻆色组成,每个⻆色作用和特点是什么?RocketMQ 中的 Topic 和 JMS 的 queue 有什么区别?RocketMQ 消费模式有几种?RocketMQ 的 Consumer 是如何消费…...
2304. 网格中的最小路径代价 : 从「图论最短路」过渡到「O(1) 空间的原地模拟」
题目描述 这是 LeetCode 上的 「2304. 网格中的最小路径代价」 ,难度为 「中等」。 Tag : 「最短路」、「图」、「模拟」、「序列 DP」、「动态规划」 给你一个下标从 0 开始的整数矩阵 grid,矩阵大小为 m x n,由从 0 到 的不同整数组成。 你…...
【机器学习】算法性能评估常用指标总结
考虑一个二分问题,即将实例分成正类(positive)或负类(negative)。对一个二分问题来说,会出现四种情况。如果一个实例是正类并且也被 预测成正类,即为真正类(True positive࿰…...
函数f 在区间[a,b]的中间有一条渐近线,它当然会产生一个不连续点?为什么会产生一个不连续点阿?该函数没有最大值?
函数f 在区间[a,b]的中间有一条渐近线,它当然会产生一个不连续点?为什么会产生一个不连续点阿?该函数没有最大值?渐近线的含义:垂直渐近线发生在函数值趋向于正无穷(∞)或负无穷(-∞࿰…...
ECOC多分类方法:原理、实现与优化策略
1. 理解错误校正输出编码(ECOC)的核心思想在机器学习领域,多分类问题一直是个有趣的挑战。想象一下,你手头有一堆专门解决"是或否"问题的工具(比如逻辑回归、支持向量机),但现在需要处…...
Qwen3-VL-8B隐私安全:纯本地推理,你的图片数据不出门
Qwen3-VL-8B隐私安全:纯本地推理,你的图片数据不出门 1. 为什么隐私安全如此重要? 在当今数字化时代,数据隐私已成为企业和个人最关心的问题之一。想象一下,当你使用一个在线图像识别服务时,你的私人照片…...
LaserGRBL终极指南:如何快速上手开源激光雕刻控制软件
LaserGRBL终极指南:如何快速上手开源激光雕刻控制软件 【免费下载链接】LaserGRBL Laser optimized GUI for GRBL 项目地址: https://gitcode.com/gh_mirrors/la/LaserGRBL LaserGRBL是一款专为GRBL控制器优化的免费开源激光雕刻软件,为Windows用…...
PocketFlow:自动化模型压缩框架实战,实现端侧AI高效部署
1. 项目概述:当模型压缩遇上自动化如果你是一名移动端或嵌入式设备的开发者,肯定对模型部署的“甜蜜烦恼”深有体会。一方面,我们渴望将那些在云端表现惊艳的大型深度学习模型(比如ResNet、BERT)搬到手机、摄像头或者智…...
Python季节性持续预测:时间序列分析的实用方法
## 1. 项目概述:当时间序列遇上季节性在零售销量预测、能源消耗预估、交通流量分析等领域,我们常会遇到具有明显季节性波动的数据。传统时间序列预测方法往往难以准确捕捉这种周期性规律,而基于Python的季节性持续预测(Seasonal P…...
【仅剩最后200份】C++26反射面试压轴题库(含微软/字节/英伟达2024Q2真实考题+编译失败日志逐行溯源)
更多请点击: https://intelliparadigm.com 第一章:C26反射特性在元编程中的应用面试题汇总 C26 正式引入基于 std::reflexpr 的静态反射核心机制,为编译期类型 introspection 提供标准化、无宏、无代码生成的原生支持。该特性彻底改变了传统…...
Saga分布式事务:补偿事务与协同式的实现对比
Saga分布式事务:补偿事务与协同式的实现对比 在微服务架构中,分布式事务的处理一直是技术难点之一。Saga模式作为一种流行的解决方案,通过将长事务拆分为多个本地事务,并采用补偿或协同机制来保证最终一致性。本文将对比Saga的两…...
如何在macOS上快速安装Whisky:免费运行Windows应用的终极指南
如何在macOS上快速安装Whisky:免费运行Windows应用的终极指南 【免费下载链接】Whisky A modern Wine wrapper for macOS built with SwiftUI 项目地址: https://gitcode.com/gh_mirrors/wh/Whisky 你是否厌倦了在Mac上无法使用某些Windows专属软件ÿ…...
CentOS 7.9 离线安装 Docker 完整指南【20260425-002篇】
文章目录 一、准备:在能上网的 CentOS 7.9 上下载所有 rpm 1.1 配置 yum 源(阿里) 1.2 下载 Docker 及全部依赖(离线包) 1.3 打包 二、离线机安装(无网) 2.1 解压 2.2 离线安装(关键:用 yum localinstall 自动处理依赖) 三、配置 Docker 系统服务(systemd) 3.1 创建…...
