OpenCV(Open Source Computer Vision Library)是基于BSD开源许可协议的一套计算机视觉开源库,里面包含了几百个计算机视觉算法。在包括物体识别、人脸识别、图像处理等在内的多种计算机视觉应用领域中被大量应用。
OpenCV的API目前分为1.0和2.0版本(3.0的正式版本在今年也已经出来了,但目前没有去尝试过),1.0版本是用C语言实现的,2.0主要是C++,2.0版本的已显著优化,所以我们学习的也将是2.0版本的OpenCV,我们在上一篇的实例其实使用还是1.0版本的API,但以后就会改成2.0了。
OpenCV有着模块化结构,下面是一些我们会常用到的模块:
前面说过,OpenCV2.0是基于C++,这在API里有很好的体现,就是2.0所有的API和结构体都是需要声明命名空间的,它们全部在名称空间cv里,例如,当使用Mat时,需要这样:
cv::Mat H;
或者是:
using namespace cv;
void main() {
Mat mat;
}
这是因为OpenCV中有些现存的或者以后新版本中会有一些命名与STL库或者其他库因同名而冲突。如果需要用到两个冲突的类型或函数,就要用cv::显示地声明名称空间。
官方文档下载(英文版)
【循序渐进地学好OpenCV&3】OpenCV 2.0 API
原文地址:http://blog.csdn.net/zgljl2012/article/details/48523511