opencv学习笔记(一)

一、头文件

1)区别一下:cv.hpp 和 opencv.hpp
网上一些文章可能没有说清楚。其实,cv.hpp和opencv.hpp是等同的关系。只不过,前者是早期opencv版本中的定义名称,而后者opencv.hpp则是3.0版本之后的表示方法。

最先开始的头文件为

#include"opencv2/opencv.hpp"

它包含opencv各个模块的头文件:

1.核心功能模块:core
core是非常重要的核心模块,它包含各种图像数据结构,如Mat可以定义图像,还有各种绘图函数,数组操作相关函数,辅助功能与系统函数和宏,与OpenGL的互操作等功能。

#include"opencv2/core/core.hpp"

2.构建GUI模块:highgui
highgui包含了所有图形接口函数,如媒体的I / O输入输出, 视频捕捉、图像和视频的编码解码、图形交互界面的接口等内容。
除了这些,它还可以处理高级用户交互操作,比如接受键盘按键,检测鼠标是否在图形上的回调函数,也可以检测鼠标移动,从而在输入窗口中绘画被选择的区域。

#include"opencv2/highgui/highgui.hpp"

3.基本图像处理操作库:imgproc
这个模块中包含许多反复使用的基本处理函数,例如图像滤波,形态学操作,几何变换,色彩变换,绘制图形,结构分析,直方图,形状分析,运动分析,特征检测等功能,相当实用.

#include"opencv2/improgc/improgc.hpp"

4.高级图像处理库:ximgproc
这个模块中大多是高级图像处理算法,如结构森林的边缘检测,域变换滤波,自适应流形滤波等.

5.视频分析:video
这个模块可以分析视频中连续帧的运动,跟踪视频对象,创建视频监控模型等。还有个videostab模型用于视频去抖动。

#include"opencv2/video/video.hpp"

6.三维重建:calib3d
这个模块包含的算法大量使用在三维重建的场景中。OpenCV提供了可以发现二维图像中大量事物的相关联性来计算它们的三维位置的算法。这个模块同样也可以处理摄像机标定,这是一个相机的必要估计参数,也是基本的内在参数,可以将相机拍摄到的捕捉幕转化为图像。

7 .特征提取:features2d
这个模块包括从给予的场景中提取特征点的各种特征提取器,目的是为了从已知图像上提取这些特征点。例如SIFT(尺度不变特征变换),SURF(加速鲁棒特征),FAST(加速分段测试特征)等。xfeatures2d提供了更多特征提取器,bioinspired提供了计算机视觉仿生模型方面的额算法.

#include"opencv2/features2d/features2d.hpp"

8.目标检测:objectect && xobjectect
这两个模块提供了设计目标检测器的框架,在图中对所有检测到的物品加上框架,其中物品可以由框架自己开发,可以说是非常方便有用了~

#include"opencv2/objectect/objectect.hpp"

9.机器学习:ml
这个模块捆绑了许多机器学习的算法,包括许多常用的算法,如支持向量机,贝叶斯分类器,决策树,神经元网络等;还有一个flann模块,包含大数据集的快速最近邻搜索算法等许多高级算法。

#include"opencv2/m1/m1.hpp"

10.形状分析:shape
shape模块提供提取不同形状,衡量他们之间的相似点,起点变换目标形状等算法;形状检测也是很有用的算法。

11.人脸识别与目标识别:face && saliency
face模块提供人脸检测与识别功能;而saliency模块提供了特征区域和图像中ed目标识别,目标检测与跟踪的算法。

12.文本识别:text
text模块包含文本检测和识别的算法,应用如铭牌识别,汽车车牌检测与识别等。

我们可能选取#include"opencv2/opencv.hpp"来包含所有可能用到的头文件,不过这会减慢编译的速度。如果只使用一个,编译时间会大大减少。

你可能感兴趣的:(opencv,计算机视觉)