第1章 概述 6
第2章 OpenCV入门 6
2.1 下载OpenCV 6
2.2 VC6.0下安装与配置 6
2.2.1 安装OpenCV 6
2.2.2 安装DirectX SDK 8
2.2.3 编译OpenCV 9
2.2.4 设置VC6.0环境 9
2.2.5 在项目中运用OpenCV 10
2.2.6 以Makefile方式编译程序 10
2.3 VC.net 2003下安装与配置 11
2.3.1 定制全局选项 11
2.3.2 创建新项目 13
2.4 VC 2005 Express下安装与配置 15
2.4.1 安装VC 2005 Express 15
2.4.2 安装Microsoft Platform SDK 15
2.4.3 配置VC 2005 Express 15
2.4.4 建立OpenCV项目 16
2.5 Linux环境下的安装 18
2.5.1 下载源码 18
2.5.2 解压文件 18
2.5.3 检查软件配置 18
2.5.4 编译OpenCV 19
2.5.5 安装OpenCV 19
2.5.6 更新动态链接库 20
2.6 Debian下安装 20
2.7 创建OpenCV控制台项目 20
2.8 在MFC中使用OpenCV 23
2.8.1 创建新项目 23
2.8.2 设置OpenCV环境 23
2.8.3 分步创建MFC例程 26
2.8.4 读入图像并显示处理 29
2.8.5 在MFC窗口中显示图像 34
2.9 创建OpenCV的静态链接库 35
2.9.1 生成CXCOREL的工程文件 35
2.9.2 生成CXCOREL的调试版静态库 37
2.9.3 生成CXCOREL的正式版静态库 39
2.9.4 生成CV/CVAUX/HIGHGUI的静态库 41
2.9.5 独立发布的运行程序 42
第3章 OpenCV基础 46
3.1 OpenCV命名规则 46
3.2 基本数据结构 47
3.3 矩阵的使用与操作 47
3.3.1 分配与释放矩阵 48
3.3.2 访问矩阵元素 49
3.3.3 矩阵和向量操作 49
3.4 GUI命令 60
3.4.1 窗口管理 60
3.4.2 输入处理 61
3.5 图像的使用与操作 63
3.5.1 分配和释放图像 63
3.5.2 图像的读写 65
3.5.3 访问图像元素 67
3.5.4 图像转换 69
3.5.5 绘制命令 70
3.6 视频的使用与操作 76
3.6.1 从视频序列中捕捉图像帧 76
3.6.2 获取视频帧信息 78
3.6.3 保存视频文件 79
3.7 对摄像头和视频流的使用与操作 80
3.7.1 一般用法 80
3.7.2 选择摄像头 81
3.7.3 视频流的处理 82
3.7.4 获取摄像头属性 83
3.7.5 视频帧的处理 83
3.7.6 处理AVI文件 83
3.7.7 Linux下使用多摄像头 84
3.7.8 Windows下使用多摄像头 84
3.7.9 CVCAM的属性界面 84
第4章 数据结构与数据操作 84
4.1 基础结构 86
4.1.1 CvPoint 86
4.1.2 CvPoint2D32f 86
4.1.3 CvPoint3D32f 87
4.1.4 CvSize 87
4.1.5 CvSize2D32f 87
4.1.6 CvRect 87
4.1.7 CvScalar 88
4.1.8 CvTermCriteria 88
4.1.9 CvMat 89
4.1.10 CvMatND 89
4.1.11 CvSparseMat 90
4.1.12 IplImage 90
4.1.13 CvArr 92
4.2 数组操作 92
4.2.1 初始化 92
4.2.2 获取元素和数组子集 104
4.2.3 复制和添加 111
4.2.4 变换和置换 113
4.2.5 算术、逻辑和比较运算 117
4.2.6 统计 130
4.2.7 线性代数 133
4.2.8 数学函数 147
4.2.9 随机数生成 151
4.2.10 离散变换 154
4.3 动态结构 162
4.3.1 内存存储 162
4.3.2 序列 167
4.3.3 集合 183
4.3.4 图 186
4.3.5 树 195
4.4 绘图函数 197
4.4.1 曲线与形状 198
4.4.2 文本 202
4.4.3 点集和轮廓 204
4.5 数据保存和运行时类型信息 208
4.5.1 文件存储 208
4.5.2 写数据 212
4.5.3 读取数据 217
4.5.4 运行时类型信息和通用函数 224
4.6 其他混合函数 227
4.7 错误处理和系统函数 232
4.7.1 错误处理 232
4.7.2 系统函数 239
第5章 模式识别与图像处理 239
5.1 图像处理 243
5.1.1 梯度、边缘和角点 243
5.1.2 采样、插值和几何变换 253
5.1.3 形态学操作 262
5.1.4 滤波器与彩色变换 268
5.1.5 金字塔及其应用 278
5.1.6 连接部件 279
5.1.7 图像与轮廓矩 296
5.1.8 亮度变换与直方图 298
5.1.9 特殊图像变换 315
5.1.10 匹配 326
5.2 结构分析 329
5.2.1 轮廓处理函数 329
5.2.2 计算几何 333
5.2.3 平面划分 346
5.3 运动分析与对象跟踪 357
5.3.1 背景统计量的累积 357
5.3.2 运动模板 361
5.3.3 对象跟踪 368
5.3.4 光流 375
5.3.5 预估器 378
5.4 目标检测 385
5.5 摄像机定标和三维重建 393
5.5.1 针孔摄像机模型和变形 393
5.5.2 摄像机定标 394
5.5.3 姿态估计 400
5.5.4 对极几何 402
第6章 运动物体跟踪 406
6.1 基本结构 406
6.1.1 团块 406
6.1.2 团块列表 406
6.1.3 团块跟踪参数 407
6.2 模块描述 408
6.2.1 前景检测模块 408
6.2.2 新团块检测模块 408
6.2.3 团块跟踪模块 409
6.2.4 轨迹生成模块 411
6.2.5 轨迹后处理模块 411
6.2.6 跟踪流程模块 412
6.3 运动跟踪例程 413
6.3.1 打印帮助 413
6.3.2 分析输入参数 414
6.3.3 打开视频 415
6.3.4 打印参数 415
6.3.5 创建所需要的模块 415
6.3.6 处理视频 416
6.3.7 例程使用 416
6.3.8 小结 418
6.4 添加自定义模块 418
6.4.1 新算法代码编写 418
6.4.2 新算法加入到框架 420
6.4.3 运行新程序 421