零、前言
计算机视觉是一个包含许多不同领域的广泛主题。 如果要开始在项目中使用计算机视觉算法,则入口点可能不明确。 即使您是经验丰富的计算机视觉工程师,毫无疑问,您还是需要深入探索或熟悉某些技术。 在这两种情况下,实用的方法都效果最佳。 仅通过将方法应用于实际问题,调整现有方法以满足您的要求以及使用示例,您才能完全理解任何计算机视觉算法的可能性和局限性。 这本书是专门为解决实际的计算机视觉任务而设计的。 本书中的秘籍使用 OpenCV(最流行,功能丰富且使用广泛的开源计算机视觉库)。 本书从最简单的示例发展到最复杂的示例,因此您将能够找到一些有用且易于理解的信息。
这本书是给谁的
本书适用于具有 Python 基本知识的开发人员。 如果您了解 OpenCV 的基础知识,并准备好构建比竞争对手更智能,更快,更复杂和更实用的计算机视觉系统,那么本书非常适合您。
本书涵盖的内容
第 1 章,“I/O 和 GUI”讲解了图像和视频的基本操作:加载,保存和显示。
第 2 章,“矩阵,颜色和过滤器”涵盖了使用矩阵进行操作的操作:访问图像,通道和像素的区域。 还介绍了各种颜色空间之间的转换以及过滤器的用法。
第 3 章,“等高线和分割”显示了如何创建图像遮罩,查找轮廓和分割图像。
第 4 章,“对象检测和机器学习”描述了检测和跟踪不同类型对象的方法,从特殊构造的(QR 码和 ArUCo 标记)场景到可以在自然场景中遇到的对象。
第 5 章,“深度学习”概述了与深度神经网络连接的 OpenCV 中的新功能。 它提供了加载深度学习模型并将其应用于计算机视觉任务的示例。
第 6 章,“线性代数”深入探讨了解决线性代数问题的有用数学方法,并提供了在计算机视觉中应用这些方法的示例。
第 7 章,“检测器和描述符”包含有关如何使用图像特征描述符的信息:如何使用不同的方法计算它们,如何显示它们以及如何将它们用于对象匹配、检测和跟踪目的。
第 8 章,“图像和视频处理”向读者展示如何处理图像序列并基于序列之间的相关性获得结果。
第 9 章,“多视图几何”描述了如何使用相机检索有关场景 3D 几何的信息。
充分利用这本书
秘籍中提到了开始使用各个秘籍的所有必需信息。
下载示例代码文件
您可以从 www.packtpub.com 的帐户中下载本书的示例代码文件。 如果您在其他地方购买了此书,则可以访问 www.packtpub.com/support 并注册以将文件直接通过电子邮件发送给您。
您可以按照以下步骤下载代码文件:
- 登录或登录 www.packtpub.com 。
- 选择支持选项卡。
- 单击代码下载和勘误。
- 在搜索框中输入书籍的名称,然后按照屏幕上的说明进行操作。
下载文件后,请确保使用以下最新版本解压缩或解压缩文件夹:
- Windows 的 WinRAR/7-Zip
- Mac 的 Zipeg/iZip/UnRarX
- Linux 的 7-Zip/PeaZip
本书的代码包也托管在 GitHub 上。 如果代码有更新,它将在现有 GitHub 存储库上进行更新。
我们还从这里提供了丰富的书籍和视频目录中的其他代码包。 去看一下!
下载彩色图像
我们还提供了 PDF 文件,其中包含本书中使用的屏幕截图/图表的彩色图像。 您可以在此处下载。
使用约定
本书中使用了许多文本约定。
CodeInText
:指示文本,数据库表名称,文件夹名称,文件名,文件扩展名,路径名,虚拟 URL,用户输入和 Twitter 句柄中的代码字。 这是一个示例:“cv2.flip
函数用于镜像图像。”
代码块设置如下:
import argparse
import cv2
parser = argparse.ArgumentParser()
parser.add_argument('--path', default='../data/Lena.png', help='Image path.')
params = parser.parse_args()
img = cv2.imread(params.path)
当我们希望引起您对代码块特定部分的注意时,相关行或项目以粗体显示:
import argparse
import cv2
parser = argparse.ArgumentParser()
parser.add_argument('--path', default='../data/Lena.png', help='Image path.')
params = parser.parse_args()
img = cv2.imread(params.path)
任何命令行输入或输出的编写方式如下:
read ../data/Lena.png
shape: (512, 512, 3)
dtype: uint8
read ../data/Lena.png as grayscale
shape: (512, 512)
dtype: uint8
粗体:表示新术语,重要单词或您在屏幕上看到的单词。
警告或重要提示如下所示。
提示和技巧如下所示。
栏目
在本书中,您会发现几个经常出现的标题(准备工作,如何执行... ,工作原理... ,[ 和,另请参阅)。
要给出有关如何完成秘籍的明确说明,请按以下说明使用这些部分:
准备
本节告诉您在秘籍中会有什么期望,并介绍如何设置秘籍所需的任何软件或任何初步设置。
操作步骤
本节包含遵循秘籍所需的步骤。
工作原理
本节通常包括对上一节中发生的情况的详细说明。
更多
本节包含有关秘籍的其他信息,以使您对秘籍有更多的了解。
另见
本节提供了指向该秘籍其他有用信息的有用链接。
保持联系
始终欢迎读者的反馈。