opencv官方api参数说明(1.OpenCV简介)

参照官网:https://opencv.org/about/OpenCV的全称是:Open Source Computer Vision Library,我来为大家讲解一下关于opencv官方api参数说明?跟着小编一起来看一看吧!

opencv官方api参数说明(1.OpenCV简介)

opencv官方api参数说明

1.OpenCV 简介

参照官网:https://opencv.org/about/

OpenCV的全称是:Open Source Computer Vision Library

OpenCV(开源计算机视觉库)是一个开源的计算机视觉和机器学习软件库。OpenCV 旨在为计算机视觉应用程序提供通用基础架构,并加速机器感知在商业产品中的使用。作为 BSD 许可的产品,OpenCV 使企业可以轻松地使用和修改代码。

该库拥有 2500 多种优化算法,其中包括一整套经典和最先进的计算机视觉和机器学习算法。这些算法可用于检测和识别人脸、识别对象、对视频中的人类行为进行分类、跟踪摄像机运动、跟踪移动对象、提取对象的 3D 模型、从立体摄像机生成 3D 点云、将图像拼接在一起以生成高分辨率整个场景的图像,从图像数据库中找到相似的图像,从使用闪光灯拍摄的图像中去除红眼,跟踪眼球运动,识别场景并建立标记以将其与增强现实叠加等。OpenCV拥有超过47000人的用户社区和估计下载量超过 1800 万. 该图书馆被公司、研究团体和政府机构广泛使用。

除了谷歌、雅虎、微软、英特尔、IBM、索尼、本田、丰田等使用该库的成熟公司外,还有许多初创公司,如 Applied Minds、VideoSurf 和 Zeitera,广泛使用 OpenCV。OpenCV 部署的用途涵盖从拼接街景图像到以色列监控视频中的入侵检测,在中国监控矿山设备,帮助机器人在 Willow Garage 中导航和捡拾物体,在欧洲检测游泳池溺水事故,在欧洲运行互动艺术西班牙和纽约,在土耳其检查跑道上是否有碎片,在世界各地的工厂检查产品上的标签,在日本进行快速人脸检测。

它具有 C 、Python、Java 和 MATLAB 接口,并支持 Windows、Linux、 Android 和 Mac OS。OpenCV 主要倾向于实时视觉应用程序,并在可用时利用 MMX 和 SSE 指令。目前正在积极开发功能齐全的 CUDA和 OpenCL接口。有超过 500 种算法和大约 10 倍的函数组成或支持这些算法。OpenCV 是用 C 本地编写的,并具有与 STL 容器无缝协作的模板化界面。

2.OpenCV版本发布情况

OpenCV 1.x

OpenCV 最初基于C语言开发,API也都是基于C的,面临内存管理、指针等C语言固有的麻烦。

OpenCV于1999年由Intel建立,如今由Willow Garage提供支持。OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

1999年1月,CVL项目启动。主要目标是人机界面,能被UI调用的实时计算机视觉库,为Intel处理器做了特定优化。

2000年6月,第一个开源版本OpenCV alpha 3发布。

2000年12月,针对linux平台的OpenCV beta 1发布。

期间,继续各种研究。

2006年10月1.0发布时,部分使用了C ,同时支持Python,其中已经有了random trees、boosted trees、neural nets等机器学习方法,完善对图形界面的支持。

2008年10月1.1pre1发布,使用 VS2005构建,Python bindings支持Python 2.6,Linux下支持Octave bindings,在这一版本中加入了SURF、RANSAC、Fast approximate nearest neighbor search等,Face Detection (cvHaarDetectObjects)也变得更快。

OpenCV 2.x

当C 流行起来,OpenCV 2.x发布,其尽量使用C 而不是C,但是为了向前兼容,仍保留了对C API的支持。从2010年开始,2.x决定不再频繁支持和更新C API,而是focus在C API,C API仅作备份。

2009年9月2.0 beta发布,主要使用CMake构建,加入了很多新特征、描述子等,如FAST、LBP等。

2010年4月2.1版本,加入了Grabcut等,可以使用SSE/SSE2…指令集。

2010年10月2.2版本发布,OpenCV的模块变成了大家熟悉的模样,像opencv_imgproc、opencv_features2d等,同时有了opencv_contrib用于放置尚未成熟的代码,opencv_gpu放置使用CUDA加速的OpenCV函数。

2011年6月起的2.3.x版本、2012年4月起的2.4.x版本,一面增加新方法,一面修复bug,同时加强对GPU、Java for Android、 OpenCL、并行化的支持等等,OpenCV愈加稳定完善,值得注意的是 SIFT和SURF从2.4开始被放到了nonfree 模块(因为专利)。

考虑到过渡,OpenCV 2.4.x仍在维护,不过以后可能仅做bug修复和效率提升,不再增加新功能——鼓励向3.x迁移。

OpenCV 3.x

随着3.x的发布,1.x的C API将被淘汰不再被支持,以后C API可能通过C 源代码自动生成。3.x与2.x不完全兼容,与2.x相比,主要的不同之处在于OpenCV 3.x 的大部分方法都使用了OpenCL加速。

2014年8月3.0 alpha发布,除大部分方法都使用OpenCL加速外,3.x默认包含以及使用IPP,同时,matlab bindings、Face Recognition、SIFT、SURF、 text detector、motion templates & simple flow 等都移到了opencv_contrib下(opencv_contrib不仅存放了尚未稳定的代码,同时也存放了涉及专利保护的技术实现),大量涌现的新方法也包含在其中。

2017年8月3.3版本,2017年12月开始的3.4.x版本,opencv_dnn从opencv_contrib移至opencv,同时OpenCV开始支持C 11构建,之后明显感到对神经网络的支持在加强,opencv_dnn被持续改进和扩充。

OpenCV 4.0

2018年10月4.0.0发布,OpenCV开始需要支持C 11的编译器才能编译,同时对几百个基础函数使用 "wide universal intrinsics"重写,这些内联函数可以根据目标平台和编译选项映射为SSE2、 SSE4、 AVX2、NEON 或者 VSX 内联函数,获得性能提升。此外,还加入了QR code的检测和识别,以及Kinect Fusion algorithm,DNN也在持续改善和扩充。

简要整理:

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里面提到主仓库)

OpenCV 使用类BSDlicense,所以对非商业应用和商业应用都是免费(FREE)的。(细节参考 license)

2018年10月4.0.0发布。

官网查看:https://opencv.org/

所需文件:https://github.com/opencv/opencv/

3.精神粮食

你们是世上的光。城造在山上,是不能隐藏的。

人点灯,不放在斗底下,是放在灯台上,就照亮一家的人。

你们的光也当这样照在人前,叫他们看见你们的好行为。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页