OpenCV(2)--OpenCV介绍


1. 简介

OpenCV(Open Source Computer Vision Library:http://opencv.org)是一个开源的基于BSD许可的库,它包括数百种计算机视觉算法。文档OpenCV 2.x API描述的是C++ API,相对还有一个基于C语言的OpenCV 1.x API,后者的描述在文档opencv1.x.pdf中。
OpenCV具有模块化结构,这就意味着开发包里面包含多个共享库或者静态库。下面是可使用的模块:
核心功能(Core functionality) - 一个紧凑的模块,定义了基本的数据结构,包括密集的多维Mat数组和被其他模块使用的基本功能。
图像处理(Image processing) - 一个图像处理模块,它包括线性和非线性图像滤波,几何图形转化(重置大小,放射和透视变形,通用基本表格重置映射),色彩空间转换,直方图等。
影像分析(video) - 一个影像分析模块,它包括动作判断,背景弱化和目标跟踪算法。
3D校准(calib3d) - 基于多视图的几何算法,平面和立体摄像机校准,对象姿势判断,立体匹配算法,和3D元素的重建。
平面特征(features2d) - 突出的特征判断,特征描述和对特征描述的对比。
对象侦查(objdetect) - 目标和预定义类别实例化的侦查(例如:脸、眼睛、杯子、人、汽车等等)。
highgui - 一个容易使用的用户功能界面。
视频输入输出(videoio) - 一个容易使用的视频采集和视频解码器。
GPU - 来自不同OpenCV模块的GPU加速算法。
… 一些其他的辅助模块,比如FLANN和谷歌的测试封装,Python绑定和其他。
接下来的章节将描述每个模块的功能。但首先一定要熟悉在整个库中使用的通用API概念。

2. cv命名空间

所有的OpenCV类和函数都放在cv的命名空间。因此,你的代码去访问这些功能,需要使用cv::字符或者使用命名空间cv;指针。

 #include "opencv2/core.hpp"
    2 ...
    3 cv::Mat H = cv::findHomography(points1, points2, CV_RANSAC, 5);
    4 ...

或者:

 #include "opencv2/core.hpp"
    2 using namespace cv;
    3 ...
    4 Mat H = findHomography(points1, points2, CV_RANSAC, 5 );
    5 ...

一些现在的或者将来的OpenCV外部名称可能会与STL或者其他库有冲突,在这种情况下,需要使用明确的命名空间说明符去解决命名冲突。

 Mat a(100, 100, CV_32F);
 randu(a, Scalar::all(1), Scalar::all(std::rand()));
 cv::log(a, a);
 a /= std::log(2.);

3. 自动的内存管理

OpenCV自动处理所有的内存。
首先需要了解的是std:vector、Mat等,这些被函数和方法调用的数据结构中都具

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值