跳转至

零、前言

在当今的数字世界中,图像和视频无处不在,并且随着功能强大且价格适中的计算设备的出现,创建复杂的成像应用从未如此简单。 提供了大量用于处理图像和视频的软件工具和库,但是对于希望开发自己的应用的任何人,OpenCV 库都是可以使用的工具。

OpenCV(开放源计算机视觉)是一个开放源代码库,其中包含 500 多种用于图像和视频分析的优化算法。 自 1999 年推出以来,它已被计算机视觉研究人员和开发人员广泛用作主要开发工具。 OpenCV 最初由英特尔由盖瑞·布拉德斯基(Gary Bradski)领导的团队开发,旨在推动视觉研究并促进丰富的基于视觉的 CPU 密集型应用的开发。 在一系列 beta 版本发布之后,2006 年发布了 1.0 版。2009 年发布了第二个主要版本,OpenCV 2 的发布提出了重要的更改,尤其是本书中使用的新 C++ 接口。 在撰写本文时,最新版本是 2.2(2010 年 12 月)。

本书涵盖了库的许多功能,并展示了如何使用它们来完成特定任务。 我们的目标不是全面,详细地介绍 OpenCV 函数和类提供的每个选项,而是为您提供从头开始构建应用所需的元素。 在本书中,我们还将探讨图像分析的基本概念,并描述计算机视觉中的一些重要算法。

本书为您提供了机会,介绍了图像和视频分析领域。 但这仅仅是开始。 好消息是 OpenCV 继续发展和扩展。 只需查阅 OpenCV 在线文档以了解有关该库可以为您提供服务的最新信息

这本书涵盖的内容

第 1 章,“玩转图像”介绍了 OpenCV 库,并向您展示了如何使用 MS Visual C++ 和 Qt 开发环境运行简单的应用。

第 2 章,“操纵像素”解释了如何读取图像。 它描述了用于扫描图像以便对其每个像素执行操作的不同方法。 您还将学习如何在图像内定义关注区域。

第 3 章,“使用类处理图像”,包含一些秘籍,这些秘籍提供了各种面向对象的设计模式,可以帮助您构建更好的计算机视觉应用。

第 4 章,“用直方图计算像素”展示了如何计算图像直方图以及如何使用它们来修改图像。 提出了基于直方图的不同应用,它们可以实现图像分割,目标检测和图像检索。

第 5 章,“通过形态学操作变换图像”探索了数学形态学的概念。 它介绍了不同的运算符,以及它们如何用于检测图像中的边缘,角和线段。

第 6 章,“过滤图像”教您频率分析和图像过滤的原理。 它显示了如何将低通和高通过滤器应用于图像。 它提供了两个图像导数运算符:梯度和拉普拉斯算子。

第 7 章,“提取线,轮廓和分量”着重于几何图像特征的检测。 它说明了如何提取图像中的轮廓,线和连接的分量。

第 8 章,“检测和匹配兴趣点”描述了图像中的各种特征点检测器。 它还说明了兴趣点的描述符如何计算并用于匹配图像之间的点。

第 9 章,“估计图像中的投影关系”分析了图像形成中涉及的不同关系。 它还探讨了同一场景的两个图像之间存在的投影关系。

第 10 章,“处理视频序列”提供了读取和写入视频序列以及处理其帧的框架。 它还向您展示了如何逐帧跟踪特征点,以及如何提取在摄像机前移动的前景对象。

这本书适合谁

如果您是新手 C++ 程序员,并且想学习如何使用 OpenCV 库来构建计算机视觉应用,那么本菜谱非常适合您。 它也适用于希望被引入计算机视觉编程概念的专业软件开发人员。 它可以用作大学级计算机视觉课程的配套书。 它为图像处理和计算机视觉的研究生和研究人员提供了极好的参考。 本书提供了基本秘籍和高级秘籍的良好组合。 必须具备 C++ 的基本知识。

约定

在本书中,您会发现许多可以区分不同类型信息的文本样式。 以下是这些样式的一些示例,并解释了其含义。

文本中的代码字如下所示:“我们可以通过使用include指令包含其他上下文。”

代码块设置如下:

     // get the iterators
     cv::Mat_<cv::Vec3b>::const_iterator it=
                         image.begin<cv::Vec3b>();

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

     // Converting to Lab color space 
 cv::cvtColor(image, converted, CV_BGR2Lab);
     // get the iterators of the converted image 
     cv::Mat_<cv::Vec3b>::iterator it= 

新术语重要词以粗体显示。 您在屏幕上看到的字词,例如在菜单或对话框中的字样如下:“单击处理按钮时将读取此值,这也会触发处理并显示结果 ”。

提示

提示和技巧如下所示。



回到顶部