【学习OpenCV4】OpenCV4入门介绍
本文内容大部分来自图书《学习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.org/
Github链接:https://github.com/opencv/opencv
离线文档:https://docs.opencv.org/(可以下载文档压缩包)
在线文档:https://docs.opencv.org/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入门介绍相关推荐
- 1.Libgdx扩展学习之Box2D_入门介绍
文章中涉及的很多概念,都是来自<Box2D中文手册>.有统一的解释方便理解. Box2D简单介绍 Box2D 是一个用于游戏的 2D 刚体仿真库, 是用可移植的C++写成的.程序员可以在他 ...
- OpenCV4 快速入门笔记
OpenCV4 快速入门 (学习笔记 全) Excerpt <OpenCV4 快速入门>学习笔记 第1章 基础知识 1.1 基础结构介绍 作者博客https://blog.csdn.net ...
- 独家 | 集成学习入门介绍
作者:Jason Brownlee 翻译:wwl 校对:王琦 本文约3300字,建议阅读8分钟. 本文介绍了我们在生活中的许多决定包括了其他人的意见,由于群体的智慧,有的时候群体的决策优于个体.在机器 ...
- 干货 :集成学习入门介绍
作者:Jason Brownlee 翻译:wwl 校对:王琦 本文约3300字,建议阅读8分钟. 本文介绍了我们在生活中的许多决定包括了其他人的意见,由于群体的智慧,有的时候群体的决策优于个 ...
- 对学习Eclipse的思考之基本入门介绍
Eclipse 是现在比较常用的Java 的集成开发环境,下面对其进行简单的入门介绍如下: Eclipse 是一个开放源代码的.基于 Java 的可扩展开发平台. Eclipse 是 Java 的集成 ...
- ZipKin原理学习--ZipKin入门介绍
ZipKin入门介绍 Zipkin是一款开源的分布式实时数据追踪系统(Distributed Tracking System),基于 Google Dapper的论文设计而来,由 Twitter 公司 ...
- 学习Mysql过程中拓展的其他技术栈:Docker入门介绍
一.Docker的介绍和安装 1. Docker是什么 百度百科的介绍: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linu ...
- ECC加密算法入门介绍
作者 : ZMWorm[CCG] E-Mail: zmworm@sohu.com 主页 : Http://ZMWorm.Yeah.Net/ 前言 同RSA(Ron Rivest,Adi S ...
- 谷歌大脑科学家亲解 LSTM:一个关于“遗忘”与“记忆”的故事 本文作者:奕欣 2017-01-14 09:46 导语:AI科技评论保证这是相对通俗易懂的一篇入门介绍了,看不懂的话欢迎关注「AI 科技
谷歌大脑科学家亲解 LSTM:一个关于"遗忘"与"记忆"的故事 本文作者:奕欣 2017-01-14 09:46 导语:AI科技评论保证这是相对通俗易懂的一篇入 ...
- [Embeding-2]文本表示学习-词嵌入入门理解
转载自Scofield Phil: http://www.scofield7419.xyz/2017/09/25/文本表示学习-词嵌入入门理解/ 之前一段时间,在结合深度学习做NLP的时候一直有思考一 ...
最新文章
- matlab-代数方程
- vector拷贝复制方法
- 多代理集群调度:可伸缩性和灵活性
- Spring Boot:(四)开发Web应用之JSP篇
- [JSOI2008]火星人 hash+splay
- java新闻发布系统
- 解决多旅行商(MTSP)的分组遗传算法(GGA-SS)
- Ubuntu-Chrome 更新Flash插件
- (运存扩展器)Android手机内存扩展软件RAMEXPANDER使用教程
- [bzoj2563] 阿狸和桃子的游戏 贪心
- 使用WebUploader实现图片上传
- 王者荣耀——bat批处理文件,自动刷金币版(脱胎于30行Python代码刷金币版),Windows双击即可运行!
- 记一道MISC图片题(拖延癌晚期)
- New Document
- 阿里云中间件ARMS介绍
- HBuilder X下载安装,运行微信小程序教程(官网)
- 简单网络拓扑及相应的配置
- 对网络日志分析的几个方面
- STM32使用硬件定时器6制作us级别延时函数
- 简单描述计算机主机不启动故障,电脑启动不了是什么问题