跳转至

零、前言

简而言之,这本书是有关使用 OpenCV 的计算机视觉的,它是计算机视觉(也是机器学习)库和 Python 编程语言。 您可能想知道为什么使用 OpenCV 和 Python? 这确实是一个好问题,我们将在本书的第一章中解决。 总而言之,OpenCV 是最好的开源计算机视觉库(BSD 许可证,它对学术和商业都是免费的),提供了 2500 多种优化算法,包括最新的计算机视觉算法,并且还具有机器学习和深度学习支持。 OpenCV 用优化的 C/C++ 编写,但是提供了 Python 包装器。 因此,该库可以在您的 Python 程序中使用。 从这个意义上讲,Python 被认为是科学计算的理想语言,因为它可以刺激快速原型开发,并为计算机视觉项目的各个方面提供了许多预构建的库。

如前一段所述,您可以在项目中使用许多预构建的库。 确实,在本书中,我们使用了很多库,向您展示了安装和使用新库确实非常容易。 本书中将使用 Matplotlib,scikit-image,SciPy,Dlib,人脸识别,Pillow,Cvlib,Keras,TensorFlow 和 Flask 之类的库来向您展示 Python 生态系统的潜力。 如果您是第一次阅读这些库,请不要担心,因为我们为几乎所有这些库引入了 hello world 示例。

这本书是使用 Python 和 OpenCV 使用各种技术(例如面部识别,目标跟踪,增强现实,对象检测和分类等)创建高级应用的完整资源。 此外,本书 探索了使用 Python 生态系统在机器视觉应用中机器学习和深度学习技术的潜力。

现在该深入了解本书的内容了。 我们将向您介绍本书的内容,包括一段简短的段落,介绍本书的每一章。 所以,让我们开始吧!

这本书是给谁的

本书非常适合具有 Python 基本编程知识的学生,研究人员和开发人员,这些知识对于计算机视觉来说是新手,他们想更深入地研究这个世界。 假定读者以前有使用 Python 的经验。 对图像数据(例如,像素和颜色通道)的基本理解也将有所帮助,但不是必需的,因为本书中涵盖了这些概念。 最后,需要标准的数学技能。

本书涵盖的内容

第 1 章,“设置 OpenCV”显示了如何安装开始使用 Python 和 OpenCV 进行编程所需的所有内容。 还将向您介绍一般的术语和概念,以使您将学到的内容相关联,并使用 OpenCV 建立和设置与计算机视觉主要概念相关的基础。

第 2 章,“OpenCV 中的图像基础”演示了如何开始编写您的第一个脚本,以向您介绍 OpenCV 库。

第 3 章,“处理文件和图像”向您展示如何处理文件和图像,这是构建计算机视觉应用所必需的。

第 4 章,“在 OpenCV 中构建基本形状”涵盖了如何使用 OpenCV 库绘制形状-从基本形状到更高级的形状。

第 5 章,“图像处理技术”介绍了计算机视觉项目所需的大多数常见图像处理技术。

第 6 章,“构造和构建直方图”展示了如何创建和理解直方图,这是了解图像内容的强大工具。

第 7 章,“阈值处理技术”介绍了计算机视觉应用所需的主要阈值处理技术,这些技术是图像分割的关键过程。

第 8 章,“轮廓检测,滤波和绘图”显示了如何处理轮廓,这些轮廓用于形状分析以及对象检测和识别。

第 9 章,“增强现实”,教您如何构建第一个增强现实应用。

第 10 章,“使用 OpenCV 的机器学习”向您介绍机器学习的世界。 您将看到如何在计算机视觉项目中使用机器学习。

第 11 章,“人脸检测,跟踪和识别”展示了如何使用最新算法,结合人脸检测,跟踪和识别来创建人脸处理项目 。

第 12 章,“深度学习简介”向您介绍使用 OpenCV 进行深度学习的世界,以及一些深度学习 Python 库(TensorFlow 和 Keras)。

第 13 章,“使用 Python 和 OpenCV 的移动和 Web 计算机视觉”展示了如何使用 Flask 创建计算机视觉和深度学习 Web 应用。

充分利用这本书

为了充分利用本书,您必须考虑两个简单但重要的考虑因素:

  1. 由于本书中的所有脚本和示例均使用 Python,因此假定您具备一些 Python 编程的基本知识。
  2. NumPy 和 OpenCV-Python 包高度互连(您将在本书中了解原因)。 尽管已经充分说明了 NumPy 的示例,但是如果在开始本书之前获得了一些 NumPy 的知识,则可以缓解学习曲线。

下载示例代码文件

您可以从 www.packt.com 的帐户中下载本书的示例代码文件。 如果您在其他地方购买了此书,则可以访问 www.packt.com/support 并注册以将文件直接通过电子邮件发送给您。

您可以按照以下步骤下载代码文件:

  1. 登录或注册 www.packt.com
  2. 选择支持选项卡。
  3. 单击代码下载和勘误。
  4. 在搜索框中输入书籍的名称,然后按照屏幕上的说明进行操作。

下载文件后,请确保使用以下最新版本解压缩或解压缩文件夹:

  • Windows 的 WinRAR/7-Zip
  • Mac 的 Zipeg/iZip/UnRarX
  • Linux 的 7-Zip/PeaZip

本书的代码包也托管在 GitHub 上。 如果代码有更新,它将在现有 GitHub 存储库上进行更新。

我们还从这里提供了丰富的书籍和视频目录中的其他代码包。 去看一下!

下载彩色图像

我们还提供了 PDF 文件,其中包含本书中使用的屏幕截图/图表的彩色图像。 您可以在此处下载

使用约定

本书中使用了许多文本约定。

CodeInText:指示文本,数据库表名称,文件夹名称,文件名,文件扩展名,路径名,虚拟 URL,用户输入和 Twitter 句柄中的代码字。 这是一个示例:“接下来提供build_sample_image()的代码。”

代码块设置如下:

 channels = cv2.split(img)
    eq_channels = []
    for ch in channels:
        eq_channels.append(cv2.equalizeHist(ch))

当我们希望引起您对代码块特定部分的注意时,相关行或项目以粗体显示:

Hu moments (original): '[ 1.92801772e-01 1.01173781e-02 5.70258405e-05 1.96536742e-06 2.46949980e-12 -1.88337981e-07 2.06595472e-11]'
 Hu moments (rotation): '[ 1.92801772e-01 1.01173781e-02 5.70258405e-05 1.96536742e-06 2.46949980e-12 -1.88337981e-07 2.06595472e-11]'
 Hu moments (reflection): '[ 1.92801772e-01 1.01173781e-02 5.70258405e-05 1.96536742e-06 2.46949980e-12 -1.88337981e-07 -2.06595472e-11]'

任何命令行输入或输出的编写方式如下:

$ mkdir opencv-project
$ cd opencv-project

粗体:表示新术语,重要单词或您在屏幕上看到的单词。 例如,菜单或对话框中的单词会出现在这样的文本中。 这是一个示例:“从管理面板中选择系统信息。”

警告或重要提示如下所示。

提示和技巧如下所示。



回到顶部