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相关推荐

  1. Python+OpenCV:图像二进制鲁棒独立基本特征(BRIEF, Binary Robust Independent Elementary Features)

    Python+OpenCV:图像二进制鲁棒独立基本特征(BRIEF, Binary Robust Independent Elementary Features) 理论 We know SIFT us ...

  2. OpenCV系列之BRIEF(二进制的鲁棒独立基本特征) | 四十二

    目标 在本章中, 我们将看到BRIEF算法的基础知识 理论 我们知道SIFT使用128维矢量作为描述符.由于它使用浮点数,因此基本上需要512个字节.同样,SURF最少也需要256个字节(用于64像素 ...

  3. OpenCV-Python BRIEF(二进制的鲁棒独立基本特征) | 四十二

    目标 在本章中,我们将看到BRIEF算法的基础知识 理论 我们知道SIFT使用128维矢量作为描述符.由于它使用浮点数,因此基本上需要512个字节.同样,SURF最少也需要256个字节(用于64像素) ...

  4. (四)OpenCV中的特征检测之BRIEF(二进制强大的独立基本特征)

    注释:本文翻译自OpenCV3.0.0 document->OpenCV-Python Tutorials,包括对原文档种错误代码的纠正 1.概述 SIFT使用具有128个浮点数的特征描述符. ...

  5. 【机会约束、鲁棒优化】具有排放感知型经济调度中机会约束和鲁棒优化研究【IEEE6节点、IEEE118节点算例】(Matlab代码实现)

  6. RP-VIO:面向动态环境的基于平面的鲁棒视惯融合里程计(IROS2021)

    RP-VIO: Robust Plane-based Visual-Inertial Odometry for Dynamic Environments 来源:Ram K, Kharyal C, Ha ...

  7. SIGIR2020 | 基于GCN的鲁棒推荐系统研究

    近年来,推荐系统已成为所有电子商务平台中必不可少的组件.然而,推荐系统的评分数据通常来自开放平台,而开放平台可能会存在一群恶意用户故意插入虚假反馈,以使推荐系统倾向于他们的偏爱(Shilling At ...

  8. 《强化学习周刊》第55期:LB-SGD、MSP-DRL对抗鲁棒强化学习

    No.55 智源社区 强化学习组 强 化 学  习 研究 观点 资源 活动 周刊订阅 告诉大家一个好消息,<强化学习周刊>已经开启"订阅功能",以后我们会向您自动推送最 ...

  9. 2017CVPR NID-SLAM:基于归一化信息距离的鲁棒单目SLAM系统

    原作:Geoffrey Pascoe 翻译:Frank 转载请注明出处 水平有限,错误请指出 NID-SLAM:基于归一化信息距离的鲁棒单目SLAM系统 摘要 本文提出了一种基于归一化信息距离(NID ...

最新文章

  1. 打造计数君!谷歌提出RepNet:可自动计数视频重复片段 | CVPR 2020
  2. Simulating fire sales in a system of banks and asset managers(模拟银行和资产管理系统的折价销售)
  3. 实现java RPC框架
  4. 电气期刊论文实现:基于输电线路容量安全约束的电力机组组合
  5. linux常用操作命令汇总
  6. 防止网页被嵌入框架的代码
  7. 全网唯一C++调用由com组件生成的dll教程
  8. 每 1000 行代码有 14 个安全缺陷,开源软件的安全令人堪忧
  9. 白板推导系列Pytorch-隐马尔可夫模型-学习问题
  10. apache基本配置
  11. java转盘抽奖代码_Java 实现大转盘抽奖
  12. 教你用好手中的McAfee 杀毒软件和McAfee 企业集中管理工具EPO
  13. 项目管理软件浮出水面(转)
  14. 计算机12点自动关机,电脑怎么设置定时自动关机命令 电脑设置定时关机方法【图文】...
  15. Mimics 21安装
  16. 上位机和下位机的区别是什么
  17. 微信背单词小程序——小鸡单词
  18. nginx 屏蔽某些ip,防止有些人刷接口攻击
  19. 推荐基于深度学习实时同步生成2D动画口型算法
  20. 凝思(linx)系统ntp服务

热门文章

  1. 2021年大数据常用语言Scala(三十五):scala高级用法 提取器(Extractor)
  2. [FaceBook]测试、发布和分享小游戏
  3. Android 自定义View —— Paint
  4. Android TextView 中间添加划线与 底部添加划线
  5. Java设计模式:观察者模式
  6. 微信小程序页面之间数据传递
  7. Binary XML file line #98: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lan
  8. Kubernetes 网络排错指南
  9. bootstap 表格自动换行 截取超长数据
  10. 根据进程名杀死进程 -kill进程名