零、前言
通过循序渐进的教程,学习如何使用 OpenCV 开发可感知视觉的智能 Android 应用,并加入有趣且迅速扩展的计算机视觉领域,以使您的 Android 手机能够理解世界。
从计算机视觉和 OpenCV 的基础知识开始,我们将带您完成创建令人兴奋的应用的所有方法。 您会发现,尽管计算机视觉是一门具有挑战性的主题,但所使用的思想和算法却简单而直观,并且您会欣赏 OpenCV 提供的抽象层以为您完成繁重的工作。
本书包含许多示例,将帮助您了解 OpenCV 中使用的主要数据结构,以及如何使用它们来提高性能。 接下来,我们将讨论和使用几种图像处理算法,例如直方图均衡,过滤器和色彩空间转换。 然后,您将了解图像梯度及其在许多形状分析技术(如边缘检测,霍夫线变换和霍夫圆变换)中的使用方式。 除了使用形状分析在图像中查找事物之外,您还将学习如何使用不同的特征检测器和描述符以更可靠的方式描述图像中的对象。 最后,您将能够使用机器学习(特别是著名的自适应提升学习算法和级联分类器)做出明智的决策。
这本书涵盖的内容
第 1 章,“准备就绪”解释了如何开始使用 OpenCV 逐步开发视觉感知的 Android 应用。
第 2 章,“应用 1-建立自己的暗室”,向您展示如何在 OpenCV 中存储和表示图像,以及如何利用这种表示方法来实现有趣的算法,从而改善您的图像外观。
第 3 章,“应用 2-软件扫描程序”解释了如何实现下一个应用,即软件扫描程序。 它使人们可以对一张收据拍照,并进行一些转换以使其看起来像被扫描一样。 在本章中,我们将介绍两个重要的主题,这些主题将帮助我们实现最终目标。
第一个主题是关于空间滤波及其定义和应用。 第二个主题将涉及一种称为霍夫变换的著名形状分析技术。 您将了解该技术背后的基本思想,该思想使其变得非常流行和广泛使用,并且我们将使用 OpenCV 实现来开始将直线和圆拟合到一组边缘像素。
第 4 章,“应用 2-应用透视校正”继续在我们在第 3 章中开始的应用的基础上。我们将使用您学到的概念,即边缘检测和霍夫线变换,对四边形对象进行透视校正。 将透视变换应用于对象将改变我们观察对象的方式; 当您为文档,收据等拍照时,这种想法会派上用场,并且您希望更好地查看捕获的图像或类似扫描的副本。
第 5 章,“应用 3-全景查看器”开始在新的应用上工作。 该应用的目标是将两个图像拼接在一起,以形成全景视图。在本章中,我们将介绍图像特征的概念以及它们为何重要的原因,并在实际中进行介绍。
第 6 章,“应用 4 –自动自拍”引入了一个新应用。 该应用的目标是能够在不触摸手机屏幕的情况下自拍。 您的应用将能够检测到某个手势,该手势将触发保存当前相机帧的过程。
这本书需要什么
- Tegra Android 开发包
- 您选择的 IDE(Eclipse 或 Android Studio)
- Android SDK
- Android NDK
- OpenCV4Android SDK
这本书适合谁
如果您是 Android 开发人员,并且想知道如何使用 OpenCV 来实现视觉感知应用,那么本书绝对适合您。
如果您了解图像处理和计算机视觉的基础知识,这非常有帮助,但是不需要任何先验经验。
约定
在本书中,您将找到许多可以区分不同类型信息的文本样式。 以下是这些样式的一些示例,并解释了其含义。
文本,数据库表名称,文件夹名称,文件名,文件扩展名,路径名,虚拟 URL,用户输入和 Twitter 句柄中的代码字显示如下:“要卸载先前的安装,请转到先前的安装目录并运行tadp_uninstall.exe
。”
代码块设置如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello-jni
LOCAL_SRC_FILES := hello-jni.c
当我们希望引起您对代码块特定部分的注意时,相关行或项目以粗体显示:
Mat rgbImage=new Mat();
Imgproc.cvtColor(originalImage, rgbImage, Imgproc.COLOR_BGR2RGB);
新术语和重要词以粗体显示。 您在屏幕上看到的字词,例如在菜单或对话框中,将显示为以下文本:“您将需要选择安装类型。选择一个自定义安装,然后单击Next
。
注意
警告或重要提示会出现在这样的框中。
提示
提示和技巧如下所示。
读者反馈
始终欢迎读者的反馈。 让我们知道您对这本书的看法-您喜欢或不喜欢的东西。 读者反馈对我们很重要,因为它可以帮助我们开发出您真正能充分利用的标题。
要向我们发送一般反馈,只需发送电子邮件<[feedback@packtpub.com](mailto:feedback@packtpub.com)>
,然后在您的邮件主题中提及该书的标题。
如果您有专业知识的主题,并且对写作或撰写书籍感兴趣,请参阅 www.packtpub.com/authors 上的作者指南。