基本信息
内容简介
作译者
作为一类开源、跨平台库,OpenCV提供了计算机视觉和应用构建模块,以及针对捕捉处理和图像数据显示的高层接口。例如,OpenCV抽象了相机硬件的细节内容以及数组的内存分配。同时,OpenCV广泛地应用于教学和软件工业中。
Android则是一类开源移动操作系统,对于Java开发者而言,它提供了称作Android SDK的高层应用框架。Android应用程序是一类模块化程序,并针对数据的发布和共享定义了标准的高层接口。针对照片共享应用,移动、高层抽象和数据共享可视为较好的开始点。
虽然OpenCV和Android提供了大量的高层抽象内容(以及开源代码),但对于初学者而言并不容易掌握,例如构建适宜的开发环境,将库功能项移至应用程序中。对此,本书旨在强调清晰的构建过程、简洁的应用设计以及各功能项的详细内容。
鉴于OpenCV的Java和Android绑定尚为新鲜事物,因而其文档并不完整,针对OpenCV与Android的标准相机、媒介以及图形API尤其如此。需要说明的是,整合工作是应用程序开发者的重要任务之一,也是本书的讲解重点。
OpenCV和Android库之间的整合过程充分体现了广泛的应用程序特征,本书结束时将会对此予以尝试。届时,读者可通过可复用的类库扩展或调整后续的计算机视觉项目,并根据已有的开发环境和知识编写更为丰富的应用程序。
本书内容
第1章讨论OpenCV和Android开发环境的构建过程,其中包括Eclipse和Android SDK。
第2章讨论OpenCV与Android应用程序之间的整合方式,进而预览、捕捉、保存和共享照片数据。
第3章探讨OpenCV的功能项,包括颜色通道的控制以及邻接像素问题。除此之外,还将对现有应用程序进行扩展,以使其包含通道混合滤镜、"曲线"滤镜和黑色轮廓边滤镜。
第4章将展示视频画面中既定目标对象(例如油画作品)的识别和跟踪机制。同时,还将对已有应用程序进行适当扩展,并围绕跟踪目标绘制轮廓线。
第5章通过确定3D环境中目标的位置和旋转改善前述跟踪机制。另外,本章还将构建OpenGL 3D场景,并包含与Android相机设备相同的透视视角。
背景知识
本书将讨论OpenCV和Android开发环境的构建过程,其中包括Eclipse和Android SDK。同时,对应软件均包含跨平台特征,包括Windows、Mac、Linux以及其他类UNIX环境。
读者需要持有一部可运行Android 2.2(Froyo)或后续版本的移动设备,并建议设备包含前置和后置相机。另外,鉴于OpenCV使用Google Play Store管理安装和共享库的更新操作,因而推荐安装Google Play Store应用程序。
本书读者
本书适用于Java开发人员,以及致力于计算机视觉应用开发的读者。本书假设读者具备一定的Java开发经验(但缺乏相应的Android知识),并对图形数据有着基本的理解,例如像素、颜色通道等内容。
本书结构
本书包含了大量不同的文本风格,并以此区分不同种类的信息。下列内容展示了相应的文本风格和对应的解释内容。
文本中的代码字样通常显示为:"编辑系统路径PATH并包含/platform- tools和/tools"。
目录
1.1 系统需求 2
1.2 构建开发环境 2
1.3 获取现有的开发环境——Tegra Android开发包(TADP) 2
1.4 逐个整合安装环境 4
1.5 获取预制版本的OpenCV4Android 6
1.6 构建源OpenCV 7
1.7 基于Eclipse构建OpenCV示例 8
1.8 查看文档和帮助文件 18
1.9 本章小结 19
第2章 与相机帧协同工作 20
2.1 设计Second Sight应用程序 20
2.2 创建Eclipse项目 22
2.3 开启相机和磁盘访问功能 25
2.4 创建菜单和字符串资源 27
2.5 在CameraActivity中预览和保存照片 29
2.6 删除、编辑和共享LabActivity中的照片 40
2.7 本章小结 44
第3章 添加图像效果 45
3.1 向当前项目中添加文件 45
前言
本书讲解了如何在Android应用程序中绑定OpenCV的Java内容,进而显示相机画面、保存-共享照片、操控颜色和轮廓边以及跟踪2D或3D中的对象。另外,本书还讨论了OpenGL的整合方式,读者可据此构建增强现实(AR)程序,进而在相机画面的跟踪对象上绘制虚拟3D场景。
作为一类开源、跨平台库,OpenCV提供了计算机视觉和应用构建模块,以及针对捕捉处理和图像数据显示的高层接口。例如,OpenCV抽象了相机硬件的细节内容以及数组的内存分配。同时,OpenCV广泛地应用于教学和软件工业中。
Android则是一类开源移动操作系统,对于Java开发者而言,它提供了称作Android SDK的高层应用框架。Android应用程序是一类模块化程序,并针对数据的发布和共享定义了标准的高层接口。针对照片共享应用,移动、高层抽象和数据共享可视为较好的开始点。
虽然OpenCV和Android提供了大量的高层抽象内容(以及开源代码),但对于初学者而言并不容易掌握,例如构建适宜的开发环境,将库功能项移至应用程序中。对此,本书旨在强调清晰的构建过程、简洁的应用设计以及各功能项的详细内容。
鉴于OpenCV的Java和Android绑定尚为新鲜事物,因而其文档并不完整,针对OpenCV与Android的标准相机、媒介以及图形API尤其如此。需要说明的是,整合工作是应用程序开发者的重要任务之一,也是本书的讲解重点。
OpenCV和Android库之间的整合过程充分体现了广泛的应用程序特征,本书结束时将会对此予以尝试。届时,读者可通过可复用的类库扩展或调整后续的计算机视觉项目,并根据已有的开发环境和知识编写更为丰富的应用程序。
本书内容
第1章讨论OpenCV和Android开发环境的构建过程,其中包括Eclipse和Android SDK。
第2章讨论OpenCV与Android应用程序之间的整合方式,进而预览、捕捉、保存和共享照片数据。
第3章探讨OpenCV的功能项,包括颜色通道的控制以及邻接像素问题。除此之外,还将对现有应用程序进行扩展,以使其包含通道混合滤镜、“曲线”滤镜和黑色轮廓边滤镜。
第4章将展示视频画面中既定目标对象(例如油画作品)的识别和跟踪机制。同时,还将对已有应用程序进行适当扩展,并围绕跟踪目标绘制轮廓线。
第5章通过确定3D环境中目标的位置和旋转改善前述跟踪机制。另外,本章还将构建OpenGL 3D场景,并包含与Android相机设备相同的透视视角。
背景知识
本书将讨论OpenCV和Android开发环境的构建过程,其中包括Eclipse和Android SDK。同时,对应软件均包含跨平台特征,包括Windows、Mac、Linux以及其他类UNIX环境。
读者需要持有一部可运行Android 2.2(Froyo)或后续版本的移动设备,并建议设备包含前置和后置相机。另外,鉴于OpenCV使用Google Play Store管理安装和共享库的更新操作,因而推荐安装Google Play Store应用程序。
本书读者
本书适用于Java开发人员,以及致力于计算机视觉应用开发的读者。本书假设读者具备一定的Java开发经验(但缺乏相应的Android知识),并对图形数据有着基本的理解,例如像素、颜色通道等内容。
本书结构
本书包含了大量不同的文本风格,并以此区分不同种类的信息。下列内容展示了相应的文本风格和对应的解释内容。