第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
展开