OpenCV是一个开源的视觉库,其中包括很多计算机视觉的算法实现。在版本2.2以后,OpenCV采用C++特征的API,在1.x版本中,OpenCV函数都是传统的C语言形式。
OpenCV采用模块化的结构,每个模块都是由一些动态和静态库组成,该模块会实现一些特定的计算机视觉算法。要使用某个特定的库,我们必须在程序中先包含该库的头文件,并把该库的lib作为链接库。
例如要使用core和highgui库,则必须在程序源文件中包含:
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp
而且要把opencv_core246d.lib,opencv_highgui246d.lib作为链接库:
OpenCV 2.4主要包括以下的库:
core库主要包括一些基本的数据结构和函数,比如cv::Mat,以及cv::Mat的操作等等,这些数据结构和函数在其它模块中被调用。
Imgproc是图像处理库,图像的处理算法都包含在这个库里面,比如各种滤波操作,图像的平移、缩放操作,颜色空间转化,直方图等等。
Video库,主要包括运动估计,背景减法以及物体跟踪等等。
Calib3d,主要是用于摄像机标定,双目视觉以及3D重构等算法。
Features2D, 主要用于特征检测。
Highgui主要用于视频捕捉,解码以及一些简单的UI实现。
其它的一些库,我们在用到的时候再做介绍,具体可以参考opencv文档:http://docs.opencv.org/index.html