您的位置:首页 > 运维架构

第一篇 OpenCv常用头文件#include<>介绍

2017-11-06 14:24 549 查看
初学 OpenCv,在用VS2015编写程学的时,有时候在编译过程中会出现红色波浪线,极大的困扰着初学者心情,这种情况作为新人的我深有体会。 后来逐渐意识到,问题主要出在编写的时候,有一个#include<>的过程,这个过程的主要作用就是,使接下来的代码函数里面被提前定义在这些头文件里。顾名思义,include本来就是包含包括的意思,所以通过程序一开始的include<>,我们就能实现对程序中所用字符代码的提前声明! 但是,为什么有时候我们明明有了include<>,但在实际的程序运行中,还是会出现红色波浪线呢?原因很简单,就是你使用的一些函数或者并没有包含在你已经声明的include里!

(1)区别一下:cv.hpp 和 opencv.hpp
网上一些文章可能没有说清楚。其实,cv.hpp和opencv.hpp是等同的关系。只不过,前者是早期opencv版本中的定义名称,而后者opencv.hpp则是3.0版本之后的表示方法。
(2)共同点:#include<cv.h>和opencv.hpp中均包含了以下的头文件:

 

 #include "opencv2/core.hpp"

 #include "opencv2/imgproc.hpp"

 #include "opencv2/video.hpp"

 #include "opencv2/objdetect.hpp"

 #include "opencv2/imgcodecs.hpp"

 #include "opencv2/highgui.hpp"

 #include "opencv2/ml.hpp"
简言之,我们在编写代码的时候,或许只需要一个简单的#include<opencv2/opencv.hpp>就可以轻松的解决红色波浪线未定义字符的烦恼!
(3)常用头文件名的解释
[core]核心功能模块

主要包含了opencv基本数据结构,动态数据结构,绘图函数,数组操作相关函数,辅助功能与系统函数和宏。

[imgproc]图像处理模块

主要包换了图像的变换,滤波直方图相关结构分析,形状描述 。

[video]视频模块

主要运用在调用摄像头时。

[highgui]高层GUI图像交互模块

主要包换了图形交互界面,媒体I/O的输入输出,视频信息的捕捉和提取,图像视频编码等。

[math.h]数学函数库

包含了一些常用的数学公式。如三角函数,反三角函数,乘方,开方,取整等运算。

[iostream]输入输出流头文件

主要包含了在c++编码过程中的 cin输入内容和cout输出内容。

[vector] "容器"

之所以被认为是一个容器,是因为vector能够能够像容器一样存放各种数据类型。换句话说,能够存放任意类型的动态数组,能够增加和压缩数据。

[ml] Machine Learning 机器学习模块

基本上是统计模型和分类算法,包含如下内容

统计模型 (Statistical Models)

一般贝叶斯分类器 (Normal Bayes Classifier)

K-近邻 (K-Nearest Neighbors)

支持向量机 (Support Vector Machines)

决策树 (Decision Trees)

提升(Boosting)

梯度提高树(Gradient Boosted Trees)

随机树 (Random Trees)

超随机树 (Extremely randomized trees)

期望最大化 (Expectation Maximization)

神经网 (Neural Networks)

(4)参考文献 [1]http://blog.csdn.net/u014260892/article/details/44095241
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: