目录

一、基础理论

1、原理

2、BRIEF算法介绍

1、介绍

2、过程

3、API介绍

1、ORB_create函数(初始化orb检测器)

2、orb.detectAndCompute函数(检测关键点并计算)

3、cv.drawKeypoints函数(绘制关键点)

二、代码

三、效果


一、基础理论

1、原理

ORB算法结合了FastBrief算法,提出了构造金字塔为Fast特征点添加了方向,从而使得关键点具有了尺度不变性旋转不变性。具体流程描述如下:

构造尺度金字塔,金字塔共有n层,与SIFT不同的是,每一层仅有一幅图像。第s层的尺度为:

 (每层图像大小和尺度有关)

1、在不同的尺度上利用Fast算法检测特征点,采用Harris角点响应函数根据角点的响应值排序选取前N个特征点,作为本尺度的特征点
2、计算特征点的主方向,计算以特征点为圆心半径为r的圆形邻域内的灰度质心位置,将从特征点位置质心位置方向特征点的主方向

计算方法:  

质心位置:

主方向:

2、BRIEF算法介绍

1、介绍

BRIEF是一种特征描述子提取算法并非特征点的提取算法一种生成二值化描述子的算法,不提取代价低,匹配只需要使用简单的汉明距离(Hamming Distance)利用比特之间的异或操作就可以完成。因此,时间代价低,空间代价低,效果还挺好是最大的优点

2、过程

1、图像滤波︰原始图像中存在噪声时,会对结果产生影响,所以需要对图像进行滤波,去除部分噪声
2、选取点对以特征点为中心取S*S的邻域窗口在窗口内随机选取N组点对, 一般N=128,256,512,默认是256,关于如何选取随机点对,提供了五种形式,结果如下所示:

3、API介绍

1、ORB_create函数(初始化orb检测器)

cv2.ORB_create(nfeatures = 500,scaleFactor = 1.2,nlevels = 8,edgeThreshold = 31,firstLevel = 0,WTA_K = 2,scoreType = HARRIS_SCORE,patchSize = 31,fastThreshold = 20)

参数:

nfeatures:特征点最大数量

返回:

orb对象

orb = cv.ORB_create()

2、orb.detectAndCompute函数(检测关键点并计算)

kp , des= orb.detectAndCompute(img, None)

参数:
img:进行关键点检测的图像

返回:
kp关键点信息,包括位置,尺度,方向信息
des:关键点描述符,每个关键点BRIEF特征向量,二进制字符串

kp , des= orb.detectAndCompute(img, None)       #返回关键点信息及描述符

3、cv.drawKeypoints函数(绘制关键点)

cv.drawKeypoints (image,keypoints,outputimage, color,flags)
img = cv.drawKeypoints(img, kp, None, color=(0,255,0), flags=0)

二、代码

# ORB角点检测
import cv2 as cvimg = cv.imread('Resource/1.jpg')
cv.imshow("img", img)# 1、初始化ORB检测器
orb = cv.ORB_create(200)
# 2、用ORB寻找关键点
kp , des= orb.detectAndCompute(img, None)       #返回关键点信息及描述符
# 3、仅绘制关键点的位置,而不绘制大小和方向
dst = cv.drawKeypoints(img, kp, None, color=(0,255,0), flags=0)cv.imshow("dst", dst)cv.waitKey(0)

三、效果

OpenCV(24)角点检测3 -- ORB相关推荐

  1. MFC+OPENCV实现角点检测

    MFC+OPENCV实现角点检测: // 角点检测 // 根据<基于OpenCV的计算机视觉技术实现>#define max_corners 200; // 限定的最大角点数IplImag ...

  2. OpenCV ChArUco角的检测

    OpenCV ChArUco角的检测 ChArUco角的检测 目标 源代码 ChArUco Board创建 ChArUco板检测 拍摄输入图像 读取相机校准参数(仅用于相机校准检测) 检测标记 ChA ...

  3. 【opencv】角点检测——虚线表格

    [opencv]角点检测--虚线表格 处理对象--虚线表格 处理方法--角点检测 Harris角点检测 函数解读 处理结果 处理对象--虚线表格 把之前做研电赛的东西做一点小的分享,先给大家看一下所处 ...

  4. Opencv java 角点检测 preCornerDetect(15)

    之前我们讲过一节的角点检测,是用的cornerHarris 这个方法,今天我们介绍另外的一种方法preCornerDetect 进行角点检测 效果 首先我们看一下角点检测的效果: 代码 那么代码上应该 ...

  5. OpenCV Fast角点检测

    FAST是一种用于角点检测的算法,该算法的原理是取图像中检测点,以改点为圆心的周围邻域内像素点判断监测点是否为角点. OpenCV中的FAST检测算法是用传统方法实现的. 实例化fast fast = ...

  6. opencv 实现角点检测 Shi-Tomasi角点检测

    角点检测概述 角点检测概述 Harris角点检测算法手动实现 Harris角点检测算法手动实现 opencv中使用Harris角点检测 opencv中使用Harris角点检测 opencv中使用 Sh ...

  7. OpenCV实现角点检测(cornerHarris)

    1.概述 案例:使用cornerHarris实现角点检测,并调节其参数看看不同参数下的不同效果 技术:Qt+C+++OpenCV 角点检测函数介绍: cornerHarris(src,dst,bloc ...

  8. opencv harris 角点检测

    一.图像特征的分类 [OpenCV入门教程之十六]OpenCV角点检测之Harris角点检测_[浅墨的游戏编程Blog]毛星云(浅墨)的专栏-CSDN博客_基于轮廓曲线的角点检测 下面部分图像来自与B ...

  9. opencv棋盘格角点检测原理总结

    第一步,局部平均自适应阈值化方法对亮度不均匀情况适应性强,因此用该方法对图像二值化,均衡化后得到了理想的门限,效果如图2所示. 第二步,图像膨胀分离各个黑块四边形的衔接,由于膨胀的是白色像素点,因此能 ...

最新文章

  1. javascript 显示时间
  2. 4dda在linux中的意思,Evvail | MaxQuant-蛋白质组DDA数据分析金标准 | Omics - Hunter
  3. 平凡的世界和你我 (武惠良与杜丽丽)
  4. html文本框自动赋值,js给文本框赋值 value与innerHTML
  5. spring学习(8):log4j.properties 详解与配置步骤
  6. JAVA Swing 事件监听
  7. 公共方法之运算符,len,del,max,min,range,enumerate
  8. 【动态规划】路径dp:蓝桥2020: 数字三角形
  9. ASM磁盘超过disk_repair_time导致磁盘状态为forcing
  10. Java基础常见笔试题总结
  11. AIDA64 硬件规格、系统信息查询工具附带序列号
  12. c语言自评报告怎么写,大学生学生自评报告怎么写
  13. 图算法图神经网络归纳总结
  14. 成品系统搭建 一周就可以上线运营
  15. Android虚拟机、模拟器识别
  16. 由祖冲之圆周率洞悉——古中国数学家的计算力真是惊人
  17. 微软官方工具_微软官方英文写作在线工具,完全免费
  18. mysql date 24小时制_SpringBoor连接mysql数据库取数据库中时间格式是12小时制的时间,如何显示成24小时制...
  19. vue-cl 有一些静态资源不想经过webpack打包那么应该public 下面
  20. Win10 1809美化

热门文章

  1. 打字游戏--飞机大战
  2. 微信小程序开发工具的基本应用
  3. Ubuntu 安装 CUDA 和 cuDNN 详细步骤
  4. RabbitMQ 入门系列(9)— Python 的 pika 库常用函数及参数说明
  5. 程序猿,凭什么让你拿二十万
  6. HTML页面加载和解析流程详细介绍
  7. 《需求分析》读后感之二
  8. JavaScript基本知识
  9. 计算机艺术未来发展趋势,计算机技术对现代艺术设计的影响
  10. 《OpenCV3编程入门》学习笔记10 角点检测(一)Harris角点检测