OpenCV Introduction(Open CV介绍)

1.OpenCV具有模块化结构,这意味着该软件包包含多个共享或静态库。以下模块可用:

核心功能 - 定义基本数据结构的紧凑模块,包括密集的多维数组Mat和所有其他模块使用的基本功能。
图像处理 - 一个图像处理模块,包括线性和非线性图像滤波,几何图像转换(调整大小,仿射和透视变形,基于通用表格的重新映射),色彩空间转换,直方图等。
视频 - 视频分析模块,包括运动估计,背景扣除和对象跟踪算法。
calib3d - 基本多视图几何算法,单个和立体相机校准,对象姿态估计,立体对应算法和三维重建元素。
特征 2d - 显着特征检测器,描述符和描述符匹配器。
objdetect -预定义的类的对象和实例的检测(例如,脸,眼睛,杯子,人,车,等等)。
highgui - 简单的用户界面功能的简单易用的界面。
视频I / O - 一个易于使用的视频捕捉和视频编解码器界面。
gpu - 来自不同OpenCV模块的GPU加速算法。
...一些其他的辅助模块,如FLANN和Google测试包装,Python绑定等等。

文档的其他章节描述了每个模块的功能。但是首先要确保熟悉库中使用的通用API概念。

2.API概念

cv Namespace

All the OpenCV classes and functions are placed into the cv namespace. Therefore, to access this functionality from your code, use the cv:: specifier or using namespace cv; directive     所有的OpenCV类和函数都被放置在cv命名空间中。因此,要从您的代码中访问此功能,请使用cv ::说明符或使用命名空间cv; 指示:

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

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

Some of the current or future OpenCV external names may conflict with STL or other libraries. In this case, use explicit namespace specifiers to resolve the name conflicts:          一些当前或未来的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.)



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值