OpenCV官方文档

教程说明:


OpenCV(开源计算机视觉库)是一个开源的BSD许可库,其中包含数百种计算机视觉算法。该文档描述了所谓的OpenCV 2.x API,它本质上是一个C ++ API,与基于C的OpenCV 1.x API相反。

OpenCV具有模块化结构,这意味着该软件包包含几个共享或静态库。提供以下模块:

  • 核心功能 - 定义基本数据结构的紧凑型模块,包括密集的多维数组Mat和所有其他模块使用的基本功能。
  • 图像处理 - 包括线性和非线性图像滤波,几何图像变换(调整尺寸,仿射和透视扭曲,通用的基于表的重新映射),色彩空间转换,直方图等的图像处理模块。
  • 视频 - 包括运动估计,背景减除和对象跟踪算法的视频分析模块。
  • calib3d - 基本多视图几何算法,单和立体相机校准,对象姿态估计,立体声对应算法和3D重建的元素。
  • features2d - 显着特征检测器,描述符和描述符匹配器。
  • objdetect - 检测对象和预定义类的实例(例如,面部,眼睛,杯子,人,汽车等)。
  • highgui - 一个易于使用的界面,简单的UI功能。
  • 视频I / O - 视频采集和视频编解码器的易于使用的界面。
  • gpu - 来自不同OpenCV模块的GPU加速算法。
  • ...一些其他帮助模块,如FLANN和Google测试包装器,Python绑定等。

该文档的其他章节描述了每个模块的功能。但首先,请确保熟悉库中使用的常见API概念。

OpenCV简介

OpenCV 是 Intel 开源计算机视觉库。它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。

OpenCV 拥有包括 300 多个C函数的跨平台的中、高层 API。它不依赖于其它的外部库——尽管也可以使用某些外部库。

OpenCV 对非商业应用和商业应用都是免费(FREE)的。(细节参考 license)。

OpenCV 为Intel Integrated Performance Primitives (IPP) 提供了透明接口。 这意味着如果有为特定处理器优化的的 IPP 库, OpenCV 将在运行时自动加载这些库。

OpenCV特点

  • 跨平台:WindowsLinuxAndroid
  • 开源免费,无论商业与否
  • 高效快速,使用方便

OpenCV版本信息

  • 1999年1月,CVL项目启动。主要目标是人机界面,能被UI调用的实时计算机视觉库,为Intel处理器做了特定优化。
  • 2000年6月,第一个开源版本OpenCV alpha 3发布。
  • 2000年12月,针对linux平台的OpenCV beta 1发布。
  • 2006年,支持Mac OS的OpenCV 1.0发布。
  • 2009年9月,OpenCV 1.2(beta2.0)发布。
  • 2009年10月1日,Version 2.0发布。
  • 2010年12月6日,OpenCV 2.2发布。
  • 2011年8月,OpenCV 2.3发布。
  • 2012年4月2日,发布OpenCV 2.4。
  • 2014年8月21日,发布OpenCv 3.0 alpha。
  • 2014年11月11日,发布OpenCV 3.0 beta。
  • 2015年6月4日,发布OpenCV 3.0。
  • 2016年12月,发布OpenCV 3.2版(合并969个修补程序,关闭478个问题)。
  • 2017年8月3日,发布OpenCV 3.3版(最重要的更新是把DNN模块从contrib里面提到主仓库),大大提高了深度学习模块和大量的优化。

编程语言

《Java 教程》

本教程来源

官网:http://docs.opencv.org/master/

温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

OpenCV教程

OpenCV高级GUI和媒体(highgui模块)

OpenCV图像输入和输出(imgcodecs模块)

对象检测(objdetect模块)

计算摄影(照片模块)

图像拼接(拼接模块)

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }