《OpenCV计算机视觉编程攻略(第2版)》结合C 和OpenCV讲解计算机视觉编程,不仅涵盖计算机视觉和图像处理的基础知识,而且通过完整示例讲解OpenCV的重要类和函数。《OpenCV计算机视觉编程攻略(第2版)》主要内容包括OpenCV库的安装和部署、图像增强、像素操作、图形分析等各种技术,并且详细介绍了如何处理来自文件或摄像机的视频,以及如何检测和跟踪移动对象。
1. 50多个知识点的案例解读,掌握基础知识与进阶内容
2. 学习OpenCV重要的图像操作类和函数
3. 初学者和从业者即查即用的工具书
4. 掌握计算机视觉与图像处理的基础知识与概念
Robert Laganière
渥太华大学电气工程与计算机科学学院教授,同时任教于学院成立的VIVA实验室(主要研究图像与视频处理、计算机视觉、自治系统),还是基于云的家庭监控服务公司iWatchLife和嵌入式视觉解决方案行业引领者Cognivue公司的首席科学家。他与人共同发表过多篇科学论文,并获得了基于内容的视频分析、视觉监控、目标识别和三维重建等领域的多项专利。
2006年,他在渥太华与人共同创立了从事视频分析的Visual Cortek公司(2009年被iWatchLife收购)。个人网站:www.laganiere.name。
第1 章 图像编程入门 1
1.1 简介 1
1.2 安装OpenCV 库 1
1.2.1 准备工作 1
1.2.2 安装 2
1.2.3 实现原理 3
1.2.4 扩展阅读 4
1.2.5 参阅 6
1.3 装载、显示和存储图像 6
1.3.1 准备工作 6
1.3.2 如何实现 6
1.3.3 实现原理 8
1.3.4 扩展阅读 9
1.3.5 参阅 12
1.4 深入了解cv::Mat 12
1.4.1 如何实现 12
1.4.2 实现原理 14
1.4.3 扩展阅读 16
1.4.4 参阅 17
1.5 定义兴趣区域 18
1.5.1 准备工作 18
1.5.2 如何实现 18
1.5.3 实现原理 19
1.5.4 扩展阅读 19
1.5.5 参阅 20
第2 章 操作像素 21
2.1 简介 21
2.2 访问像素值 22
2.2.1 准备工作 22
2.2.2 如何实现 22
2.2.3 实现原理 24
2.2.4 扩展阅读 24
2.2.5 参阅 25
2.3 用指针扫描图像 25
2.3.1 准备工作 25
2.3.2 如何实现 26
2.3.3 实现原理 27
2.3.4 扩展阅读 28
2.3.5 参阅 31
2.4 用迭代器扫描图像 31
2.4.1 准备工作 32
2.4.2 如何实现 32
2.4.3 实现原理 32
2.4.4 扩展阅读 33
2.4.5 参阅 34
2.5 编写高效的图像扫描循环 34
2.5.1 如何实现 34
2.5.2 实现原理 34
2.5.3 扩展阅读 36
2.5.4 参阅 36
2.6 扫描图像并访问相邻像素 36
2.6.1 准备工作 36
2.6.2 如何实现 37
2.6.3 实现原理 38
2.6.4 扩展阅读 39
2.6.5 参阅 39
2.7 实现简单的图像运算 40
2.7.1 准备工作 40
2.7.2 如何实现 40
2.7.3 实现原理 41
2.7.4 扩展阅读 41
2.8 图像重映射 42
2.8.1 如何实现 43
2.8.2 实现原理 43
2.8.3 参阅 44
第3 章 用类处理彩色图像 45
3.1 简介 45
3.2 在算法设计中使用策略模式 45
3.2.1 准备工作 46
3.2.2 如何实现 46
3.2.3 实现原理 47
3.2.4 扩展阅读 50
3.2.5 参阅 52
3.3 用控制器设计模式实现功能模块间
通信 52
3.3.1 准备工作 53
3.3.2 如何实现 53
3.3.3 实现原理 55
3.3.4 扩展阅读 56
3.4 转换颜色表示法 57
3.4.1 准备工作 57
3.4.2 如何实现 57
3.4.3 实现原理 58
3.4.4 参阅 59
3.5 用色调、饱和度、亮度表示颜色 59
3.5.1 如何实现 60
3.5.2 实现原理 61
3.5.3 扩展阅读 63
第4 章 用直方图统计像素 66
4.1 简介 66
4.2 计算图像直方图 66
4.2.1 准备工作 67
4.2.2 如何实现 67
4.2.3 实现原理 71
4.2.4 扩展阅读 71
4.2.5 参阅 73
4.3 利用查找表修改图像外观 73
4.3.1 如何实现 74
4.3.2 实现原理 74
4.3.3 扩展阅读 75
4.3.4 参阅 77
4.4 直方图均衡化 78
4.4.1 如何实现 78
4.4.2 实现原理 79
4.5 反向投影直方图检测特定图像内容 79
4.5.1 如何实现 79
4.5.2 实现原理 81
4.5.3 扩展阅读 81
4.5.4 参阅 84
4.6 均值平移算法查找目标 84
4.6.1如何实现 85
4.6.2 实现原理 87
4.6.3 参阅 88
4.7 比较直方图搜索相似图像 88
4.7.1 如何实现 88
4.7.2 实现原理 90
4.7.3 参阅 90
4.8 用积分图像统计像素 91
4.8.1 如何实现 91
4.8.2 实现原理 92
4.8.3 扩展阅读 93
4.8.4 参阅 99
第5 章 用形态学运算变换图像 100
5.1 简介 100
5.2 形态学滤波器腐蚀和膨胀图像 100
5.2.1 准备工作 101
5.2.2 如何实现 101
5.2.3 实现原理 102
5.2.4 扩展阅读 104
5.2.5 参阅 104
5.3 用形态学滤波器开启和闭合图像 104
5.3.1 如何实现 104
5.3.2 实现原理 105
5.3.3 参阅 106
5.4 用形态学滤波器检测边缘和角点 106
5.4.1 准备工作 106
5.4.2 如何实现 107
5.4.3 实现原理 109
5.4.4 参阅 110
5.5 用分水岭算法实现图像分割 110
5.5.1 如何实现 111
5.5.2 实现原理 114
5.5.3 扩展阅读 115
5.5.4 参阅 116
5.6 用MSER 算法提取特征区域 116
5.6.1 如何实现 117
5.6.2 实现原理 118
5.6.3 参阅 121
5.7 用GrabCut 算法提取前景物体 121
5.7.1 如何实现 121
5.7.2 实现原理 123
5.7.3 参阅 124
第6 章 图像滤波 125
6.1 简介 125
6.2 低通滤波器 126
6.2.1 如何实现 126
6.2.2 实现原理 127
6.2.3 扩展阅读 129
6.2.4 参阅 132
6.3 中值滤波器 133
6.3.1 如何实现133
6.3.2 实现原理 134
6.4 用定向滤波器检测边缘 134
6.4.1 如何实现 135
6.4.2 实现原理 137
6.4.3 扩展阅读 139
6.4.4 参阅 141
6.5 计算拉普拉斯算子 141
6.5.1 如何实现 141
6.5.2 实现原理 143
6.5.3 扩展阅读 145
6.5.4 参阅 146
第7 章 提取直线、轮廓和区域 147
7.1 简介 147
7.2 用Canny 算子检测图像轮廓 147
7.2.1 如何实现 147
7.2.2 实现原理 148
7.2.3 参阅 150
7.3 用霍夫变换检测直线 150
7.3.1 准备工作 150
7.3.2 如何实现 150
7.3.3 实现原理 154
7.3.4 扩展阅读 157
7.3.5 参阅 158
7.4 点集的直线拟合 158
7.4.1 如何实现 159
7.4.2 实现原理 161
7.4.3 扩展阅读 161
7.5 提取区域的轮廓 161
7.5.1 如何实现 162
7.5.2 实现原理 163
7.5.3 扩展阅读 164
7.6 计算区域的形状描述子 164
7.6.1 如何实现 165
7.6.2 实现原理 166
7.6.3 扩展阅读 167
第8 章 检测兴趣点 169
8.1 简介 169
8.2 检测图像中的角点 169
8.2.1 如何实现 170
8.2.2 实现原理 174
8.2.3 扩展阅读 176
8.2.4 参阅 177
8.3 快速检测特征 178
8.3.1 如何实现 178
8.3.2 实现原理 179
8.3.3 扩展阅读 180
8.3.4 参阅 182
8.4 尺度不变特征的检测 182
8.4.1 如何实现 183
8.4.2 实现原理 184
8.4.3 扩展阅读 185
8.4.4 参阅186