零、前言
OpenCV 是一个开放源代码,跨平台的库,为计算机视觉实验和应用提供了构建基块。 它提供了用于捕获,处理和呈现图像数据的高级接口。 例如,它抽象了有关相机硬件和数组分配的详细信息。 OpenCV 在学术界和工业界都被广泛使用。 如今,计算机视觉可以通过网络摄像头,照相手机和诸如 Kinect 之类的游戏传感器在许多情况下吸引消费者。 不管是好是坏,人们都喜欢坐在相机上,作为开发人员,我们面临着捕获图像,改变其外观并从中提取信息的应用的需求。 OpenCV 的 Python 绑定可以帮助我们以高级语言和可与 NumPy 和 SciPy 等科学库互操作的标准化数据格式探索满足这些要求的解决方案。
计算机视觉在现代技术中无处不在。 适用于 Python 的 OpenCV 使我们能够实时运行计算机视觉算法。 随着功能强大的机器的出现,我们获得了更多的处理能力。 使用这项技术,我们可以将计算机视觉应用无缝集成到云中。 Web 开发人员可以开发复杂的应用,而不必重新发明轮子。
本课程专门设计用于教授以下主题。 首先,我们将学习如何开始使用 OpenCV 和 OpenCV 3 的 Python API,并开发一个跟踪身体部位的计算机视觉应用。 然后,我们将构建出色的中级计算机视觉应用,例如使对象从图像中消失,识别不同的形状,从图像重建 3D 地图以及构建增强现实应用。 最后,我们将进入更高级的项目,例如手势识别,跟踪视觉上显着的对象以及分别使用支持向量机和多层感知器来识别交通信号和面部表情。
此学习路径涵盖的内容
模块 1,“Python OpenCV 计算机视觉”,在此模块中,您可以拥有一个开发环境,该环境链接 Python,OpenCV,深度相机库(OpenNI,SensorKinect)和通用科学库(NumPy,SciPy)。
模块 2,“Python OpenCV 示例”,该模块涵盖了不同级别的各种示例,向您介绍了 OpenCV 的不同功能及其实际实现。
模块 3,“Python 的 OpenCV 蓝图”,此模块旨在提供您成为 OpenCV 专家所需的工具,知识和技能,而这种新获得的经验将使您能够开发先进的计算机视觉应用。
此学习路径需要什么
本课程提供了所有相关软件的设置说明,包括包管理器,构建工具,Python,NumPy,SciPy,OpenCV,OpenNI 和 SensorKinect。 设置说明适用于 Windows XP 或更高版本,Mac OS 10.6(Snow Leopard)或更高版本以及 Ubuntu 12.04 或更高版本。 如果您愿意自己调整设置步骤,则其他类 Unix 的操作系统也应该工作。 您需要针对课程中描述的项目的网络摄像头。 对于其他功能,该项目的某些变体使用第二个网络摄像头,甚至使用与 OpenNI 兼容的深度摄像头,例如 Microsoft Kinect 或 Asus Xtion PRO。
硬件要求是网络摄像头(或摄像头设备),但第三个模块的第 2 章“使用 Kinect 深度传感器进行手势识别”除外,该模块需要访问 Microsoft Kinect 3D 传感器或 Asus Xtion。
该课程包含具有以下要求的项目。
所有项目都可以在 Windows,Mac 或 Linux 中的任何一个上运行,并且它们需要以下包:
- OpenCV 2.4.9 或更高版本上提供了最新的 32 位和 64 位版本以及安装说明。 特定于平台的安装说明可在这个页面中找到。
- Python 2.7 或更高版本:最新的 32 位和 64 位安装程序可从这个页面获得。 可以在这个页面上找到安装说明。
- NumPy 1.9.2 或更高版本:此用于科学计算的包仅正式以 32 位格式提供,可以从这个页面 获得。 可以在这个页面中找到安装说明。
wxPython 2.8 或更高版本:此 GUI 编程工具包可从这个页面获得。 在这个页面上提供了其安装说明。
此外,某些章节需要以下免费的 Python 模块:
- SciPy 0.16.0 或更高版本:此科学 Python 库仅正式提供 32 位,可从这个页面 获得。 可以在这个页面中找到安装说明。
- Matplotlib 1.4.3 或更高版本:可以从这个页面获得此二维绘图库。 可以通过这个页面找到其安装说明。
- libfreenect 0.5.2 或更高版本:OpenKinect 项目的 libfreenect 模块提供 Microsoft Kinect 硬件的驱动程序和库,可以从这个页面 。 可在这个页面中找到其安装说明。
此外,强烈建议使用 iPython,因为它提供了灵活的交互式控制台界面。
最后,如果您正在寻求帮助或一路走来,可以去几个提供出色帮助,文档和教程的网站:
Alexander Mordvintsev 和 Abid Rahman K 撰写的 OpenCV-Python 教程
此学习路径适用于谁
本学习路径适用于具有 Python 工作知识并想尝试 OpenCV 的人。 该学习路径将带您从使用 OpenCV 的计算机视觉应用的初学者到专家。
OpenCV 的应用非常庞大,此学习路径是使您完全熟悉 OpenCV 的最佳资源。
读者反馈
始终欢迎读者的反馈。 让我们知道您对本课程的看法-您喜欢或不喜欢的地方。 读者反馈对我们很重要,因为它可以帮助我们开发出您真正能充分利用的标题。
要给我们发送一般性反馈,只需发送电子邮件<[feedback@packtpub.com](mailto:feedback@packtpub.com)>
,然后在您的消息主题中提及该课程的标题。
如果您有专业知识的主题,并且对写作或撰写书籍感兴趣,请参阅 www.packtpub.com/authors 上的作者指南。