本文内容大部分来自图书《学习OpenCV 4:基于Python的算法实战》,该书是国内第一本完整介绍OpenCV4的图书,第一章有在各个平台搭建环境的介绍,后面每个章节都有对模块的导读、模块经典算法的案例介绍以及进阶阅读,适合图像处理、计算机视觉领域的初学者以及相关的工程开发人员。目录如下:
第1章 OpenCV快速入门
第2章 图像读写模块imgcodecs
第3章 核心库模块core
第4章 图像处理模块imgproc(一)
第5章 图像处理模块imgproc(二)
第6章 可视化模块highgui
第7章 视频处理模块videoio
第8章 视频分析模块video
第9章 照片处理模块photo
第10章 2D特征模块features2d
第11章 相机标定与三维重建模块calib3d
第12章 传统目标检测模块objdetect
第13章 机器学习模块ml
第14章 深度神经网络模块dnn

欢迎关注图书**《深度学习计算机视觉实战》与《学习OpenCV 4:基于Python的算法实战》**,两本书都以通俗易懂的讲解、丰富的案例帮助初学者学习视觉与图像方向的知识。欢迎关注公众号“计算机视觉与OpenCV”获取更多的学习资料。

OpenCV4入门介绍,先提供几个链接

OpenCV官网:https://opencv/
Github链接:https://github/opencv/opencv
离线文档:https://docs.opencv/(可以下载文档压缩包)
在线文档:https://docs.opencv/4.x/d9/df8/tutorial_root.html

1、OpenCV概述

OpenCV是计算机视觉中的经典库,具有跨平台和多语言支持特性,功能非常强大。
OpenCV在2000年发布第一个开源版本,到目前已经20年了。2009年,OpenCV 2.0正式版本发布。2015年,OpenCV 3.0正式版本发布。2018年,OpenCV 4.0正式版本发布。当前最新版本为OpenCV 4.5(成书日)。
在Github上,可以追溯到的最早代码版本为2.2,发布于2010年,代码结构和最新版本有些许差异,自2.4.5版本以后,形成了如今的代码结构,如下图所示。

图1
OpenCV不同版本之间的差异是因为引入最新算法、函数的完善和语言特性的丰富。OpenCV在发展过程中,逐步引入了算法加速、并行计算等先进技术,不算发展完善。目前OpenCV4有广泛应用,OpenCV3也有较多应用,OpenCV4与OpenCV3的函数兼容较好,但是OpenCV4提供了更多的特性,所以读者可以参考升级。

2、OpenCV代码结构

如图1是OpenCV的代码结构,包括9个文件夹和若干文件,各文件夹以及文件的作用如下:
3rdparty
该文件夹存放OpenCV用到的第三方库的源码或者下载脚本,如其中的libjpeg库为jpeg图片格式的解码库。(3rdparty是常见的存放第三方依赖库的文件夹名称,有的项目中将其命名为3rd,含义是相同的。)
–apps
该文件夹存放一些工具,如traincascade子目录为训练级联分类器的工具;
–cmake
该文件夹存放cmake编译生成项目工程时的依赖文件;
–data
该文件夹存放OpenCV样例用到的资源文件;
–doc
该文件夹存放文档生成的脚本以及资源文件;
–include
该文件夹包含OpenCV引入时包含的头文件,即:
#include “opencv/opencv.hpp”
–modules
该文件夹存放OpenCV算法模块,是OpenCV代码的核心部分;
–platforms
该文件夹为OpenCV跨平台提供支持,文件夹中包含交叉编译工具链以及实现跨平台编译所需的额外文件;
–samples
该文件夹存放OpenCV官方提供的样例;
–CMakeLists.txt
该文件为OpenCV cmake编译脚本。

3、OpenCV4新特性

在OpenCV 3.x基础上,OpenCV 4.x版本升级引入了如下新特性:
–语言特性:正式引入C++11的库,可以方便的使用C++11的智能指针等特性;
–新的库引入:引入OpenVINO(Open Visual Inference and Neural Network Optimization,开源视觉推理与神经网络优化库)用于计算机视觉推理与深度学习推理开发;
–算法库的扩展、重构与优化:如DNN模块引入Vulkan backend,重构opencv_stitching模块,添加了新模块G-API等;
–以前版本的问题修复:对于OpenCV的每一次版本更新,其更新的细节可以进入官网的库下载页面,点击Release Notes查看。
在Release Notes跳转进入Github中OpenCV仓库,仓库中对本次版本的更新内容有详细说明,在栏目Wiki中可以查看,如图2所示。

图2
读者可以选择版本,查看对应版本的更新打印信息(ChangeLog),了解版本内容更新情况。

更多推荐

【学习OpenCV4】OpenCV4入门介绍