OpenCV版本发展概述

简介: OpenCV版本发展概述

OpenCV 1.x

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

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也在持续改善和扩充。



---


参考文献:来自知乎


opencv3.0有什么较大改进?为什么会有一个大的版本号升级?


OpenCV 3 最新模块一次看个够


OpenCV3.x-OpenCL的糟糕体验


t = ((double)cv::getTickCount() - t) / cv::getTickFrequency();


std::cout << "cpu time:" << t << std::endl;


相关文章
|
2月前
|
算法 API 计算机视觉
[opencv学习笔记] jiazhigang 30讲源码C++版本(含Makefile)
[opencv学习笔记] jiazhigang 30讲源码C++版本(含Makefile)
27 0
|
11月前
|
机器学习/深度学习 并行计算 openCL
OpenCV各版本差异与演化,从1.x到4.0
最近因项目需要,得把OpenCV捡起来,登录OpenCV官网,竟然发现release了4.0.0-beata版本,所以借此机会,查阅资料,了解下OpenCV各版本的差异及其演化过程
373 0
|
计算机视觉
OpenCV交叉编译ARM版本
OpenCV交叉编译ARM版本
174 0
OpenCV交叉编译ARM版本
|
Java Linux 计算机视觉
全网首发:LINUX OpenCV编译java/jar版本注意事项
全网首发:LINUX OpenCV编译java/jar版本注意事项
320 0
|
计算机视觉 C++ Python
超详细OpenCV 教学1(python语言版本)---安装OpenCV
超详细OpenCV 教学1(python语言版本)---安装OpenCV
308 0
|
Ubuntu 计算机视觉
Ubuntu环境下ROS安装自己OPENCV版本(下)
Ubuntu环境下ROS安装自己OPENCV版本(下)
Ubuntu环境下ROS安装自己OPENCV版本(下)
|
Ubuntu Shell 开发工具
Ubuntu环境下ROS安装自己OPENCV版本(上)
Ubuntu环境下ROS安装自己OPENCV版本(上)
Ubuntu环境下ROS安装自己OPENCV版本(上)
|
Java Linux 计算机视觉
全网首发:LINUX OpenCV编译java/jar版本注意事项
全网首发:LINUX OpenCV编译java/jar版本注意事项
342 0