本书以案例的形式介绍OpenCV 2.X的新特性和C++新接口,案例中包含具体的代码与详细的说明。本书很好地平衡了基础知识与进阶内容,要求读者具有基础的C++知识。
样章试读
目录
- 目录
第1章 接触图像
1.1 引言 1
1.2 安装OpenCV库 1
1.3 使用MS VisualC++创建OpenCV工程 4
1.4 使用Qt创建OpenCV项目 12
1.5 显示及保存图像 18
1.6 使用Qt创建GUI应用 22
第2章 操作像素
2.1 引言 29
2.2 存取像素值 30
2.3 使用指聽历图像 33
2.4 使用迭代器遍历图像 40
2.5 编写高效的图像遍历循环 43
2.6 遍历图像和邻域雛 46
2.7 进行简单的图像算术 50
2.8 定义感兴趣区域 53
第3章 基于类的图像处理
3.1 引言 57
3.2 在算法设计中使用策略(Strategy) 57
3.3 使用控制器(Controller)实现模块间通信 63
3.4 使用单件(Singleton)设计 67
3.5 使用模型-视图-控制器(Model-View-Contoller)架构设计应用程序 70
3.6 颜色空间转换 73
第4章 使用直方图统计像素
4.1 引言 77
4.2 计算图像的直方图 77
4.3 使用査找表修改图像外观 84
4.4 直方图均衡化 88
4.5 反投影直方图以检测特定的图像内容 89
4.6 使用均值漂移(Mean Shift)算法査找物体 95
4.7 通过比较直方图检索相似图片 99
第5章 基于形态学运算的图像变换
5.1 引言 103
5.2 使用形态学滤波对图像进行腐蚀、膨胀运算 103
5.3 使用形态学滤波对图像进行开闭运算 107
5.4 使用形态学滤波对图像进行边缘及角点检测 110
5.5 使用分水岭算法对图像进行分割 116
5.6 使用GrabCut算法提取前景物体 121
第6章 图像滤波
6.1 引言 125
6.2 使用低通滤波器 126
6.3 使用中值滤波器 130
6.4 使用方向滤波器检测边缘 132
6.5 计算图像的拉普拉斯变换 138
第7章 提取直线、轮廓及连通区域
7.1 引言 143
7.2 使用Canny算子检测轮廓 143
7.3 使用霍夫变换检测直线 146
7.4 用直线拟合一组点 156
7.5 提取连通区域的轮廓 160
7.6 计算连通区域的職描述符 164
第8章 检测并匹配兴趣点
8.1 引言 167
8.2 检测Harris角点 167
8.3 检测FAST特征 177
8.4 检测尺度不变的SURF特征 180
8.5 描述SURF特征 185
第9章 估算图像间的投影关系
9.1 引言 189
9.2 相机标定 191
9.3 计算一对图像的基础矩阵 198
9.4 使用随机采样一致算法(RANSAC)进行图像匹配 202
9.5 计算两幅图之间的单应矩阵 211
第10章 处理视频序列
10.1 引言 215
10.2 读取视频序列 215
10.3 处理视频帧 219
10.4 写入视频序列 228
10.5 跟踪视频巾的特征点 233
10.6 提取视频中的前景物休 239
附录 OpenCV3介绍及代码导读 245