opencv手册_OpenCV组织结构框图

本文详细介绍了OpenCV的组织结构,从操作系统层到硬件优化层,包括核心模块如Core、Imgproc,以及 contrib 模块中的高级功能。OpenCV致力于商业和研究用途,提供丰富的文档和教程资源,支持多种平台和硬件加速。此外,还提到了opencv_contrib库中的扩展功能,如Dnn、Face和Text等。
摘要由CSDN通过智能技术生成

OpenCV是分层构建的。顶部是OpenCV运行的操作系统。中间是语言和示例应用程序。再往下是opencv_contrib中的代码,主要包含更高级别的功能。之后是OpenCV的核心,最底层的是各种硬件优化硬件加速层(HAL)。图1是opencv的组织架构。

0dd288eea889d1f77532b52a78517803.png

图1

如果在英特尔处理器上可用,OpenCV将利用英特尔的IPP库, 速度的提高是相当大的。

虽然GaryBradski在英特尔创立了OpenCV,但OpenCV一直致力于促进商业和研究用途;这是它的使命。因此它是开放和免费的,并且代码本身可以被用于或嵌入(全部或部分)在其他应用程序中,无论是商业还是研究。它不会强制您的应用程序代码是开放的或免费的。

下载和安装

OpenCV的下载和安装已经在以前说过了,可以参考前面的文章,这里就不提了。

OpenCV的主要文档是http://opencv.org上提供的HTML文档。

OpenCV2.x提供了完整的参考手册和一系列教程,全部为PDF格式; 检查opencv / doc。从OpenCV3.x开始,没有脱机文档了。

http://opencv.org大量的文档以及wiki上提供的文档,分为以下几个主要部分:

Reference

本节包含功能,参数以及如何使用它们的一些信息。

Tutorials

有大量的教程集合; 这些告诉你如何完成各种事情。也有基本的教程,比如如何在各种平台上安装OpenCV或创建OpenCV项目,以及更多高级主题,如背景扣除物体检测。

QuickStart

这是一个教程子集,只包含帮助您在特定平台上启动和运行的子集。

CheatSheet

这是一个单独的.pdf文件,其中包含几乎是整个库的引用。

Wiki

这个wiki包含了你可能想要的一切。这是您可以找到新闻,公开问题,错误跟踪以及无数更深入的主题,比如如何成为OpenCV的贡献者。

Q&A

这是数以千计的人们所要求和回答的问题的庞大档案。你可以去那里问OpenCV社区的问题,或者通过回答他们的问题来帮助他人。

所有这些都可以通过OpenCV.org主页上的文档访问。OpenCV的模块是库的主要组织结构。库中的每个函数都是一个模块的一部分。以下是目前的模块:

Core

Core包含所有基本对象类型及其基本操作部分。

Imgproc

图像处理模块,包含图像的基本转换,滤波器和类似的卷积运算。

highgui

该模块包含用户界面功能,可用于显示图像或进行简单的用户输入。它可以被认为是一个非常轻量级的窗口UI工具包。

Video

视频库,包含需要读取和写入视频流的功能。

calib3d

该模块包含需要校准单个摄像机以及立体或多像素阵列的算法实现。

features2d

该模块包含用于检测,描述和匹配关键点特征的算法。

Objdetect

该模块包含用于检测特定对象(如面部或行人)的算法。还可以训练探测器以检测其他物体。

Ml

机器学习库,本身是一个完整的库,并且包含大量的机器学习算法,这些算法实现的方式与OpenCV的数据结构一起工作。

Flann

FLANN代表“用于近似最近邻的快速库”。

gpu

GPU库包含大部分其他库函数的实现,这些函数经过优化,可在CUDA GPU上运行。还有一些功能仅用于GPU操作。其中的一些提供了优异的结果,但需要足够的计算资源,以便在非GPU硬件上实施。

Photo

包含对计算摄影有用的工具。

Stitching

整个模块实现了复杂的图像拼接管道。

nonfree

OpenCV包含一些算法的实现,这些算法获得专利或者受到使用限制。

contrib

该模块包含尚未整合到库中的新内容。

legacy

该模块包含尚未从库中完全放弃的旧含函数。

ocl

它实现了开放并行编程的KhronosOpenCL标准。ocl模块旨在提供可在任何GPU或其他具有Khronos功能的并行设备上运行的实现。

OpenCV扩展库

在OpenCV中,库已经分为两部分:opencv和opencv_contrib, 前者由核心OpenCV团队维护,包含稳定代码,而后者不太成熟,主要由社区维护和开发,可能有部分属于非OpenCV许可证,可能包含专利算法。以下是opencv_contrib库中的一些模块

Dnn

深度神经网络

Face

人脸识别

Text

文本检测和识别; 可以选择使用开源OCR Tesseract作为后端

Rgbd

处理使用Kinect和其他深度传感器获得的RGB +深度图(或仅使用立体对应算法进行计算)

Bioinspired

生物启发的视觉

ximgproc,xphoto

先进的图像处理和计算摄影算法

Tracking

对象跟踪算法

可移植性

OpenCV最初是由任何兼容的C ++编译器编写的。这意味着C和C++代码必须是相当标准的,才能使跨平台支持更加容易。OpenCV已被移植到几乎所有的商业系统中,从亚马逊云和40核心英特尔至强融核到树莓派和机器狗。

edff90b44522298983e0938cd348a560.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值