当前位置: 首页 > article >正文

新书速览|OpenCV计算机视觉开发实践:基于Python

《OpenCV计算机视觉开发实践:基于Python》

本书内容

OpenCV是一个跨平台计算机视觉和机器学习软件库,也是计算机视觉领域的开发人员必须掌握的技术。《OpenCV计算机视觉开发实践:基于Python》基于Python 3.8全面系统地介绍OpenCV 4.10的使用,并配套示例源代码、开发环境、PPT课件、配书PDF文件与作者答疑服务

《OpenCV计算机视觉开发实践:基于Python》共20章,主要内容包括计算机视觉概述、OpenCV的Python开发环境搭建、OpenCV基本操作、数组矩阵、图像处理模块、灰度变换和直方图修正、图像平滑、几何变换、图像边缘检测、图像分割、图像金字塔、图像形态学、视频处理,以及停车场车牌识别、目标检测、数字水印、图像加密和解密、物体计数、图像轮廓和手势识别等案例。

本书作者

朱文伟,名校计算机专业统招硕士,20多年C\C++、Java开发经验。主导开发过密码、图形、人工智能等产品。精通Linux、Windows系统开发及数据库开发技术。著有图书《OpenCV计算机视觉开发实践:基于Qt C++》《OpenCV计算机视觉开发实践:基于Python》《Linux C与C++一线开发实践(第2版)》《Rust编程与项目实战》《嵌入式Linux驱动开发实践》《高性能Linux网络编程核心技术揭秘》《Linux C/C++服务器开发实践》《Qt 6.x从入门到精通》《PyQt 5从入门到精通》《Linux C与C++ 一线开发实践》《Visual C++2017从入门到精通》《Windows C/C++加密解密实战》《密码学原理与Java实现》《OpenCV 4.5计算机视觉开发实战(基于VC++)》《OpenCV 4.5计算机视觉开发实战:基于Python》。

本书读者

《OpenCV计算机视觉开发实践:基于Python》既适合OpenCV初学者、计算机视觉与图像处理应用开发人员、人工智能算法开发人员阅读,也适合作为高等院校或高职高专院校计算机视觉与图像处理、人工智能等相关专业的教学参考书

本书目录

第 1 章  计算机视觉概述1

1.1  图像的基本概念1

1.1.1  图像和图形1

1.1.2  数字图像及其特点2

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  图像处理的应用11

1.4  计算机视觉概述12

1.4.1  基本概念12

1.4.2  计算机视觉的应用13

1.4.3  与相关学科的区别14

1.5  OpenCV概述15

第 2 章  OpenCV的Python开发环境搭建18

2.1  Python下载与安装18

2.2  在线安装与卸载opencv-python20

2.2.1  在线安装opencv-python20

2.2.2  卸载opencv-python24

2.3  离线安装opencv-python24

2.3.1  下载离线版opencv-python25

2.3.2  离线安装NumPy和Matplotlib库25

2.3.3  离线安装opencv-python25

2.4  使用集成开发环境PyCharm26

2.4.1  PyCharm的下载和安装26

2.4.2  了解PyCharm的虚拟环境32

2.4.3  在PyCharm下开发OpenCV程序34

2.4.4  调试Python程序35

2.5  测试一下NumPy的数学函数36

第 3 章  OpenCV基本操作37

3.1  OpenCV架构37

3.2  图像输入/输出模块imgcodecs39

3.2.1  读取图像文件39

3.2.2  得到读取的图片的高度和宽度42

3.2.3  imwrite保存图片42

3.3  OpenCV界面编程44

3.4  单窗口显示多图片45

3.5  销毁窗口47

3.6  调整窗口大小48

3.7  鼠标事件49

3.8  键盘事件52

3.9  滑动条事件53

第 4 章  数组矩阵56

4.1  NumPy概述56

4.2  ndarray对象57

4.3  NumPy的数据类型59

4.4  数组属性61

4.5  新建数组63

4.6  通过已有的数组创建数组65

4.7  通过数值范围创建数组66

4.8  切片和索引67

4.9  高级索引69

4.9.1  整数数组索引69

4.9.2  布尔索引70

4.9.3  花式索引71

4.10  迭代数组72

4.10.1  迭代器对象nditer72

4.10.2  控制遍历顺序73

4.10.3  修改数组中元素的值73

4.10.4  使用外部循环74

4.10.5  广播迭代74

4.11  数组操作75

4.11.1  修改数组形状75

4.11.2  翻转数组77

第 5 章  图像处理模块81

5.1  颜色变换cvtColor81

5.2  画基本图形82

5.2.1  画点82

5.2.2  画矩形83

5.2.3  画圆83

5.2.4  画椭圆84

5.2.5  画线段86

5.2.6  画多边形86

5.2.7  填充多边形87

5.3  文字绘制89

5.4  为图像添加边框91

5.5  在图像中查找轮廓93

第 6 章  灰度变换和直方图修正95

6.1  点运算95

6.1.1  点运算的基本概念95

6.1.2  点运算的目标与分类96

6.1.3  点运算的特点和应用96

6.2  灰度变换97

6.2.1  灰度变换的基本概念97

6.2.2  灰度变换的作用97

6.2.3  灰度变换的方法98

6.2.4  灰度化98

6.2.5  对比度101

6.2.6  灰度的线性变换102

6.2.7  分段线性变换104

6.2.8  对数变换和反对数变换106

6.2.9  幂律变换107

6.3  直方图修正109

6.3.1  直方图的概念109

6.3.2  直方图均衡化112

第 7 章  图像平滑117

7.1  图像平滑基础117

7.2  线性滤波119

7.2.1  归一化方框滤波器119

7.2.2  高斯滤波器120

7.3  非线性滤波124

7.3.1  中值滤波124

7.3.2  双边滤波125

第 8 章  几何变换127

8.1  几何变换基础127

8.2  图像平移130

8.3  图像旋转131

8.4  仿射变换134

8.5  图像缩放136

8.5.1  缩放原理136

8.5.2  OpenCV中的缩放137

第 9 章  图像边缘检测139

9.1  概述139

9.2  边缘检测研究的历史现状141

9.3  边缘定义及类型分析142

9.4  梯度的概念144

9.5  图像边缘检测的应用144

9.6  目前边缘检测存在的问题146

9.7  边缘检测的基本思想147

9.8  图像边缘检测的步骤147

9.9  经典图像边缘检测算法149

9.9.1  Roberts算子150

9.9.2  Sobel算子边缘检测151

9.9.3  Prewitt算子边缘检测153

9.9.4  LoG边缘检测算子155

9.9.5  边缘检测的最新技术与方法158

第 10 章  图像分割161

10.1  图像分割概述161

10.2  图像分割技术现状162

10.3  图像分割的应用163

10.4  图像分割的数学定义164

10.5  图像分割方法的分类165

10.5.1  基于阈值化的分割方法165

10.5.2  基于边缘的分割方法166

10.5.3  基于区域的分割方法167

10.5.4  基于神经网络的分割方法169

10.5.5  基于聚类的分割方法169

10.6  使用OpenCV进行图像分割170

10.7  彩色图像分割175

10.8  grabCut算法分割图像177

10.8.1  基本概念177

10.8.2  grabCut函数179

10.9  floodFill漫水填充分割183

10.9.1  基本概念183

10.9.2  floodFill函数183

10.10  分水岭分割法185

10.10.1  基本概念186

10.10.2  距离变换函数distanceTransform189

10.10.3  区域标记函数connectedComponents191

10.10.4  分水岭函数wathershed192

第 11 章  图像金字塔195

11.1  基本概念195

11.2  高斯金字塔196

11.2.1  向下采样197

11.2.2  向上采样198

11.3  拉普拉斯金字塔200

第 12 章  图像形态学202

12.1  图像形态学基本概念202

12.2  形态学的应用202

12.3  数学上的形态学203

12.3.1  拓扑学203

12.3.2  数学形态学的组成与操作分类204

12.3.3  数学形态学的应用204

12.4  结构元素205

12.5  膨胀205

12.6  腐蚀207

12.7  开运算209

12.8  闭运算210

12.9  实现腐蚀和膨胀211

12.10  实现开闭运算和顶帽/黑帽215

12.11  用形态学运算检测边缘219

12.12  击中击不中220

12.13  利用形态学运算提取水平线和垂直线223

第 13 章  视频处理225

13.1  OpenCV视频处理架构225

13.2  捕获视频类VideoCapture226

13.2.1  构造VideoCapture对象226

13.2.2  判断打开视频是否成功227

13.2.3  读取视频帧227

13.2.4  播放视频文件228

13.2.5  获取和设置视频属性230

13.2.6  播放摄像头视频232

第 14 章  停车场车牌识别案例实战235

14.1  需求分析235

14.2  技术可行性分析236

14.2.1  国外技术分析236

14.2.2  国内技术分析238

14.2.3  车牌识别技术的难点239

14.2.4  车牌识别系统概述239

14.3  车牌定位技术240

14.3.1  车牌特征概述240

14.3.2  车牌定位方法241

14.3.3  车牌图像预处理245

14.3.4  车牌图像的灰度化245

14.3.5  车牌图像的直方图均衡化247

14.3.6  车牌图像的滤波248

14.3.7  车牌图像的二值化249

14.3.8  车牌图像的边缘检测249

14.3.9  车牌图像的灰度映射250

14.3.10  车牌图像的改进型投影法定位250

14.4  车牌字符分割技术252

14.4.1  常用车牌字符分割算法252

14.4.2  车牌倾斜问题254

14.4.3  车牌倾斜度检测方法254

14.4.4  车牌倾斜的校正方法255

14.4.5  车牌边框和铆钉的去除255

14.4.6  车牌字符分割255

14.4.7  基于垂直投影和先验知识的车牌字符分割256

14.4.8  粘连车牌字符的分割257

14.4.9  断裂车牌字符的合并257

14.4.10  对车牌字符的切分结果进行确认258

14.5  车牌字符识别技术259

14.5.1  模式识别259

14.5.2  字符识别260

14.5.3  汉字识别270

第 15 章  OpenCV目标检测286

15.1  目标检测概述286

15.2  目标检测的基本概念288

15.3  视频序列图像预处理290

15.4  基于深度学习的运动目标检测291

15.4.1  YOLO运动目标检测算法292

15.4.2  YOLOv2概述296

15.4.3  YOLOv3概述297

15.4.4  实战YOLOv3识别物体299

15.4.5  SSD运动目标检测算法309

15.4.6  实战SSD312

15.4.7  实战人脸检测314

第 16 章  数字水印319

16.1  基本概念319

16.1.1  数字水印的概念319

16.1.2  数字水印的特点320

16.2  数字水印原理320

16.2.1  嵌入过程321

16.2.2  提取过程321

16.3  相关函数321

16.3.1  cv2.bitwise_and函数322

16.3.2  cv2.bitwise_or函数323

16.4  代码实现数字水印324

第 17 章  图像加密和解密326

17.1  图像加密和解密原理326

17.2  相关函数327

17.3  代码实现图像加解密328

第 18 章  物体计数330

18.1  基本原理330

18.2  相关函数330

18.3  代码实现药片计数332

第 19 章  图像轮廓335

19.1  基本概念335

19.2  应用场景336

19.3  OpenCV中的轮廓函数336

19.3.1  查找轮廓findContours336

19.3.2  轮廓的基本属性337

19.3.3  绘制轮廓drawContours338

19.3.4  求轮廓面积contourArea338

19.4  实战轮廓函数339

19.5  实战黑白翻转341

第 20 章  手势识别343

20.1  概述343

20.2  NumPy中的ndarray343

20.2.1  NumPy是什么344

20.2.2  ndarray的概念344

20.2.3  ndarray的特点345

20.2.4  NumPy数组的优势345

20.2.5  内存中的ndarray对象345

20.2.6  ndarray数组对象的创建346

20.2.7  ndarray的重要属性351

20.2.8  数组的轴和轴的长度352

20.3  凸包和凸包检测355

20.4  凸缺陷及其应用360

20.4.1  查找凸包和凸缺陷的示例361

20.4.2  凸缺陷的应用363

20.5  手势识别原理364

20.6  区分手势0和手势1365

20.7  区分手势1到手势5367

本书特色

本文摘自《OpenCV计算机视觉开发实践:基于Python》,获出版社和作者授权发布。

链接:OpenCV计算机视觉开发实践:基于Python_jdhttps://item.jd.com/14972606.html#none


http://www.kler.cn/a/600549.html

相关文章:

  • 跨境选品利器:基于速卖通API实时监控爆款商品价格与库存波动
  • 3.25-2request库
  • MATLAB 2024b深度学习,图神经网络(GNN)
  • 正弦函数的连续傅里叶变换正弦序列的DTFT
  • HarmonyOS 之 @Require 装饰器自学指南
  • DeepSeek-V3-0324 模型发布:开源 AI 性能再攀高峰,推理与编码能力逼近顶级闭源模型
  • python康复日记-request库的使用,爬虫自动化测试
  • ToolsSet之:快捷键和速查表
  • VS Code连接远程服务遇到的问题
  • 蓝之洋科技以AI智能制造引领变革,推动移动电源产业迈向高端智能化!
  • 三分钟读懂微服务
  • 蓝桥杯-符号变反操作(差分)
  • Weblogic
  • shopify跨境电商行业前景与规模
  • 【Linux-驱动开发-pinctrl子系统】
  • SpringBoot-配置文件中敏感信息的加密保姆级教程
  • 高度电路中时序设计之二
  • (C语言)习题练习 (sizeof和strlen)
  • UE5摄像机震屏/晃动效果
  • 视频孪生技术赋能智慧交管建设:迈向实时实景的交通管理新时代