OpenCV中的二进制鲁棒独立基本特征——BRIEF
OpenCV中的二进制鲁棒独立基本特征——BRIEF
- 1. 效果图
- 2. 源码
- 参考
这篇博客将介绍OpenCV中的二进制鲁棒独立基本特征。BRIEF是一种更快的特征描述符计算和匹配方法。它还提供了较高的识别率,除非存在较大的面内旋转。
- BRIEF Binary Robust Independent Elementary Features 二进制鲁棒独立基本特征
- BRIEF是一个特性描述符,它不提供任何查找特征的方法。因此需要使用其他特征检测器,如SIFT、SURF等,建议使用CenSurE检测器。
- CenSurE 探测器:也称为Start Detector星探测器,是一种快速检测器,检测效果甚至比SURF更好。
1. 效果图
原始图如下:
Star Detector星检测器效果图如下:
2. 源码
# OpenCV中的二进制鲁棒独立基本特征
# BRIEF Binary Robust Independent Elementary Features 二进制鲁棒独立基本特征
# BRIEF是一种更快的特征描述符计算和匹配方法。它还提供了较高的识别率,除非存在较大的面内旋转。
# CenSurE探测器:也称为Start Detector星探测器,是一种快速检测器,检测效果甚至比SURF点的检测效果更好。
# BRIEF是一个特性描述符,它不提供任何查找特征的方法。因此需要使用其他特征检测器,如SIFT、SURF等。建议使用CenSurE检测器import cv2origin = cv2.imread('images/simple.jpg')
cv2.imshow("origin", origin)img = cv2.cvtColor(origin, cv2.COLOR_BGR2GRAY)# 初始化星检测器
star = cv2.xfeatures2d.StarDetector_create()# 初始化BRIEF描述符检测器
brief = cv2.xfeatures2d.BriefDescriptorExtractor_create()# 找到星检测器的关键点
kp = star.detect(img, None)
img2 = cv2.drawKeypoints(origin, kp, origin, flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
cv2.imshow("star res", img2)
print('star keypoints: ', len(kp))# 计算BRIEF的描述符
kp, des = brief.compute(img, kp)
print('brief keypoints: ', len(kp))
print('brief shape: ', des.shape)img3 = cv2.drawKeypoints(origin, kp, origin, flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
cv2.imshow("brief res", img3)
cv2.waitKey(0)
参考
- https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_brief/py_brief.html#brief
OpenCV中的二进制鲁棒独立基本特征——BRIEF相关推荐
- Python+OpenCV:图像二进制鲁棒独立基本特征(BRIEF, Binary Robust Independent Elementary Features)
Python+OpenCV:图像二进制鲁棒独立基本特征(BRIEF, Binary Robust Independent Elementary Features) 理论 We know SIFT us ...
- OpenCV系列之BRIEF(二进制的鲁棒独立基本特征) | 四十二
目标 在本章中, 我们将看到BRIEF算法的基础知识 理论 我们知道SIFT使用128维矢量作为描述符.由于它使用浮点数,因此基本上需要512个字节.同样,SURF最少也需要256个字节(用于64像素 ...
- OpenCV-Python BRIEF(二进制的鲁棒独立基本特征) | 四十二
目标 在本章中,我们将看到BRIEF算法的基础知识 理论 我们知道SIFT使用128维矢量作为描述符.由于它使用浮点数,因此基本上需要512个字节.同样,SURF最少也需要256个字节(用于64像素) ...
- (四)OpenCV中的特征检测之BRIEF(二进制强大的独立基本特征)
注释:本文翻译自OpenCV3.0.0 document->OpenCV-Python Tutorials,包括对原文档种错误代码的纠正 1.概述 SIFT使用具有128个浮点数的特征描述符. ...
- 【机会约束、鲁棒优化】具有排放感知型经济调度中机会约束和鲁棒优化研究【IEEE6节点、IEEE118节点算例】(Matlab代码实现)
- RP-VIO:面向动态环境的基于平面的鲁棒视惯融合里程计(IROS2021)
RP-VIO: Robust Plane-based Visual-Inertial Odometry for Dynamic Environments 来源:Ram K, Kharyal C, Ha ...
- SIGIR2020 | 基于GCN的鲁棒推荐系统研究
近年来,推荐系统已成为所有电子商务平台中必不可少的组件.然而,推荐系统的评分数据通常来自开放平台,而开放平台可能会存在一群恶意用户故意插入虚假反馈,以使推荐系统倾向于他们的偏爱(Shilling At ...
- 《强化学习周刊》第55期:LB-SGD、MSP-DRL对抗鲁棒强化学习
No.55 智源社区 强化学习组 强 化 学 习 研究 观点 资源 活动 周刊订阅 告诉大家一个好消息,<强化学习周刊>已经开启"订阅功能",以后我们会向您自动推送最 ...
- 2017CVPR NID-SLAM:基于归一化信息距离的鲁棒单目SLAM系统
原作:Geoffrey Pascoe 翻译:Frank 转载请注明出处 水平有限,错误请指出 NID-SLAM:基于归一化信息距离的鲁棒单目SLAM系统 摘要 本文提出了一种基于归一化信息距离(NID ...
最新文章
- 打造计数君!谷歌提出RepNet:可自动计数视频重复片段 | CVPR 2020
- Simulating fire sales in a system of banks and asset managers(模拟银行和资产管理系统的折价销售)
- 实现java RPC框架
- 电气期刊论文实现:基于输电线路容量安全约束的电力机组组合
- linux常用操作命令汇总
- 防止网页被嵌入框架的代码
- 全网唯一C++调用由com组件生成的dll教程
- 每 1000 行代码有 14 个安全缺陷,开源软件的安全令人堪忧
- 白板推导系列Pytorch-隐马尔可夫模型-学习问题
- apache基本配置
- java转盘抽奖代码_Java 实现大转盘抽奖
- 教你用好手中的McAfee 杀毒软件和McAfee 企业集中管理工具EPO
- 项目管理软件浮出水面(转)
- 计算机12点自动关机,电脑怎么设置定时自动关机命令 电脑设置定时关机方法【图文】...
- Mimics 21安装
- 上位机和下位机的区别是什么
- 微信背单词小程序——小鸡单词
- nginx 屏蔽某些ip,防止有些人刷接口攻击
- 推荐基于深度学习实时同步生成2D动画口型算法
- 凝思(linx)系统ntp服务
热门文章
- 2021年大数据常用语言Scala(三十五):scala高级用法 提取器(Extractor)
- [FaceBook]测试、发布和分享小游戏
- Android 自定义View —— Paint
- Android TextView 中间添加划线与 底部添加划线
- Java设计模式:观察者模式
- 微信小程序页面之间数据传递
- Binary XML file line #98: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lan
- Kubernetes 网络排错指南
- bootstap 表格自动换行 截取超长数据
- 根据进程名杀死进程 -kill进程名