OpenCV 官方文档的组织结构

OpenCV (开源计算机视觉库:http://opencv.org) 是一个开源库,它包含了几百个计算机视觉算法。学习 OpenCV 库最权威的资料无疑就是 OpenCV 的官方文档了。

OpenCV 官方提供的文档比较齐全,这些文档主要有两种形式,一是教程,就像书或文章一样,会以 OpenCV 的某个模块或接口为主题,较为详细地说明基本原理,OpenCV 的 API 用法,并提供示例代码和说明;二是 API 参考,会逐个类逐个函数接口的进行说明。要学习 OpenCV,教程形式的官方文档无疑是最好的选择;但日常开发中,一时想不起来某个函数接口的签名及语义,想不起来某个类有哪些函数接口,则翻找 API 参考形式的官方文档更好。

这里梳理一下 OpenCV 官方文档的组织结构,让我们可以对 OpenCV 提供了什么有一个大概的了解,同时又能为我们队 OpenCV 的学习提供一个路线图。

在 OpenCV 官方网站中,库的 Releases 页面 列出了 OpenCV 各个版本的一些关键信息,如源码的下载链接,对应版本的 GitHub 链接,不同操作系统平台的二进制安装包下载链接等,当然也包括文档入口的链接。

这里以当前最新的发行版 4.5.5 为例,看一下OpenCV 官方文档的组织结构。

OpenCV 4.5.5 版文档的入口页面位于 https://docs.opencv.org/4.5.5/,这个页面的组织如下:

OpenCV 官方文档的组成包括一份介绍文档(介绍),4 个教程(OpenCV 教程OpenCV-Python 教程OpenCV.js 教程contrib 模块教程),一份 FAQ 文档(经常问的问题 (FAQ)),一份参考资料文档(参考文献),以及主要模块和额外模块的 API 参考。

主要模块和额外模块的 API 参考,适合用来在开发过程中检索各个模块的 API,对于学习,这些文档会显得非常枯燥且让人迷惑。

参考资料文档(参考文献)包含了许多参考文献的说明,其中一部分有网页链接。这份文档作为查找扩展阅读材料的入口有一定价值。

介绍文档(介绍)包含对 OpenCV 整个项目的结构,以及 API 概念的说明,学习 OpenCV 必读材料

contrib 模块教程)的质量有点参差不齐,其中不同模块的教程,其繁简程度也大为不同,有些非常简略,有些则很详细。对于要学习还没有进入正式版的 contrib 模块的同学,还是非常有价值的。

OpenCV 官方提供的三份教程是针对不同平台学习 OpenCV 的绝佳材料。OpenCV 教程 对 OpenCV 的主要数据结构,主要概念,及各个模块的 API 都有着很详细的说明,示例代码主要用 C++ 编程语言。

OpenCV-Python 教程 为 Python 开发者提供了关于 OpenCV 的详尽介绍。

OpenCV.js 教程 则为 JavaScript 开发者提供了关于 OpenCV 的详尽介绍。

OpenCV 教程 的内容

OpenCV 官方提供的三份教程中,OpenCV 教程 值得好好学习一下,另两份教程则可以根据自己所用的开发语言选择是深入学习,还是弃之不用。

这里再看下 OpenCV 教程 的主要内容:

OpenCV 教程OpenCV 介绍 部分,非常详细地介绍了为各种各样的平台搭建 OpenCV 开发环境的过程。OpenCV 教程 的其余部分,则分模块介绍 OpenCV 的各项功能。

OpenCV 教程OpenCV 介绍 部分的内容如下:

Linux

Windows

Java & Android

其它平台

基础用法

  • 图像入门 - 我们将学习如何从文件中加载图像,并使用 OpenCV 显示它

杂项

OpenCV 教程OpenCV 介绍 部分对于开发环境搭建过程的详细说明,无疑是我们学习 OpenCV 过程中绕不过去的第一步的宝贵参考。

OpenCV-Python 教程 的内容

当前 Python 在 AI 和计算机视觉领域应用广泛,OpenCV-Python 教程 对于 Python 计算机视觉学习和开发的同学极具价值。这里看一下这份教程的内容:

  • OpenCV 介绍

    学习如何在计算机上搭建 OpenCV-Python 开发环境!

  • OpenCV 中的 Gui 功能

    在这里,我们将学习如何显示和保存图像和视频、控制鼠标事件和创建轨迹栏。的第一步的宝贵

  • 核心操作

    在本节中,我们将学习图像的基本操作,如像素编辑、几何变换、代码优化、一些数学工具等。的第一步的宝贵

  • OpenCV 中的图像处理

    在这一节,我们将学习 OpenCV 中不同的图像处理功能。

  • 特征探测和描述

    在本节中,我们将了解特征探测器和描述符

  • 视频分析 (video 模块)

    在本节中,我们将学习使用对象跟踪等视频的不同技术。

  • 相机校准和 3D 重建

    在本节中,我们将学习相机校准、立体成像等。

  • 机器学习

    在本节中,我们将学习 OpenCV 中不同的机器学习功能。

  • 计算摄影

    在本节中,我们将学习不同的计算摄影技术,例如图像去噪等。

  • 目标探测 (objdetect 模块)

    在本节中,我们将学习目标检测技术,例如人脸检测等。

  • OpenCV-Python 绑定

    在本节中,我们将看一下 OpenCV-Python 绑定是如何生成的。

这份教程的结构与 OpenCV 教程 的结构类似,其中的 OpenCV 介绍 部分同样介绍了开发环境搭建,其余各部分介绍 OpenCV 的各个模块。

OpenCV-Python 教程OpenCV 介绍 部分内容如下:

基于官方文档的 OpenCV 学习路线图

官方文档中的 API 参考部分并没有太大的学习价值,可以基于官方提供的几份教程,具体来说,是 OpenCV 教程OpenCV-Python 教程,建立自己的 C++ 和 Python 编程语言的 OpenCV 学习路线图。这两份教程介绍的主题差别不是很大,但不同主题在各份教程中的编排顺序略有不同。

这里以 开发环境搭建 -> OpenCV 的结构和基本概念 -> OpenCV 库提供的开发实用工具 -> OpenCV 核心操作和功能 -> 图像处理 -> 其它 OpenCV 主要模块 -> OpenCV contrib 模块 这样的思路来制定学习路线图:

  1. 搭建 Python 和 C++ 的开发环境

通过学习教程的 OpenCV 介绍 部分可以完成。

OpenCV-Python Tutorials - Install OpenCV-Python in Ubuntu
OpenCV Tutorials - Installation in Linux
OpenCV Tutorials - Using OpenCV with Eclipse (plugin CDT)
OpenCV Tutorials - Using OpenCV with gcc and CMake

  1. OpenCV 项目的结构和 API 概念

OpenCV 4.5.5 版文档的入口页面中的 介绍 部分。

  1. 应用程序实用工具

应用程序实用工具 (highgui,imgcodecs,videoio 模块) (OpenCV 教程)
OpenCV 中的 Gui 功能 (OpenCV Python 教程)

  1. 核心功能和操作

核心功能 (core 模块) (OpenCV 教程)
核心操作 (OpenCV Python 教程)

  1. 图形处理

图像处理 (imgproc 模块) (OpenCV 教程)
OpenCV 中的图像处理 (OpenCV Python 教程)

  1. 相机校准和 3D 重建

相机校准和 3D 重建 (calib3d 模块) (OpenCV 教程)
相机校准和 3D 重建 (OpenCV Python 教程)

  1. 特征探测和描述 - 特征框架 (feature2d 模块)

2D 特征框架 (feature2d 模块) (OpenCV 教程)
特征探测和描述 (OpenCV Python 教程)

  1. 计算摄影

其它教程 (ml,objdetect,photo,stitching,video) (OpenCV 教程)
计算摄影 (OpenCV Python 教程)

这其中包含图像去噪、图像修补,和高动态范围 (HDR) 等内容。

  1. 目标检测

其它教程 (ml,objdetect,photo,stitching,video) (OpenCV 教程)
目标探测 (objdetect 模块) (OpenCV Python 教程)

  1. 视频分析

其它教程 (ml,objdetect,photo,stitching,video) (OpenCV 教程)
视频分析 (video 模块) (OpenCV Python 教程)

  1. 机器学习

其它教程 (ml,objdetect,photo,stitching,video) (OpenCV 教程)
机器学习 (OpenCV Python 教程)

  1. 深度神经网络

深度神经网络 (dnn 模块) (OpenCV 教程)

  1. 图 API

图 API (gapi 模块) (OpenCV 教程)

  1. GPU 加速的计算机视觉

GPU 加速的计算机视觉 (cuda 模块) (OpenCV 教程)

  1. 背景分割

bgsegm 模块教程 (contrib 模块教程)

  1. 超分辨率

使用 CNN 的超分辨率 (contrib 模块教程)

OpenCV 的这些教程,与一般的技术书还是有些不一样,它们并不是某个人或某个组织按照特定的规划,组织编写的结构严谨的教材,而是不同作者针对不同主题写就的文章的合集。

对于 OpenCV 具体模块的学习,不需要严格按照上面的路线图来走,具体模块学习的先后,可以按照自己的开发需要进行。

Done。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值