计算机视觉软件库OpenCV的开发基础介绍( 三 )


(7)modules/ , 包含核心代码 , opencv 真正的代码都在这个文件夹中 。 opencv 从2.0开始以模块的方式组织各种功能 , 近两年模块的数量增长得很快 , 后面我会依次介绍每个模块的作用 。
(8)platforms/ , 包含交叉编译所需的工具链以及额外的代码 , 交叉编译指的是在一个操作系统中编译供另一个系统使用的文件 。
(9)samples/ , 范例文件夹 。
常用模块介绍:
(1)androidcamera/ , 仅用于android平台 , 使得可以通过与其他平台相同的接口来控制android设备的相机 。
(2)core/ , 核心功能模块 , 定义了基本的数据结构 , 包括最重要的 Mat 类、XML 读写、opengl三维渲染等 。
(3)imgproc/ , 全称为 image processing , 即图像处理 。 包括图像滤波、集合图像变换、直方图计算、形状描述子等 。 图像处理是计算机视觉的重要工具 。
(4)imgcodec/ , 负责各种格式的图片的读写 , 这个模块是从以前的 highgui 中剥离的 。
(5)highgui/ , 高级图形界面及与 QT 框架的整合 。
(6)video/ , 视频分析模块 。 包括背景提取、光流跟踪、卡尔曼滤波等 , 做视频监控的读者会经常使用这个模块 。
(7)videoio/ , 负责视频文件的读写 , 也包括摄像头、Kinect 等的输入 。
(8)calib3d/ , 相机标定以及三维重建 。 相机标定用于去除相机自身缺陷导致的画面形变 , 还原真实的场景 , 确保计算的准确性 。 三维重建通常用在双目视觉(立体视觉) , 即两个标定后的摄像头观察同一个场景 , 通过计算两幅画面中的相关性来估算像素的深度 。
(9)features2d/ , 包含 2D 特征值检测的框架 。 包含各种特征值检测器及描述子 , 例如 FAST、MSER、OBRB、BRISK等 。 各类特征值拥有统一的算法接口 , 因此在不影响程序逻辑的情况下可以进行替换 。
(10)objdetect/ , 物体检测模块 。 包括haar分类器、SVM检测器及文字检测 。
(11)ml/ , 全称为 Machine Learning , 即机器学习 。 包括统计模型、K最近邻、支持向量机、决策树、神经网络等经典的机器学习算法 。
(12)flann/ , 用于在多维空间内聚类及搜索的近似算法 , 做图像检索的读者对它不会陌生 。
(13)photo/ , 计算摄影学 。 包括图像修补、去噪、HDR成像、非真实感渲染等 。 如果读者想实现Photoshop的高级功能 , 那么这个模块必不可少 。
(14)stitching/ , 图像拼接 , 可用于制作全景图 。
(15)nonfree/ , 受专利保护的算法 。 包含SIFT和SURF , 从功能上来说这两个算法属于features2d模块的 , 但由于它们都是受专利保护的 , 想在项目中可能需要专利方的许可 。
(16)shape/ , 形状匹配算法模块 。 用于描述形状、比较形状 。
(17)softcascade/ , 另一种物体检测算法 , Soft Cascade 分类器 。 包含检测模块和训练模块 。
(18)superres/ , 全称为 Super Resolution , 用于增强图像的分辨率 。
(19)videostab/ , 全称为 Video Stabilization , 用于解决相机移动时拍摄的视频不够稳定的问题 。
(20)viz/ , 三维可视化模块 。 可以认为这个模块实现了一个简单的三维可视化引擎 , 有各种UI控件和键盘、鼠标交互方式 。 底层实现基于 VTK 这个第三方库 。
Cuda加速模块 , cuda 是显卡制造商 NVIDIA 推出的通用计算语言 , 在cv3中有大量的模块已经被移植到了cuda 语言 。
(1)cuda/ , CUDA-加速的计算机视觉算法 , 包括数据结构 cuda::GpuMat、 基于cuda的相机标定及三维重建等 。
(2)cudaarithm/ , CUDA-加速的矩阵运算模块 。
(3)cudabgsegm/ , CUDA-加速的背景分割模块 , 通常用于视频监控 。
(4)cudacodec/ , CUDA-加速的视频编码与解码 。
(5)cudafeatures2d/ , CUDA-加速的特征检测与描述模块 , 与features2d/模块功能类似 。
(6)cudafilters/ , CUDA-加速的图像滤波 。
(7)cudaimgproc/ , CUDA-加速的图像处理算法 , 包含直方图计算、霍夫变换等 。
(8)cudaoptflow/ , CUDA-加速的光流检测算法 。
(9)cudastereo/ , CUDA-加速的立体视觉匹配算法 。
(10)cudawarping/ , 实现了 CUDA-加速的快速图像变换 , 包括透视变换、旋转、改变尺寸等 。
(11)cudaev/ , 实现 CUDA 版本的核心功能 , 类似 core/ 模块中的基础算法 。
4、在VS2013中配置使用OpenCV了解了OpenCV 的数据结构和功能后 , 下面介绍OpenCV 的配置 , Win7 64 + VSW2013 + OpenCV3.0步骤 。
(1)下载安装OpenCV 3.0 。 下载地址: 。
(2)配置环境变量:计算机属性->高级系统设置->环境变量->Path->变量值 。