Python OpenCV从入门到精通

摘要

《Python OpenCV从入门到精通》以在Python开发环境下运用OpenCV处理图像为主线,全面介绍OpenCV提供的处理图像的方法。全书共分为16章,包

《Python OpenCV从入门到精通》以在Python开发环境下运用OpenCV处理图像为主线,全面介绍OpenCV提供的处理图像的方法。全书共分为16章,包括Python与OpenCV、搭建开发环境、图像处理的基本操作、像素的操作、色彩空间与通道、绘制图形和文字、图像的几何变换、图像的阈值处理、图像的运算、模板匹配、滤波器、腐蚀与膨胀、图形检测、视频处理、人脸检测和人脸识别以及MR智能视频打卡系统。《Python OpenCV从入门到精通》图文丰富,直观呈现处理后的图像与原图之间的差异;在讲解OpenCV提供的方法时,列举了其中的必选参数和可选参数,读者能更快地掌握方法的语法格式;最后一章以MR智能视频打卡系统为例,指导读者系统地运用OpenCV解决工作中的实际问题。《Python OpenCV从入门到精通》专注于图像处理本身,尽可能忽略图像处理算法的具体实现细节,降低阅读和学习的难度,有助于读者更好更快地达到入门的目的。此外,《Python OpenCV从入门到精通》资源包中提供了完整的示例源码、要使用到的图像等配套学习资源。

第1篇 入门篇

第1章 Python与OpenCV 2

1.1 Python概述 2

1.1.1 什么是Python 2

1.1.2 Python的版本 3

1.1.3 Python的应用 3

1.2 OpenCV概述 5

1.2.1 计算机视觉 5

1.2.2 OpenCV包含的模块 6

1.2.3 OpenCV的发展历程 7

1.2.4 OpenCV的应用 7

1.2.5 Python OpenCV的开发工具 8

1.3 小结 8

第2章 搭建开发环境 9

2.1 Python的下载和安装 9

2.1.1 下载Python 10

2.1.2 安装Python 11

2.1.3 测试Python是否安装成功 12

2.2 Python OpenCV的下载和安装 13

2.2.1 下载和安装OpenCV-Contrib-Python库 13

2.2.2 测试OpenCV-Contrib-Python库和Numpy库是否安装成功 14

2.3 PyCharm的下载和安装 14

2.3.1 下载PyCharm 14

2.3.2 安装PyCharm 15

2.3.3 启动并配置PyCharm 16

2.4 小结 21

第3章 图像处理的基本操作 22

3.1 读取图像 22

3.2 显示图像 24

3.3 保存图像 26

3.4 获取图像属性 27

3.5 小结 28

第4章 像素的操作 29

4.1 像素 29

4.1.1 确定像素的位置 30

4.1.2 获取像素的BGR值 31

4.1.3 修改像素的BGR值 33

4.2 使用NumPy模块操作像素 34

4.2.1 NumPy概述 34

4.2.2 数组的类型 35

4.2.3 创建数组 36

4.2.4 操作数组 39

4.2.5 数组的索引和切片 42

4.2.6 创建图像 46

4.2.7 拼接图像 51

4.3 小结 53

第5章 色彩空间与通道 54

5.1 色彩空间 54

5.1.1 GRAY色彩空间 54

5.1.2 HSV色彩空间 56

5.2 通道 57

5.2.1 拆分通道 58

5.2.2 合并通道 59

5.2.3 综合运用拆分通道和合并通道 62

5.2.4 alpha通道 63

5.3 小结 65

第2篇 基础篇

第6章 绘制图形和文字 68

6.1 线段的绘制 68

6.2 矩形的绘制 70

6.3 圆形的绘制 72

6.4 多边形的绘制 75

6.5 文字的绘制 77

6.5.1 文字的斜体效果 79

6.5.2 文字的垂直镜像效果 80

6.5.3 在图像上绘制文字 81

6.6 动态绘制图形 82

6.7 小结 84

第7章 图像的几何变换 85

7.1 缩放 85

7.1.1 dsize参数实现缩放 86

7.1.2 fx和fy参数实现缩放 87

7.2 翻转 87

7.3 仿射变换 89

7.3.1 平移 90

7.3.2 旋转 92

7.3.3 倾斜 93

7.4 透视 95

7.5 小结 97

第8章 图像的阈值处理 98

8.1 阈值处理函数 99

8.2 “非黑即白”的图像 99

8.2.1 二值化处理 100

8.2.2 反二值化处理 103

8.3 零处理 104

8.3.1 低于阈值零处理 104

8.3.2 超出阈值零处理 105

8.4 截断处理 106

8.5 自适应处理 108

8.6 Otsu方法 111

8.7 阈值处理的作用 112

8.8 小结 114

第9章 图像的运算 115

9.1 掩模 115

9.2 图像的加法运算 117

9.3 图像的位运算 120

9.3.1 按位与运算 121

9.3.2 按位或运算 122

9.3.3 按位取反运算 124

9.3.4 按位异或运算 125

9.4 合并图像 128

9.4.1 加权和 128

9.4.2 覆盖 129

9.5 小结 132

第3篇 进阶篇

第10章 模板匹配 134

10.1 模板匹配方法 134

10.2 单模板匹配 136

10.2.1 单目标匹配 136

10.2.2 多目标匹配 140

10.3 多模板匹配 144

10.4 小结 148

第11章 滤波器 149

11.1 均值滤波器 149

11.2 中值滤波器 151

11.3 高斯滤波器 153

11.4 双边滤波器 156

11.5 小结 158

第12章 腐蚀与膨胀 159

12.1 腐蚀 159

12.2 膨胀 162

12.3 开运算 163

12.4 闭运算 165

12.5 形态学运算 166

12.5.1 梯度运算 167

12.5.2 顶帽运算 168

12.5.3 黑帽运算 169

12.6 小结 170

第13章 图形检测 171

13.1 图像的轮廓 171

13.2 轮廓拟合 175

13.2.1 矩形包围框 176

13.2.2 圆形包围框 177

13.3 凸包 178

13.4 Canny边缘检测 180

13.5 霍夫变换 181

13.5.1 直线检测 181

13.5.2 圆环检测 183

13.6 小结 185

第14章 视频处理 186

14.1 读取并显示摄像头视频 186

14.1.1 VideoCapture类 187

14.1.2 如何使用VideoCapture类 188

14.2 播放视频文件 192

14.2.1 读取并显示视频文件 192

14.2.2 视频的暂停播放和继续播放 194

14.2.3 获取视频文件的属性 196

14.3 保存视频文件 198

14.3.1 VideoWriter类 198

14.3.2 如何使用VideoWriter类 200

14.4 小结 205

第15章 人脸检测和人脸识别 206

15.1 人脸检测 206

15.1.1 级联分类器 207

15.1.2 方法 208

15.1.3 分析人脸位置 209

15.2 检测其他内容 211

15.2.1 眼睛检测 211

15.2.2 猫脸检测 212

15.2.3 行人检测 213

15.2.4 车牌检测 214

15.3 人脸识别 215

15.3.1 Eigenfaces人脸识别器 215

15.3.2 Fisherfaces人脸识别器 218

15.3.3 Local Binary Pattern Histogram人脸识别器 221

15.4 小结 223

第4篇 项目篇

第16章 MR智能视频打卡系统 226

116.1 需求分析 227

16.2 系统设计 228

16.2.1 开发环境 228

16.2.2 功能结构 228

16.2.3 业务流程 229

16.2.4 项目结构 232

16.3 文件系统设计 232

16.4 数据实体模块设计 234

16.5 工具模块设计 235

16.5.1 公共工具模块 235

16.5.2 IO流模块 237

16.5.3 摄像头工具模块 242

16.6 服务模块设计 245

16.6.1 人事服务模块 245

16.6.2 人脸识别服务模块 254

16.7 程序入口设计 255

16.7.1 用户权限管理 255

16.7.2 主菜单设计 256

16.7.3 人脸打卡功能 258

16.7.4 为新员工登记人脸照片样本 259

16.7.5 删除员工全部数据 259

16.7.6 查询员工打卡记录 261

16.7.7 生成考勤报表 262

16.7.8 自定义上下班时间 265

16.7.9 启动程序 267

16.8 小结 267


Python OpenCV从入门到精通

《Python OpenCV从入门到精通》以在Python开发环境下运用OpenCV处理图像为主线,全面介绍OpenCV提供的处理图像的方法。全书共分为16章,包
阅读全文