第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
8.5 多尺度FAST特征的检测 187
8.5.1 如何实现 187
8.5.2 实现原理 188
8.5.3 扩展阅读 188
8.5.4 参阅 190
第9章 描述和匹配兴趣点 191
9.1 简介 191
9.2 局部模板匹配 191
9.2.1 如何实现 192
9.2.2 实现原理 194
9.2.3 扩展阅读 195
9.2.4 参阅 196
9.3 描述局部强度值模式 196
9.3.1 如何实现 197
9.3.2 实现原理 198
9.3.3 扩展阅读 200
9.3.4 参阅 203
9.4 用二值特征描述关键点 203
9.4.1 如何实现 203
9.4.2 实现原理 204
9.4.3 扩展阅读 205
9.4.4 参阅 206
第10章 估算图像之间的投影关系 207
10.1 简介 207
10.2 相机校准 209
10.2.1 如何实现 209
10.2.2 实现原理 213
10.2.3 扩展阅读 216
10.2.4 参阅 216
10.3 计算图像对的基础矩阵 216
10.3.1 准备工作 217
10.3.2 如何实现 218
10.3.3 实现原理 219
10.3.4 参阅 220
10.4 用RANSAC(随机抽样一致性)算法匹配图像 220
10.4.1 如何实现 221
10.4.2 实现原理 224
10.4.3 扩展阅读 225
10.5 计算两幅图像之间的单应矩阵 226
10.5.1 准备工作 226
10.5.2 如何实现 227
10.5.3 实现原理 229
10.5.4 扩展阅读 230
10.5.5 参阅 232
第11章 处理视频序列 233
11.1 简介 233
11.2 读取视频序列 233
11.2.1 如何实现 233
11.2.2 实现原理 235
11.2.3 扩展阅读 236
11.2.4 参阅 236
11.3 处理视频帧 236
11.3.1 如何实现 236
11.3.2 实现原理 237
11.3.3 扩展阅读 241
11.3.4 参阅 244
11.4 写入视频帧 244
11.4.1 如何实现 244
11.4.2 实现原理 245
11.4.3 扩展阅读 247
11.4.4 参阅 249
11.5 跟踪视频中的特征点 249
11.5.1 如何实现 249
11.5.2 实现原理 253
11.5.3 参阅 254
11.6 提取视频中的前景物体 254
11.6.1 如何实现 255
11.6.2 实现原理 257
11.6.3 扩展阅读 257
11.6.4 参阅 259