脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - OpenCV基于ORB算法实现角点检测

OpenCV基于ORB算法实现角点检测

2022-08-01 14:27ʚVVcatɞ Python

这篇文章主要为大家详细介绍了OpenCV基于ORB算法实现角点检测,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了OpenCV基于ORB算法实现角点检测的具体代码,供大家参考,具体内容如下

ORB算法是FAST算法和BRIEF算法的结合,ORB可以用来对图像中的关键点快速创建特征向量,并用这些特征向量来识别图像中的对象。

实例化ORB

?
1
orb = cv.ORB_create(nfeatures)

参数:

  • nfeatures:特征点的最大数量

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

?
1
kp, des = orb.detectAndCompute(gray, None)

参数:

  • gray:进行关键点检测的图像(灰度图像)

返回:

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

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

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

参数:

  • image: 原始图像
  • keypoints:关键点信息,将其绘制在图像上
  • outputimage:输出图片,可以是原始图像
  • color:颜色设置,通过修改(b,g,r)的值,更改画笔的颜色,b=蓝色,g=绿色,r=红色。
  • flags:绘图功能的标识设置

1、cv2.DRAW_MATCHES_FLAGS_DEFAULT:创建输出图像矩阵,使用现存的输出图像绘制匹配对和特征点,对每一个关键点只绘制中间。
2、cv2.DRAW_MATCHES_FLAGS_DRAW_OVER_OUTIMG:不创建输出图像矩阵,而是在输出图像上绘制匹配对。
3、cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS:对每一个特征点绘制带大小和方向的关键点图形。
4、cv2.DRAW_MATCHES_FLAGS_NOT_DRAW_SINGLE_POINTS:单点的特征点不被绘制。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import cv2 as cv
from matplotlib import pyplot as plt
 
# 1.图像读取
img = cv.imread("1.jpg")
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
 
# 2.ORB角点检测
# 2.1实例化ORB对象
orb = cv.ORB_create(nfeatures=1000)
 
# 2.2 检测关键点,并计算特征描述符
kp, des = orb.detectAndCompute(gray, None)
 
print(des.shape)
 
# 3.将关键点检测在图像上
img2 = cv.drawKeypoints(img, kp, None, flags=0) # 也可以添加 color 参数指定图像显示关键点的颜色,例如 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()

OpenCV基于ORB算法实现角点检测

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/qq_44989881/article/details/116156729

延伸 · 阅读

精彩推荐
  • PythonPython运维之获取系统CPU信息的实现方法

    Python运维之获取系统CPU信息的实现方法

    今天小编就为大家分享一篇Python运维之获取系统CPU信息的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    grey_csdn7342021-03-03
  • PythonFlask 使用Gunicorn部署服务介绍

    Flask 使用Gunicorn部署服务介绍

    这篇文章主要分享了 Flask 使用Gunicorn部署服务介绍,Flask 虽然自带 Web 服务器,但是该服务器性能较低,是单进程单线程模型,原本是供开发测试使用。所...

    tigeriaf8682022-03-08
  • Python对Python+opencv将图片生成视频的实例详解

    对Python+opencv将图片生成视频的实例详解

    今天小编就为大家分享一篇对Python+opencv将图片生成视频的实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    q371242379672021-05-12
  • PythonPython给图像添加噪声具体操作

    Python给图像添加噪声具体操作

    在本文里我们给大家整理了关于Python如何给图像添加噪声的相关知识点以及操作步骤,需要的朋友们学习下。...

    Python教程网14212021-06-04
  • Pythondjango中forms组件的使用与注意

    django中forms组件的使用与注意

    这篇文章主要给大家介绍了关于django中forms组件的使用与注意的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用django具有一定的参考学...

    lemon4062021-08-04
  • Pythonpython中退出多层循环的方法

    python中退出多层循环的方法

    这篇文章主要介绍了python中退出多层循环的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下...

    你说的都好12762021-04-22
  • PythonPython之字典对象的几种创建方法

    Python之字典对象的几种创建方法

    这篇文章主要介绍了Python之字典对象的几种创建方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们...

    叫我王员外就行5612020-10-01
  • PythonPython异步爬虫实现原理与知识总结

    Python异步爬虫实现原理与知识总结

    之前有很多小伙伴想看Python异步爬虫的有关知识总结,这次它来了,文中有非常详细的代码示例与注释,即使对刚开始学python的小伙伴也很友好,,需要的朋友可...

    amcomputer6432021-10-29