Part Ⅰ 基础篇OpenCV开发基础 1
第1章 初识OpenCV 3
1.1 OpenCV初识 4
1.1.1 OpenCV简介 4
1.1.2 OpenCV组件及架构 5
1.1.3 OpenCV资源 9
1.2 VS2012安装OpenCV 2.4.x 9
1.3 VS2013安装OpenCV3.0 14
1.4 Sublime下配置OpenCV 16
1.5 小结 19
第2章 图像及视频基本操作 20
2.1 图像初级操作 21
2.1.1 Mat类 21
2.1.2 Mat基本操作 23
2.1.3 Mat类型转换 24
2.1.4 图像读取显示保存 24
2.1.5 图像存储 26
2.2 图像几何变换 28
2.2.1 坐标映射 28
2.2.2 平移 29
2.2.3 缩放 33
2.2.4 旋转 36
2.2.5 仿射变换 40
2.3 视频操作 43
2.3.1 VideoCapture类 43
2.3.2 视频写操作 45
2.3.3 视频质量评价 48
2.4 图像基础应用操作 50
2.4.1 界面事件 50
2.4.2 区域提取 54
2.4.3 图像元素遍历——反色 58
2.4.4 单窗口显示多幅图像 63
2.4.5 图像颜色空间转换 66
2.4.6 图像批量读取——规则 69
2.4.7 图像批量读取——无规则 70
2.5 小结 71
Part Ⅱ 进阶篇图像处理技术 73
第3章 进阶篇——图像灰度变换技术 75
3.1 阈值化处理 76
3.1.1 OTSU阈值化 76
3.1.2 固定阈值化 79
3.1.3 自适应阈值化 81
3.1.4 双阈值化 83
3.1.5 半阈值化 84
3.2 直方图处理 85
3.2.1 灰度直方图 85
3.2.2 H-S直方图 88
3.2.3 BGR直方图 89
3.2.4 自定义直方图 91
3.2.5 灰度直方图均衡 93
3.2.6 彩色直方图均衡 94
3.2.7 直方图变换——查找 95
3.2.8 直方图变换——累计 97
3.2.9 直方图匹配 99
3.2.10 直方图对比 101
3.2.11 直方图的反向投影 105
3.3 距离变换 108
3.3.1 距离 108
3.3.2 邻接性 109
3.3.3 区域 110
3.3.4 距离变换——扫描 110
3.3.5 距离变换——distanceTransform 113
3.4 Gamma校正 115
3.5 其他常见的灰度变换技术 117
3.5.1 线性变换 117
3.5.2 对数变换 119
3.5.3 对比度拉伸 121
3.5.4 灰度级分层 124
3.5.5 灰度比特平面 125
3.6 实例应用 128
3.6.1 最大熵阈值分割 128
3.6.2 投影峰谷查找 131
3.7 小结 134
第4章 进阶篇——图像平滑技术 135
4.1 图像采样 136
4.1.1 最近邻插值 136
4.1.2 双线性插值 138
4.1.3 插值操作性能对比 140
4.1.4 图像金字塔 143
4.2 傅里叶变换 146
4.2.1 图像掩码操作 146
4.2.2 离散傅里叶 149
4.2.3 图像卷积 151
4.3 图像噪声 153
4.3.1 椒盐噪声 153
4.3.2 高斯噪声 155
4.4 空间平滑 157
4.4.1 盒滤波 157
4.4.2 均值滤波 159
4.4.3 中值滤波 159
4.4.4 高斯滤波 161
4.4.5 双边滤波 163
4.5 实例应用 166
4.5.1 导向滤波 166
4.5.2 图像污点修复 169
4.5.3 旋转文本图像矫正 172
4.6 小结 178
第5章 进阶篇——边缘检测技术 179
5.1 边缘检测基础 180
5.1.1 边缘检测概念 180
5.1.2 梯度算子 180
5.1.3 一阶微分算子 180
5.1.4 二阶微分算子 181
5.1.5 图像差分运算 182
5.1.6 非极大值抑制 184
5.2 基本边缘检测算子——Sobel 184
5.2.1 非极大值抑制Sobel检测 185
5.2.2 图像直接卷积实现Sobel 186
5.2.3 图像卷积下非极大值抑制Sobel 187
5.2.4 Sobel库函数实现 190
5.3 基本边缘检测算子——Laplace 192
5.4 基本边缘检测算子——Roberts 194
5.5 基本边缘检测算子——Prewitt 195
5.6 改进边缘检测算子——Canny 198
5.6.1 Canny算子 198
5.6.2 Canny原理及实现 198
5.6.3 Canny库函数实现 203
5.7 改进边缘检测算子——Marr-Hildreth 204
5.8 几何检测 207
5.8.1 霍夫变换 207
5.8.2 线检测技术 208
5.8.3 LSD快速直线检测 210
5.8.4 圆检测技术 214
5.9 形状检测 215
5.9.1 轮廓检测 215
5.9.2 凸包检测 217
5.9.3 轮廓边界框 221
5.9.4 轮廓矩 226
5.9.5 点多边形测试 229
5.10 角点检测 232
5.10.1 moravec角点 232
5.10.2 harris角点 235
5.10.3 Shi-Tomasi角点 238
5.11 实例应用 240
5.11.1 颜色圆检测 240
5.11.2 车牌区域检测 243
5.12 小结 249
第6章 进阶篇——形态学技术 250
6.1 腐蚀膨胀操作 251
6.2 开闭运算操作 253
6.3 形态学梯度 255
6.4 形态学Top-Hat 256
6.5 实例应用 257
6.5.1 形态学滤波角点提取 257
6.5.2 车牌目标提取 260
6.6 小结 263
Part Ⅲ 高级篇图像应用技术 265
第7章 高级篇——图像分割技术 267
7.1 分水岭分割 268
7.1.1 分水岭的特征 268
7.1.2 实现分水岭分割 269
7.1.3 分水岭分割合并 270
7.2 FloodFill分割 273
7.3 均值漂移MeanShift 276
7.4 图割Grabcut 279
7.5 实例实例 282
7.5.1 奇异区域检测 282
7.5.2 肤色检测 285
7.6 小结 288
第8章 高级篇——特征分析 289
8.1 尺度空间 290
8.1.1 尺度与旋转不变性 290
8.1.2 特征点尺度变换 290
8.2 特征描述子 291
8.2.1 SIFT特征 292
8.2.2 SURF特征 296
8.2.3 ORB特征 300
8.3 方向梯度直方图HOG 302
8.3.1 HOG原理 302
8.3.2 HOG特征提取步骤 303
8.3.3 HOGDescriptor特征描述类 304
8.3.4 HOG特征描述实现 305
8.4 局部二值模式LBP 309
8.4.1 经典LBP 309
8.4.2 圆形LBP 311
8.5 Haar特征描述 314
8.5.1 Haar原理 314
8.5.2 Haar特征提取 315
8.6 应用实例 317
8.6.1 最近邻特征点目标提取 317
8.6.2 最大极值稳定区域匹配MSER 320
8.6.3 字符特征提取 324
8.6.4 车牌字符SVM训练 327
8.7 小结 331
第9章 高级篇——复杂视频处理技术 332
9.1 视频稳像技术 333
9.2 图像拼接 338
9.2.1 拼接原理及过程 338
9.2.2 图像拼接实现 339
9.3 高动态范围图像HDR 342
9.3.1 HDR合成技术 342
9.3.2 HDR合成原理 342
9.3.3 OpenCV实现 343
9.4 背景建模 344
9.4.1 背景差分 345
9.4.2 混合高斯背景建模 345
9.4.3 混合高斯背景建模实现 346
9.4.4 混合模型MOG2成员参数设定 348
9.4.5 KNN模型背景建模实现 349
9.4.6 GMG模型背景建模实现 351
9.5 级联分类器——人脸检测 353
9.5.1 级联分类器 353
9.5.2 CascadeClassifier类 353
9.6 应用实例 355
9.6.1 运动目标提取 355
9.6.2 TLD单目标跟踪 358
9.6.3 人眼检测与跟踪 361
9.7 小结 365
附录A 366
1——代码清单 366
2——CMake编译OpenCV3.1源码 372
3——OpenCV3.1Extra扩展库 375
参考文献 379