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

初学 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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章