本节书摘来自华章计算机《opencv图像处理》一书中的第1章,第1.3节,作者:[西]葛罗瑞亚·布埃诺·加西亚(gloria bueno garcía)著,更多章节内容可以访问云栖社区“华章计算机”公众号查看
一旦安装了opencv,在opencv_buildinstall目录中将加入三种类型的文件:
头文件:这些文件位于opencv_buildinstallinclude子目录下,用于使用opencv开发新项目。
库的二进制文件:这些文件是静态库或动态库(依赖于使用cmake对选项的选择),它们包含了每个opencv模块的功能。这些文件位于bin子目录下(例如,使用gnu编译器时,位于x64mingwbin)。
示例二进制文件:这些文件使示例在库下可执行。这些示例的源文件可以在源程序包中找到(例如,opencv_srcsourcessamples)。
opencv有一个模块化结构,这意味着代码包中包含了每个模块的一个静态库或动态库(dll)。包含在代码包中的主模块有:
core:这个模块定义了被所有其他模块和基本数据结构(包括重要的多维数组mat)使用的基本函数。
highgui:这个模型提供简单的用户接口(user interface,ui)功能。使用qt支持(with_qt cmake选项)建立的库允许ui和这样的框架兼容。
imgproc:这些模块是一些图像处理函数,包括滤波(线性的和非线性的)、几何变换、颜色空间变换、直方图等。
imgcodecs:这个模块是一个用于读、写图像的易用接口。
从opencv 3.0开始模块中的一些变化要注意,某些功能已经被移到一个新模块(例如,将读取图像函数和写入图像函数从highgui移入到imgcodecs)。
photo:这个模块包含计算摄影学,涉及修复、去噪、高动态范围(hdr)图像等。
stitching:这个模块用于图像拼接。
videoio:这个模块对于视频捕获和视频编码器是一个易用的接口。
video:这个模块提供了视频分析的功能(运动估计、背景提取以及对象跟踪)。
features2d:这些模块是用于特征检测(角点对象和平面对象)、特征描述、特征匹配等的一些函数。
objdetect:这些模块是用于对象检测和预定义检测器实例(例如,人脸、眼睛、微笑、人、车等)的一些函数。
其他的一些模块是calib3d(摄像机校准)、f?lann(聚类和搜索)、ml(机器学习)、shape(形状距离和匹配)、superres(超分辨率)、video(视频分析)和videostab(视频稳定)。
在3.0测试版中,新的贡献模块是在一个独立的包(opencv_contrib-master.zip)中发布的,在使用这些模块之前应该完全理解这些模块。在新发布的opencv(3.0版本)中,关于新功能的简要概述,请参考<code>http://opencv.org/opencv-3-0-beta.html</code>文档。