基础知识篇 第1章 C++语言介绍 002 1.1 C++语言程序设计 002 1.1.1 变量的定义和赋值 002 1.1.2 数据类型和运算符 003 1.1.3 输入与输出 004 1.2 C++语言���本结构 004 1.2.1 顺序结构 004 1.2.2 选择结构 005 1.2.3 循环结构 006 1.3 C++程序基本结构 007 1.3.1 头文件 007 1.3.2 命名空间 007 1.3.3 全局变量 008 1.3.4 main()函数 009 1.3.5 局部变量 011 1.3.6 函数 011 1.3.7 注释 012 第2章 OpenCV 概述 014 2.1 OpenCV 介绍 014 2.2 机器视觉与OpenCV 发展史 015 2.2.1 机器视觉发展史 015 2.2.2 OpenCV发展史 016 2.3 OpenCV 的应用与前景 017 第3章 OpenCV 的环境搭建 018 3.1 OpenCV 4.7.0 简介 018 3.2 安装OpenCV 的准备工作 018 3.3 安装步骤 021 3.4 安装环境配置 023 OpenCV 基础应用篇 第4章 图像与视频的读取 028 4.1 读取图像 028 4.2 读取视频 029 4.3 调用摄像头 030 4.4 功能函数 031 4.4.1 Mat类对象 031 4.4.2 VideoCapture类对象 031 4.4.3 读取图片、视频功能函数“imread” 032 4.4.4 图片、视频和摄像头显示功能函数“imshow” 032 4.4.5 图像刷新功能函数“waitKey” 032 4.5 代码演示 033 第5章 图像和视频的保存 035 5.1 保存目标图像 035 5.2 图像保存功能函数“imwrite” 035 5.3 图像保存代码演示 036 5.4 保存目标视频 036 5.5 视频保存功能函数 037 5.5.1 视频宽度属性函数“CAP_PROP_FRAME_WIDTH” 037 5.5.2 视频高度属性函数“CAP_PROP_FRAME_HEIGHT” 038 5.5.3 视频总帧数属性函数“CAP_PROP_FRAME_COUNT” 038 5.5.4 视频帧率属性函数“CAP_PROP_FPS” 038 5.5.5 VideoWriter类对象 038 5.5.6 视频文件关闭释放函数“release” 039 5.6 视频保存代码演示 040 第6章 图像的预处理操作 042 6.1 图像颜色空间转换 042 6.1.1 图像灰度变换 042 6.1.2 颜色空间转换函数“cvtColor” 044 6.1.3 图像灰度变换代码演示 045 6.2 高斯模糊 045 6.2.1 高斯模糊函数“GaussianBlur” 047 6.2.2 高斯模糊代码演示 048 6.3 中值滤波 048 6.3.1 中值滤波函数“medianBlur” 049 6.3.2 中值滤波代码演示 050 6.4 边缘检测 050 6.4.1 边缘检测函数“Canny” 052 6.4.2 边缘检测流程代码演示 053 6.5 图像的腐蚀与膨胀 053 6.5.1 图像二值化函数“threshold” 055 6.5.2 OTSU算法 056 6.5.3 TRIANGLE (三角法)算法 058 6.5.4 获取结构元素函数“getStructuringElement” 059 6.5.5 图像的膨胀操作函数“dilate” 060 6.5.6 图像的腐蚀操作函数“erode” 060 6.5.7 图像的膨胀与腐蚀操作代码演示 061 第7章 图像的绘制 063 7.1 创建、绘制自定义图像 063 7.2 功能函数 065 7.2.1 图像创建函数“Mat” 065 7.2.2 圆形绘制函数“circle” 066 7.2.3 矩形绘制函数“rectangle” 066 7.2.4 文本放置函数“putText” 067 7.3 代码演示 068 OpenCV 进阶篇 第8章 获得翘曲图片 070 8.1 目标图像 070 8.2 获得目标像素点坐标 071 8.3 创建结果像素点坐标 071 8.4 获得图像透视变换矩阵 072 8.5 图像透视变换 072 8.5.1 获取透视变换矩阵函数“getPerspectiveTransform” 073 8.5.2 透视变换函数“warpPerspective” 073 8.6 案例优化 074 8.7 代码演示 075 第9章 几何形状检测 076 9.1 目标图像 076 9.2 图像的预处理 076 9.3 构建检测识别模块 078 9.3.1 形状轮廓检测标记功能 078 9.3.2 形状轮廓判断标识功能 079 9.4 功能函数 080 9.4.1 轮廓查找函数“findContours” 080 9.4.2 弧长计算函数“arcLength” 082 9.4.3 多边形拟合函数“approxPolyDP” 082 9.4.4 边界矩形函数“boundingRect” 083 9.4.5 轮廓绘制函数“drawContours” 083 9.5 案例优化 084 9.6 代码演示 085 第10章 人脸检测 088 10.1 目标图像 088 10.2 人脸识别相关概念 089 10.2.1 级联分类器 089 10.2.2 Haar人脸特征 089 10.2.3 积分图加速法 090 10.2.4 AdaBoost学习算法 090 10.2.5 强分类器的级联 092 10.3 利用级联分类器进行人脸识别 092 10.4 功能函数 093 10.4.1 CascadeClassifier 093 10.4.2 detectMultiScale 094 10.5 代码演示 095 OpenCV 提高篇 第11章 创建颜色选择器 098 11.1 使用VS 2017 创建颜色选择器 098 11.1.1 创建调节面板 098 11.1.2 HSV颜色空间 099 11.1.3 创建颜色遮罩窗口与视频捕捉窗口 100 11.1.4 功能函数 101 11.1.5 案例优化 103 11.1.6 代码演示 104 11.2 使用VS Code 创建颜色选择器 105 11.2.1 调用摄像头 106 11.2.2 视频翻转 107 11.2.3 进行颜色空间转换 108 11.2.4 设置颜色通道 111 11.2.5 创建遮罩 112 11.2.6 创建窗口 114 11.2.7 创建Trackbar 115 11.2.8 调节各个颜色通道值 116 11.2.9 代码演示 118 第12章 跟踪、绘制颜色路径 122 12.1 使用VS 2017 跟踪、绘制颜色路径 122 12.1.1 寻找目标颜色,获取颜色轮廓 123 12.1.2 获取颜色轮廓关键点向量 123 12.1.3 绘制关键点的行动路径 124 12.1.4 案例优化 124 12.1.5 代码演示 125 12.2 使用VS Code 跟踪、绘制颜色路径 128 12.2.1 调用摄像头 128 12.2.2 视频翻转 129 12.2.3 进行颜色空间转换 130 12.2.4 设置颜色通道 130 12.2.5 创建遮罩 131 12.2.6 创建窗口 132 12.2.7 创建Trackbar 133 12.2.8 确定目标颜色通道值 135 12.2.9 定义矩阵向量 135 12.2.10 进行颜色空间转换 136 12.2.11 轮廓检测 137 12.2.12 过滤干扰项 138 12.2.13 轮廓绘制 142 12.2.14 矩形绘制 144 12.2.15 创建遮罩 145 12.2.16 颜色检测 145 12.2.17 圆形绘制 145 12.2.18 轨迹绘制 146 12.2.19 代码演示 147 第13章 文档扫描 150 13.1 VS 2017 文档扫描 150 13.1.1 图像的预处理 150 13.1.2 轮廓获取 151 13.1.3 角点获取 153 13.1.4 文档翘曲 154 13.1.5 案例优化 155 13.1.6 代码演示 155 13.2 VS Code 文档扫描 158 13.2.1 读取目标图像 158 13.2.2 预处理:高斯模糊 159 13.2.3 预处理:边缘检测 160 13.2.4 预处理:膨胀操作 163 13.2.5 预处理:腐蚀操作 165 13.2.6 定义矩阵向量 166 13.2.7 轮廓检测 167 13.2.8 过滤干扰项 167 13.2.9 得到轮廓 168 13.2.10 轮廓坐标点排序 169 13.2.11 获得图像透视变换矩阵 170 13.2.12 图像透视变换 172 13.2.13 显示结果图像 173 13.2.14 代码演示 173 OpenCV 技术篇 第14章 OpenCV 与机器学习 178 14.1 传统机器学习 178 14.1.1 逻辑回归 178 14.1.2 K近邻 179 14.1.3 支持向量机(SVM) 179 14.1.4 贝叶斯网络 180 14.2 OpenCV 与深度学习 180 14.2.1 用GoogLeNet模型实现图像分类 181 14.2.2 用SSD模型实现对象检测 181 14.2.3 用FCN模型实现图像分割 182 14.2.4 用CNN模型预测年龄和性别 182 14.2.5 用GOTURN模型实现对象跟踪 182 第15章 基于深度学习的路面病害检测案例 184 15.1 深度学习在路面病害检测中的应用背景 184 15.2 数据集构建 184 15.3 基于DeepLabV3+的路面病害检测方法 187 15.3.1 模型改进 187 15.3.2 评价指标 189 15.3.3 模型训练与测试 190 15.3.4 不同模型的对比实验 191 15.3.5 不同模型检测病害的可视化效果对比 192 参考文献 194