Seal^_^头像
关注
【人工智能技术丛书】《OpenCV 4.5计算机视觉开发实战:基于Python》封面图

【人工智能技术丛书】《OpenCV 4.5计算机视觉开发实战:基于Python》

OpenCV 4.5计算机视觉开发实战:基于Python

作者:朱文伟 李建英 | 丛书名:人工智能技术丛书 | 定价:79元 | ISBN:9787302597636 | 出版日期:2022.02.01

图书封面

封面

荐语

近年来,OpenCV在图像分割、物体识别、运动跟踪、人脸识别、目标检测、机器视觉、机器人等领域大显身手。OpenCV内容之丰富,是目前开源视觉算法库中所罕见的。本书基于Python 3.8和OpenCV 4.5,面向初学者,涵盖传统的图像与视频处理方法,内容丰富,行文通俗,适合读者快速入门。

内容简介配图

内容简介

OpenCV是一个跨平台计算机视觉和机器学习软件库,也是计算机视觉领域的开发人员必须掌握的技术。本书基于Python 3.8全面、系统地介绍OpenCV 4.5的使用,并配套示例源代码、开发环境与答疑服务。
本书共分15章,主要内容包括计算机视觉概述、OpenCV的Python开发环境搭建、OpenCV基本操作、数组矩阵、图像处理模块、灰度变换和直方图修正、图像平滑、几何变换、图像边缘检测、图像分割、图像金字塔、图像形态学、视频处理,以及停车场车牌识别、物体识别、运动跟踪、人脸检测等案例。
本书既适合计算机视觉与图像处理、人工智能算法的开发人员阅读,也适合高等院校和培训机构计算机视觉与图像处理、人工智能等相关专业的师生教学参考。

作者简介配图

作者简介

朱文伟,名校计算机专业硕士,20年C\C++、Java开发经验。主导开发过密码、图形、人工智能等产品。精通Linux、Windows系统开发及数据库开发技术。著有图书

《Visual C++2013从入门到精通》

《密码学原理与Java实现》《Linux C与C++ 一线开发实践》

《OpenCV 4.5计算机视觉开发实战(基于VC++)》。

前言序言

前 言如今,计算机视觉算法的应用已经渗透到我们生活的方方面面。机器人、无人机、增强现实、虚拟现实、医学影像分析等无一不涉及计算机视觉算法。OpenCV是计算机视觉领域的一个图形与图像算法库,它由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB、C#、Ch、Ruby等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

它轻量级而且高效,在学术界、工业界都得到了广泛的使用。无论是初学者还是资深研究人员,都可以在其中找到得心应手的“武器”,帮助你在研究和应用开发的道路上披荆斩棘。关于本书近年来,在图像分割、物体识别、运动跟踪、人脸识别、目标检测、机器视觉、机器人等领域,OpenCV可谓大显身手。OpenCV内容之丰富,是目前开源视觉算法库中罕见的。

每年我们都能看到不少关于OpenCV的图书,但是随着OpenCV版本的更迭,部分学习资料已经过时。本书基于Python 3.8和OpenCV 4.5版本编写,面向初学者,涵盖传统的图形图像算法与视频处理方法,并配以示例代码,内容丰富,行文通俗。本书不仅剖析了大量OpenCV函数的调用细节,还对原理解释得清晰明了,让读者“知其然,并知其所以然”。

本书介绍OpenCV 4.5中220多个函数,并给出100多个示例程序,以及车牌识别、物体识别、运动跟踪、人脸检测等案例。在介绍OpenCV 4.5新技术的同时,尽量讲解其背后的原理和公式,为大家以后做专业的图像开发奠定基础。源码下载、开发环境与答疑服务本书示例源码、开发环境,请用微信扫描下方的二维码下载,可按扫描出来的页面提示,把链接转发到自己的邮箱中下载。

虽然笔者尽了最大努力编写本书,但书中依然可能存在疏漏,敬请读者提出宝贵意见和建议,作者答疑服务电子邮箱是[email protected],邮件主题写“OpenCV 4.5计算机视觉开发实战”。 本书读者与鸣谢本书需要有Python编程基础,适合以下读者阅读:? 计算机视觉领域的初学者? 人工智能图像处理开发人员? 高等院校计算机视觉课程的师生?

培训机构的师生本书由朱文伟和李建英创作。在图书出版过程中得到清华大学出版社老师们的支持和帮助,在此表示衷心的感谢。作  者2022年1月

目录

1.1 图像的基本概念 1
1.1.1 图像和图形 1
1.1.2 数字图像及其特点 1
1.1.3 图像单位 2
1.1.4 图像分辨率与屏幕分辨率 3
1.1.5 图像的灰度与灰度级 3
1.1.6 图像的深度 4
1.1.7 二值图像、灰度图像与彩色图像 4
1.1.8 通道 5
1.1.9 图像存储 5
1.2 图像噪声 5
1.2.1 图像噪声的定义 5
1.2.2 图像噪声的来源 6
1.2.3 图像噪声的滤除 6
1.3 图像处理 7
1.3.1 图像处理的分类 7
1.3.2 数字图像处理 8
1.3.3 数字图像处理常用方法 9
1.3.4 图像处理的应用 12
1.5 计算机视觉概述 12
1.5.1 基本概念 12
1.5.2 计算机视觉的应用 14
1.5.3 与相关学科的区别 15
1.6 OpenCV概述 15
第2章 OpenCV的Python开发环境搭建 17
2.1 Python 3.8下载与安装 17
2.2 在线安装与卸载opencv-python 18
2.2.1 在线安装opencv-python 18
2.2.2 卸载opencv-python 22
2.3 PyCharm 2021.2下载与安装 23
2.3.1 PyCharm的下载和安装 23
2.3.2 配置PyCharm开发OpenCV程序 24
2.3.3 导入配套源码的方法 27
2.3.4 调试Python程序 27
2.4 测试一下NumPy的数学函数 28
第3章 OpenCV基本操作 29
3.1 OpenCV架构 29
3.2 图像输入输出模块imgcodecs 31
3.2.1 读取图像文件 31
3.2.2 得到读取的图片的高度和宽度 33
3.2.3 imwrite保存图片 34
3.3 OpenCV界面编程 35
3.4 单窗口显示多图片 37
3.5 销毁窗口 39
3.6 鼠标事件 40
3.7 键盘事件 44
3.8 滑动条事件 45
第4章 数组矩阵 47
4.1 NumPy概述 47
4.2 ndarray对象 48
4.3 NumPy的数据类型 49
4.4 数组属性 52
4.5 新建数组 54
4.6 从已有的数组创建数组 55
4.7 从数值范围创建数组 57
4.8 切片和索引 58
4.9 高级索引 60
4.9.1 整数数组索引 60
4.9.2 布尔索引 61
4.9.3 花式索引 61
4.10 迭代数组 62
4.10.1 迭代器对象nditer 62
4.10.2 控制遍历顺序 63
4.10.3 修改数组中元素的值 64
4.10.4 使用外部循环 64
4.10.5 广播迭代 65
4.11 数组操作 66
4.11.1 修改数组形状 66
4.11.2 翻转数组 68
第5章 图像处理模块 72
5.1 颜色变换cvtColor 72
5.2 画基本图形 73
5.2.1 画点 73
5.2.2 画矩形 74
5.2.3 画圆 74
5.2.4 画椭圆 75
5.2.5 画线段 77
5.2.6 画多边形 77
5.2.7 填充多边形 78
5.3 文字绘制 80
5.4 为图像添加边框 82
5.5 在图像中查找轮廓 84
第6章 灰度变换和直方图修正 86
6.1 点运算 86
6.1.1 点运算的基本概念 86
6.1.2 点运算的目标与分类 86
6.1.3 点运算的特点和应用 87
6.2 灰度变换 88
6.2.1 灰度变换的基本概念 88
6.2.2 灰度变换的作用 88
6.2.3 灰度变换的方法 89
6.2.4 灰度化 89
6.2.5 对比度 93
6.2.6 灰度的线性变换 93
6.2.7 分段线性变换 95
6.2.8 对数变换和反对数变换 97
6.2.9 幂律变换 99
6.3 直方图修正 101
6.3.1 直方图的概念 101
6.3.2 直方图均衡化 104
第7章 图像平滑 108
7.1 图像平滑基础 108
7.2 线性滤波 110
7.2.1 归一化方框滤波器 110
7.2.2 高斯滤波器 111
7.3 非线性滤波 116
7.3.1 中值滤波 116
7.3.2 双边滤波 116
第8章 几何变换 118
8.1 几何变换基础 118
8.2 图像平移 121
8.3 图像旋转 122
8.4 仿射变换 125
8.5 图像缩放 127
8.5.1 缩放原理 127
8.5.2 OpenCV中的缩放 128
第9章 图像边缘检测 130
9.1 概述 130
9.2 边缘检测研究的历史现状 133
9.3 边缘定义及类型分析 134
9.4 梯度的概念 135
9.5 图像边缘检测的应用 135
9.6 目前边缘检测存在的问题 137
9.7 边缘检测的基本思想 138
9.8 图像边缘检测的步骤 139
9.9 经典图像边缘检测算法 140
9.9.1 Roberts算子 141
9.9.2 Sobel算子边缘检测 143
9.9.3 Prewitt算子边缘检测 145
9.9.4 LoG边缘检测算子 147
9.9.5 边缘检测的最新技术与方法 150
第10章 图像分割 1531
0.1 图像分割概述 1531
0.2 图像分割技术现状 1541
0.3 图像分割的应用 1551
0.4 图像分割的数学定义 1561
0.5 图像分割方法的分类 1571
0.5.1 基于阈值化的分割方法 1581
0.5.2 基于边缘的分割方法 1591
0.5.3 基于区域的分割方法 1591
0.5.4 基于神经网络的分割方法 1611
0.5.5 基于聚类的分割方法 1621
0.6 使用OpenCV进行图像分割 1631
0.7 彩色图像分割 1681
0.8 grabCut算法分割图像 1701
0.8.1 基本概念 1701
0.8.2 grabCut函数 1711
0.9 floodFill漫水填充分割 1761
0.9.1 基本概念 1761
0.9.2 floodFill函数 1771
0.10 分水岭分割法 1791
0.10.1 基本概念 1791
0.10.2 wathershed函数 180
第11章 图像金字塔 1841
1.1 基本概念 1841
1.2 高斯金字塔 1851
1.2.1 向下取样 1861
1.2.2 向上取样 1871
1.3 拉普拉斯金字塔 189
第12章 图像形态学 1911
2.1 图像形态学基本概念 1911
2.2 形态学的应用 1911
2.3 数学上的形态学 1921
2.3.1 拓扑学 1921
2.3.2 数学形态学的组成与操作分类 1931
2.3.3 数学形态学的应用 1931
2.4 结构元素 1931
2.5 膨胀 1941
2.6 腐蚀 1951
2.7 开运算 1961
2.8 闭运算 1971
2.9 实现腐蚀和膨胀 1981
2.10 开闭运算和顶帽/黑帽 2001
2.11 用形态学运算检测边缘 2031
2.12 击中击不中 2041
2.13 利用形态学运算提取水平线和垂直线 207
第13章 视频处理 2091
3.1 OpenCV视频处理架构 2091
3.2 捕获视频类VideoCapture 2101
3.2.1 构造VideoCapture对象 2101
3.2.2 判断打开视频是否成功 2111
3.2.3 读取视频帧 2111
3.2.4 播放视频文件 2121
3.2.5 获取和设置视频属性 2141
3.2.6 播放摄像头视频 216
第14章 停车场车牌识别案例实战 2191
4.1 需求分析 2191
4.2 技术可行性分析 2201
4.2.1 国外技术分析 2201
4.2.2 国内技术分析 2221
4.2.3 车牌识别技术的难点 2231
4.2.4 车牌识别系统概述 2231
4.3 车牌定位技术 2241
4.3.1 车牌特征概述 2241
4.3.2 车牌定位方法 2251
4.3.3 车牌图像预处理 2291
4.3.4 车牌图像的灰度化 2291
4.3.5 车牌图像的直方图均衡化 2311
4.3.6 车牌图像的滤波 2321
4.3.7 车牌图像的二值化 2331
4.3.8 车牌图像的边缘检测 2341
4.3.9 车牌图像的灰度映射 2341
4.3.10 车牌图像的改进型投影法定位 2351
4.4 车牌字符分割技术 2361
4.4.1 常用车牌字符分割算法 2361
4.4.2 车牌倾斜问题 2381
4.4.3 车牌倾斜度检测方法 2391
4.4.4 车牌倾斜的校正方法 2391
4.4.5 车牌边框和铆钉的去除 2391
4.4.6 车牌字符分割 2391
4.4.7 基于垂直投影和先验知识的车牌字符分割 2401
4.4.8 粘连车牌字符的分割 2411
4.4.9 断裂车牌字符的合并 2411
4.4.10 对车牌字符的切分结果进行确认 2421
4.5 车牌字符识别技术 2421
4.5.1 模式识别 2431
4.5.2 字符识别 2441
4.5.3 汉字识别 254
第15章 OpenCV目标检测 2701
5.1 目标检测概述 2701
5.2 目标检测的基本概念 2721
5.3 视频序列图像预处理 2741
5.4 基于深度学习的运动目标检测 2751
5.4.1 YOLO运动目标检测算法 2761
5.4.2 YOLOv2概述 2801
5.4.3 YOLOv3概述 2811
5.4.4 实战YOLOv3识别物体 2831
5.4.5 SSD运动目标检测算法 2921
5.4.6 实战SSD 2961
5.4.7 实战人脸检测

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/qq_41840843/article/details/167393918

文章来源转载

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--