本文内容大部分来自图书《学习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. 1.Libgdx扩展学习之Box2D_入门介绍

    文章中涉及的很多概念,都是来自<Box2D中文手册>.有统一的解释方便理解. Box2D简单介绍 Box2D 是一个用于游戏的 2D 刚体仿真库, 是用可移植的C++写成的.程序员可以在他 ...

  2. OpenCV4 快速入门笔记

    OpenCV4 快速入门 (学习笔记 全) Excerpt <OpenCV4 快速入门>学习笔记 第1章 基础知识 1.1 基础结构介绍 作者博客https://blog.csdn.net ...

  3. 独家 | 集成学习入门介绍

    作者:Jason Brownlee 翻译:wwl 校对:王琦 本文约3300字,建议阅读8分钟. 本文介绍了我们在生活中的许多决定包括了其他人的意见,由于群体的智慧,有的时候群体的决策优于个体.在机器 ...

  4. 干货 :集成学习入门介绍

    作者:Jason Brownlee   翻译:wwl    校对:王琦 本文约3300字,建议阅读8分钟. 本文介绍了我们在生活中的许多决定包括了其他人的意见,由于群体的智慧,有的时候群体的决策优于个 ...

  5. 对学习Eclipse的思考之基本入门介绍

    Eclipse 是现在比较常用的Java 的集成开发环境,下面对其进行简单的入门介绍如下: Eclipse 是一个开放源代码的.基于 Java 的可扩展开发平台. Eclipse 是 Java 的集成 ...

  6. ZipKin原理学习--ZipKin入门介绍

    ZipKin入门介绍 Zipkin是一款开源的分布式实时数据追踪系统(Distributed Tracking System),基于 Google Dapper的论文设计而来,由 Twitter 公司 ...

  7. 学习Mysql过程中拓展的其他技术栈:Docker入门介绍

    一.Docker的介绍和安装 1. Docker是什么 百度百科的介绍: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linu ...

  8. ECC加密算法入门介绍

    作者  : ZMWorm[CCG]   E-Mail: zmworm@sohu.com   主页  : Http://ZMWorm.Yeah.Net/ 前言 同RSA(Ron Rivest,Adi S ...

  9. 谷歌大脑科学家亲解 LSTM:一个关于“遗忘”与“记忆”的故事 本文作者:奕欣 2017-01-14 09:46 导语:AI科技评论保证这是相对通俗易懂的一篇入门介绍了,看不懂的话欢迎关注「AI 科技

    谷歌大脑科学家亲解 LSTM:一个关于"遗忘"与"记忆"的故事 本文作者:奕欣 2017-01-14 09:46 导语:AI科技评论保证这是相对通俗易懂的一篇入 ...

  10. [Embeding-2]文本表示学习-词嵌入入门理解

    转载自Scofield Phil: http://www.scofield7419.xyz/2017/09/25/文本表示学习-词嵌入入门理解/ 之前一段时间,在结合深度学习做NLP的时候一直有思考一 ...

最新文章

  1. matlab-代数方程
  2. vector拷贝复制方法
  3. 多代理集群调度:可伸缩性和灵活性
  4. Spring Boot:(四)开发Web应用之JSP篇
  5. [JSOI2008]火星人 hash+splay
  6. java新闻发布系统
  7. 解决多旅行商(MTSP)的分组遗传算法(GGA-SS)
  8. Ubuntu-Chrome 更新Flash插件
  9. (运存扩展器)Android手机内存扩展软件RAMEXPANDER使用教程
  10. [bzoj2563] 阿狸和桃子的游戏 贪心
  11. 使用WebUploader实现图片上传
  12. 王者荣耀——bat批处理文件,自动刷金币版(脱胎于30行Python代码刷金币版),Windows双击即可运行!
  13. 记一道MISC图片题(拖延癌晚期)
  14. New Document
  15. 阿里云中间件ARMS介绍
  16. HBuilder X下载安装,运行微信小程序教程(官网)
  17. 简单网络拓扑及相应的配置
  18. 对网络日志分析的几个方面
  19. STM32使用硬件定时器6制作us级别延时函数
  20. 简单描述计算机主机不启动故障,电脑启动不了是什么问题

热门文章

  1. Android NDK开发(一)环境搭建及运行示例
  2. STM32H7定时器输入捕获实现电容触摸按键
  3. 加快二代支付系统建设
  4. 【python】画图保存为emf
  5. 苹果Mac怎样切换大写输入法?
  6. 数据中心断路器整定值计算(二)
  7. Drozer安装配置和报错解决指南
  8. Hadoop 原理总结
  9. PC微信逆向:破解聊天记录文件!
  10. “属你最牛” | 树莓派百变打印机