《学习OpenCV 3(中文版)》 —2 OpenCV初探
第二章
OpenCV初探
头文件
在安装OpenCV库以及设置好编程环境之后,下一个任务就是用代码来做一些有趣的事情。为了完成这个工作,我们需要先讨论一下头文件。幸运的是,头文件是按照第1章所述模块一样组织的。而我们最感兴趣的头文件莫过于.../include/opencv2/opencv.hpp,它包含OpenCV各个模块的头文件:
#include "opencv2/core/core_c.h" 旧式C风格的结构以及运算
#include "opencv2/core/core.hpp" 新式C++风格的结构以及数学运算
#include "opencv2/flann/miniflann.hpp" 最邻近搜索匹配函数
#include "opencv2/features2d/features2d.hpp" 用于追踪的二维特征
#include "opencv2/objdetect/objdetect.hpp"
级联人脸分类器、latent SVM分类器、HoG特征和平面片检测器
#include "opencv2/calib3d/calib3d.hpp" 校准以及双目视觉相关
#include "opencv2/ml/ml.hpp"
机器学习、聚类以及模式识别相关
#include "opencv2/highgui/highgui_c.h"
旧式C风格的显示、滑动条、鼠标操作以及输入输出相关
#include "opencv2/highgui/highgui.hpp"
新式C++风格的显示、滑动条、鼠标操作以及输入输出相关
#include "opencv2/contrib/contrib.hpp"
用户贡献的代码、皮肤检测、模糊Mean-Shift追踪、spin image算法及自相似特征等
你也许会使用头文件opencv.hpp来包含所有可能在OpenCV函数中用到的头文件,但是这会减慢编译的速度。如果只使用一个,比如说图像处理相关的函数,只包含opencv2/ imgproc/imgproc.hpp所消耗的编译时间会比包含opencv.hpp消耗的编译时间少很多。这些头文件在.../modules文件夹中。比如,imgproc.hpp存在于.../modules/imgproc/include/ opencv2/imgproc/imgproc.hpp。类似,函数对应的源文件也存在于对应的src文件夹中。比如,improc模块的cv::Canny()函数存在于.../modules/improc/src/canny.cpp。
有了前述头文件之后,就可以开始写我们的第一个C++的OpenCV程序了。
可以使用opencv2/legacy/legacy.hpp来调用遗留代码,比如说比较旧的斑点追踪、隐马尔科夫模型(HMM)检测、聚合追踪以及特征目标。其他位于.../ modules/legacy/include/opencv2/legacy/legacy.hpp。
- 点赞
- 收藏
- 关注作者
评论(0)