关于我们
![]() ![]() |
从零开始学OpenCV 读者对象:本书适合Python OpenCV、人工智能、机器视觉初学者自学使用,也可用作高等院校相关专业的教材及参考书。
本书从零基础读者的角度出发,通过通俗易懂的语言、丰富多彩的实例,循序渐进地让读者在实践中学习Python OpenCV编程知识,并提升自己的实际开发能力。
全书共分为4篇16章,内容包括搭建开发环境、图像处理基础、NumPy模块、绘制图形和文字、阈值、图像运算、腐蚀与膨胀、图像的几何变换、滤波器、模板匹配、图像轮廓、图形检测、视频处理、人脸跟踪与识别、MR机读答题卡、MR智能视频打卡系统等。书中知识点讲解细致,侧重介绍每个知识点的使用场景,涉及的代码给出了详细的注释,可以使读者轻松领会OpenCV程序开发的精髓,快速提高开发技能。同时,本书配套了大量教学视频,扫码即可观看,还提供所有程序源文件,方便读者实践。 本书适合Python OpenCV、人工智能、机器视觉初学者自学使用,也可用作高等院校相关专业的教材及参考书。
第1篇 基础知识篇
第章 搭建开发环境 2 视频讲解:6节,26分钟 1.1 OpenCV概述 3 1.1.1 OpenCV包含的模块 3 1.1.2 OpenCV的发展历程 4 1.1.3 OpenCV的应用 4 1.1.4 Python与OpenCV 4 1.2 Python的下载和安装 5 1.2.1 如何查看计算机操作系统的位数 5 1.2.2 下载Python安装包 5 1.2.3 Windows 64位系统上安装Python 7 1.2.4 测试Python是否安装成功 9 1.3 Python OpenCV的下载和安装 10 1.3.1 下载和安装OpenCV-Contrib-Python库 10 1.3.2 测试OpenCV-Contrib-Python库和NumPy库是否安装成功 11 1.4 PyCharm的下载和安装 11 1.4.1 下载PyCharm 11 1.4.2 安装PyCharm 12 1.4.3 启动并配置PyCharm 14 本章知识思维导图 19 第2章 图像处理基础 20 视频讲解:13节,38分钟 2.1 图像处理的基本操作 21 2.1.1 读取图像 21 [实例2.1] 读取当前项目目录下的图像 21 2.1.2 显示图像 22 [实例2.2] 窗口显示图像 23 2.1.3 保存图像 24 [实例2.3] 保存图像 24 2.1.4 获取图像属性 25 [实例2.4] 打印彩色图像和灰度图像的属性 25 2.2 像素 26 2.2.1 确定像素的位置 26 [实例2.5] 表示图2.8中的指定像素 28 2.2.2 获取像素的BGR值 28 2.2.3 修改像素的BGR值 30 [实例2.6] 修改图2.7中的指定区域内的所有像素 30 2.3 色彩空间 31 2.3.1 GRAY色彩空间 31 [实例2.7] 从BGR色彩空间转换到GRAY色彩空间 32 2.3.2 HSV色彩空间 33 [实例2.8] 从BGR色彩空间转换到HSV色彩空间 34 2.4 通道 34 2.4.1 拆分通道 34 [实例2.9] 拆分一幅BGR图像中的通道 35 [实例2.10] 拆分一幅HSV图像中的通道 36 2.4.2 合并通道 38 [实例2.11] 按B→G→R的顺序合并通道 38 [实例2.12] 合并H通道图像、S通道图像和V通道图像 39 2.4.3 综合运用拆分通道和合并通道 40 [实例2.13] 只把H通道的值调整为180 40 2.4.4 alpha通道 42 [实例2.14] 调整A通道的值 42 本章知识思维导图 44 第3章 NumPy模块 45 视频讲解:5节,35分钟 3.1 NumPy模块与OpenCV 46 3.2 数组的类型 46 3.3 创建数组 47 3.3.1 最常规的array()方法 47 [实例3.1] 创建一维数组和二维数组 48 [实例3.2] 创建浮点类型数组 48 [实例3.3] 创建三维数组 49 3.3.2 创建指定维度和数据类型未初始化的数组 49 [实例3.4] 创建2行3列的未初始化数组 49 3.3.3 创建用0填充的数组 49 [实例3.5] 创建纯0数组 49 3.3.4 创建用1填充的数组 50 [实例3.6] 创建纯1数组 50 3.3.5 创建随机数组 50 [实例3.7] 创建随机数组 50 3.4 操作数组 51 3.4.1 加法运算 51 [实例3.8] 对数组做加法运算 51 3.4.2 减法和乘除法运算 51 [实例3.9] 对数组做减法、乘法和除法运算 52 3.4.3 幂运算 52 [实例3.10] 两个数组做幂运算 52 3.4.4 比较运算 53 [实例3.11] 使用逻辑运算符比较数组 53 3.4.5 复制数组 53 [实例3.12] 复制数据,比较复制的结果与原数组是否相同 53 [实例3.13] 复制图像 54 3.5 数组的索引和切片 55 3.5.1 索引 55 [实例3.14] 查找一维数组索引为0的元素 55 3.5.2 切片式索引 55 [实例3.15] 获取数组中某范围内的元素 56 [实例3.16] 使用不同的切片式索引操作获取数组中的元素 56 3.5.3 二维数组索引 57 [实例3.17] 用三种方式获取二维数组中的元素 57 3.5.4 二维数组切片式索引 58 [实例3.18] 对二维数组进行切片式索引操作 58 3.6 创建图像 59 3.6.1 创建黑白图像 59 [实例3.19] 创建纯黑色图像 59 [实例3.20] 创建纯白色图像 59 [实例3.21] 在黑色图像内部绘制白色矩形 60 [实例3.22] 创建黑白相间的图像 60 3.6.2 创建彩色图像 61 [实例3.23] 创建彩色图像 61 3.6.3 创建随机图像 62 [实例3.24] 创建随机像素的雪花点图像 62 3.7 拼接图像 63 3.7.1 水平拼接数组 63 3.7.2 垂直拼接数组 63 3.7.3 在图像处理中的应用 64 [实例3.25] 按照水平和垂直两种方式拼接两个图像 64 本章知识思维导图 66 第4章 绘制图形和文字 67 视频讲解:9节,23分钟 4.1 线段的绘制 68 [实例4.1] 绘制线段并拼成一个“王”字 68 [实例4.2] 绘制99条长度、方向、宽度、颜色随机的线段 69 4.2 矩形的绘制 71 [实例4.3] 绘制一个矩形边框 71 [实例4.4] 绘制正方形 72 4.3 圆形的绘制 73 [实例4.5] 绘制“交通灯” 74 [实例4.6] 绘制同心圆 74 [实例4.7] 绘制27个随机实心圆 75 4.4 多边形的绘制 76 [实例4.8] 绘制一个等腰梯形边框 77 [实例4.9] 绘制五角星 78 4.5 文字的绘制 79 [实例4.10] 绘制文字“OpenCV” 80 4.5.1 文字的斜体效果 81 [实例4.11] 绘制指定字体样式的文字并呈现斜体效果 81 4.5.2 文字的垂直镜像效果 82 [实例4.12] 绘制呈现垂直镜像效果的“OpenCV” 82 4.5.3 在图像上绘制文字 83 [实例4.13] 在图像上绘制文字 83 4.6 动态绘制图形 83 [实例4.14] 弹球动画 84 本章知识思维导图 86 第5章 阈值 88 视频讲解:10节,18分钟 5.1 阈值概述 89 5.2 阈值处理函数 89 5.3 二值化处理 90 5.3.1 “非黑即白”的图像 90 [实例5.1] 二值化阈值处理白黑渐变图 90 [实例5.2] 观察不同阈值的处理效果 91 [实例5.3] 观察不同最大值的处理效果 92 5.3.2 反二值化处理 93 [实例5.4] 对图像进行反二值化处理 93 5.4 零处理 94 5.4.1 低于阈值零处理 95 [实例5.5] 对图像进行低于阈值零处理 95 5.4.2 超出阈值零处理 96 [实例5.6] 对图像进行超出阈值零处理 96 5.5 截断处理 97 [实例5.6] 对图像进行截断处理 97 5.6 自适应处理 99 [实例5.8] 无法得到清晰有效的结果 99 [实例5.9] 显示自适应阈值处理的结果 101 5.7 Otsu方法 102 [实例5.10] 实现Otsu方法的阈值处理 103 5.8 阈值处理的应用 104 [实例5.11] 利用阈值处理勾勒楼房和汽车的轮廓 104 [实例5.12] 阈值调试器 106 本章知识思维导图 107 第6章 图像运算 108 视频讲解:9节,65分钟 6.1 掩模 109 [实例6.1] 创建3通道掩模图像 110 6.2 图像的加法运算 111 [实例6.2] 分别使用“+”和add()方法计算图像和 111 [实例6.3] 显示图像底片的效果 112 [实例6.4] 模拟三色光叠加得白光 113 [实例6.5] 利用掩模遮盖相加结果 114 6.3 图像的位运算 115 6.3.1 按位与运算 115 [实例6.6] 花图像与十字掩模做与运算 116 6.3.2 按位或运算 117 [实例6.7] 花图像与十字掩模做或运算 118 6.3.3 按位取反运算 119 [实例6.8] 对花图像进行取反运算 119 6.3.4 按位异或运算 119 [实例6.9] 花图像与十字掩模做异或运算 121 [实例6.10] 对图像进行加密、解密 121 6.3.5 图像的位运算的应用 123 [实例6.11] 粘贴带透明区域的图像 123 6.4 合并图像 124 6.4.1 加权和 125 [实例6.12] 利用计算加权和的方式实现多次曝光效果 125 [实例6.13] 为图像添加水印效果 126 6.4.2 覆盖 127 [实例6.14] 将小猫图像贴到沙滩上 127 [实例6.15] 拼接禁止吸烟图像 129 本章知识思维导图 130 第7章 腐蚀与膨胀 131 视频讲解:7节,39分钟 7.1 腐蚀 132 [实例7.1] 将仙人球图像中的刺都抹除掉 133 7.2 膨胀 134 [实例7.2] 将图像加工成“近视眼”效果 135 7.3 开运算 136 [实例7.3] 抹除黑种草图像中的针状叶子 136 7.4 闭运算 137 [实例7.4] 对汉字图片进行闭运算 138 7.5 形态学方法 139 7.5.1 梯度运算 140 [实例7.5] 通过梯度运算画出小蜘蛛的轮廓 140 7.5.2 顶帽运算 141 [实例7.6] 通过顶帽运算画出小蜘蛛的腿 141 7.5.3 黑帽运算 142 [实例7.7] 通过黑帽运算画出小蜘蛛身上的花纹 142 本章知识思维导图 143 第8章 图像的几何变换 144 视频讲解:8节,41分钟 8.1 缩放 145 8.1.1 dsize参数实现缩放 145 [实例8.1] 将图像按照指定宽高进行缩放 145 8.1.2 fx参数和fy参数实现缩放 145 [实例8.2] 将图像按照指定比例进行缩放 146 8.2 翻转 148 [实例8.3] 同时实现三种翻转效果 148 8.3 仿射变换 150 8.3.1 平移 151 [实例8.4] 让图像向右下方平移 151 8.3.2 旋转 152 [实例8.5] 让图像逆时针旋转 153 8.3.3 倾斜 154 [实例8.6] 让图像向右倾斜 154 8.4 透视 156 [实例8.7] 模拟从底部观察图像得到的透视效果 157 [实例8.8] 生成图书封面俯视图 159 8.5 cmath模块 160 [实例8.9] 呈现波浪效果的图像 161 本章知识思维导图 162 第9章 滤波器 163 视频讲解:6节,35分钟 9.1 图像平滑处理 164 9.2 均值滤波器 164 [实例9.1] 对花朵图像进行均值滤波操作 165 9.3 中值滤波器 167 [实例9.2] 对花朵图像进行中值滤波操作 167 9.4 高斯滤波器 168 [实例9.3] 对花朵图像进行高斯滤波操作 170 9.5 双边滤波器 171 [实例9.4] 对一幅人脸图像进行“磨皮” 172 9.6 拉普拉斯高通滤波器 173 [实例9.5] 锐化图像 174 本章知识思维导图 175 第10章 模板匹配 178 视频讲解:5节,13分钟 10.1 模板匹配方法 179 10.2 单模板匹配 181 10.2.1 单目标匹配 181 [实例10.1] 为原始图片中匹配成功的区域绘制红框 181 [实例10.2] 从两幅图像中选择最佳的匹配结果 183 [实例10.3] 查找重复的图像 184 10.2.2 多目标匹配 185 [实例10.4] 为原始图片中所有匹配成功的图案绘制红框 185 [实例10.5] 统计一条快轨线路的站台总数 187 [实例10.6] 优先选择直线距离最短的地铁站 188 10.3 多模板匹配 190 [实例10.7] 同时匹配3个不同的模板 190 [实例10.8] 控制台输出4辆车分别停在了哪个车位上 192 本章知识思维导图 193 第11章 图像轮廓 194 视频讲解:6节,37分钟 11.1 图像的轮廓 195 11.1.1 查找轮廓 195 [实例11.1] 获取图像轮廓的极点 196 [实例11.2] 获取图像轮廓的重心坐标 197 [实例11.3] 获取图像轮廓的周长 199 [实例11.4] 比较两个图像轮廓面积的大小 200 11.1.2 绘制轮廓 200 [实例11.5] 绘制几何图像的轮廓 201 [实例11.6] 绘制花朵的轮廓 203 11.2 轮廓拟合 204 11.2.1 矩形包围框 204 [实例11.7] 为爆炸图形绘制矩形包围框 204 11.2.2 圆形包围框 205 [实例11.8] 为爆炸图形绘制圆形包围框 205 11.2.3 最小三角包围框 206 [实例11.9] 绘制最小三角包围框 207 11.2.4 最优椭圆包围框 207 [实例11.10] 绘制最优拟合椭圆包围框 208 11.3 凸包 208 [实例11.11] 为爆炸图形绘制凸包 209 本章知识思维导图 210 第12章 图形检测 211 视频讲解:3节,25分钟 12.1 Canny边缘检测 212 [实例12.1] 使用Canny算法检测花朵边缘 212 [实例12.2] 能否直接对包含噪声的图像进行Canny边缘检测 214 12.2 霍夫变换 215 12.2.1 直线检测 215 [实例12.3] 检测笔图像中出现的直线 215 12.2.2 圆环检测 216 [实例12.4] 检测硬币图像中出现的圆环 217 本章知识思维导图 218 第13章 视频处理 219 视频讲解:16节,38分钟 13.1 读取并显示摄像头视频 220 13.1.1 VideoCapture类 220 13.1.2 如何使用VideoCapture类 221 [实例13.1] 读取并显示摄像头视频 221 [实例13.2] 摄像头视频由彩色视频转换为灰度视频 222 [实例13.3] 显示并保存摄像头视频某一时刻的图像 223 [实例13.4] 读取并显示两个摄像头视频 224 13.2 播放视频文件 225 13.2.1 读取并显示视频文件 225 [实例13.5] 读取并显示视频文件 225 [实例13.6] 视频文件由彩色视频转换为灰度视频 226 [实例13.7] 分解视频 227 [实例13.8] 按照一定的帧数间隔保存帧 228 13.2.2 视频的暂停播放和继续播放 229 [实例13.9] 视频的暂停播放和继续播放 229 13.2.3 获取视频文件的属性 230 [实例13.10] 获取并输出视频文件的指定属性值 231 [实例13.11] 动态显示视频文件的属性值 231 13.3 保存视频文件 232 13.3.1 VideoWriter类 233 13.3.2 如何使用VideoWriter类 234 [实例13.12] 保存一段摄像头视频 234 [实例13.13] 保存一段时长为10s的摄像头视频 235 [实例13.14] 保存视频文件 236 [实例13.15] 保存视频文件中的前10s视频 238 本章知识思维导图 239 第14章 人脸跟踪与识别 240 视频讲解:10节,21分钟 14.1 人脸跟踪 241 14.1.1 级联分类器 241 14.1.2 方法 242 14.1.3 分析人脸位置 243 [实例14.1] 在图像的人脸位置绘制红框 243 [实例14.2] 戴墨镜特效 244 14.2 跟踪其他内容 245 14.2.1 眼睛跟踪 245 [实例14.3] 在图像的眼睛位置绘制红框 245 14.2.2 猫脸跟踪 246 [实例14.4] 在图像里找到猫脸的位置 246 14.2.3 行人跟踪 247 [实例14.5] 在图像里行人的位置 247 14.2.4 车牌跟踪 248 [实例14.6] 标记图像中车牌的位置 248 14.3 人脸识别 249 14.3.1 Eigenfaces人脸识别器 249 [实例14.7] 使用Eigenfaces识别人脸 250 14.3.2 Fisherfaces人脸识别器 252 [实例14.8] 使用Fisherfaces识别人脸 253 14.3.3 Local Binary Pattern Histogram人脸识别器 254 [实例14.9] 使用LBPH识别人脸 255 本章知识思维导图 257 第15章 MR机读答题卡 260 视频讲解:1节,13分钟 15.1 开发背景 261 15.2 程序设计 261 15.2.1 开发环境 261 15.2.2 功能结构 261 15.2.3 业务流程 262 15.2.4 程序结构 262 15.3 模块设计 263 15.3.1 公共工具模块 263 15.3.2 获取矩形图案的平面透视图 265 15.3.3 判断填涂的是哪一个选项 267 15.3.4 判断是哪一道题目 268 15.3.5 显示机读卡的平面透视图 270 15.3.6 显示对平面透视图进行二值化阈值处理的结果 270 15.3.7 显示对二值化阈值处理后的图像进行闭运算后的结果 271 15.3.8 保存机读卡上填涂的选项 272 15.3.9 打印在机读卡上填涂的答案 272 本章知识思维导图 273 第16章 MR智能视频打卡系统 274 视频讲解:17节,84分钟 16.1 需求分析 275 16.2 系统设计 276 16.2.1 开发环境 276 16.2.2 功能结构 276 16.2.3 业务流程 277 16.2.4 项目结构 280 16.3 文件系统设计 280 16.4 数据实体模块设计 281 16.5 工具模块设计 283 16.5.1 公共工具模块 283 16.5.2 IO流工具模块 285 16.5.3 摄像头工具模块 290 16.6 服务模块设计 292 16.6.1 人事服务模块 292 16.6.2 人脸识别服务模块 301 16.7 程序入口设计 303 16.7.1 用户权限管理 303 16.7.2 主菜单设计 304 16.7.3 人脸打卡功能 306 16.7.4 为新员工登记人脸照片样本 307 16.7.5 删除旧员工全部数据 308 16.7.6 查询员工打卡记录 309 16.7.7 生成考勤报表 311 16.7.8 自定义上下班时间 313 16.7.9 启动程序 315 本章知识思维导图 315
你还可能感兴趣
我要评论
|