最近一直在做opencv3.0的总结,想比较全面的了解一下3.0版本的功能,以及与2.x版本的区别,但是因为对2.x理解也不是很深,所以不能拿出来对比。
在此,我只是介绍一下3.0版本中各个modules的大致包含的功能,此外还有一些contribute库的程序,由于精力有限,没有跑完所有的程序,搜易还处于待完善的阶段。。。
【adas】:Contribute库
作用未知
【aruco】:Contribute库
作用未知
【bgsegm】:Contribute库
前景与背景的分析,提取目标等方法。
【bioinspired】:Contribute库
作用未知
【calib3d】:官方库
相机标定以及三维图像的重建。相机标定用于去除相机自身的缺陷导致的画面的畸变,还原真实的场景,确保计算的准确性。三维重建通常用在双目视觉(立体视觉),即两个标定后的摄像头观察同一场景,通过计算两幅画面中的相关性来计算像素的视觉深度。
【ccalib】:Contribute库
作用未知
【contrib_world】:Contribute库
为了丰富框架,里面没有什么实际的东西(起码目前没有)
【core】:官方库
核心功能模块,定义了基本的数据结构,包括最重要的Mat 类,XML的读写,OpenGL三维渲染等。
【cudaarithm / cudabgsegm / cudacodec / cudafeatures2d / cudafilters / cudaimgproc / cudalegacy / cudaobjdetect / cudaoptflow / cudastereo / cudawarping / cudev】:
cuda模块。没有使用,所以就没有测试
【cvv】:Contribute库
用来调试opencv程序的,被命名为visual debug,调试的信息会在命令行显示,也就是DOS窗口,此外需要CMake2.8以上
【datasets】:Contribute库
opencv程序的数据集模块,提供了一种数据集的数据类型,这种类型有很多的变形,比如(AR_hmdb,FR_adienceObj,GR_chalearn。。。)
使用方法:
Ptr<AR_hmdb> dataset = AR_hmdb::create();
Ptr<FR_adience> dataset = FR_adience::create();
Ptr<GR_chalearn> dataset = GR_chalearn::create();
注:记得在使用前加上 “ using namespace cv::datasets; ”
【dnn】:Contribute库,需要在cmake的时候讲build_dnn 勾选上。
通过训练 *GoogLeNet* 网络,来实现图像的分类,实例的网址是:
https://github.com/ludv1x/opencv_contrib/blob/master/modules/dnn/samples/caffe_googlenet.cpp
如果你需要这部分的内容,需要读一下:
tutorial_dnn_googlenet.markdown文件
【dpm】:Contribute库,全称是 Cascade object detection with deformable part models:可变模型的级联目标检测(不知道翻译的对不对 *!#_#!*)
也就是说这部分是用来做目标检测的,想要用这种方法,你需要知道模型的路径(data中的inriaperson.xml文件)。使用方法如下:
// load model from model_path