OpenNI中文版用户手册:体感交互与API详解

4星 · 超过85%的资源 需积分: 9 78 下载量 104 浏览量 更新于2024-07-27 1 收藏 1.6MB PDF 举报
是OpenNI? OpenNI是一个开源框架,专门设计用于自然交互(Natural Interaction,NI)和计算机视觉应用,尤其在体感技术领域。它提供了一个统一的API,使得开发者能够轻松地集成不同类型的传感器设备,如微软的Kinect,PrimeSense的 Carmine等,而不必关心底层硬件的具体实现。OpenNI的主要目标是抽象化传感器设备和中间件之间的接口,让开发者能够“编写一次,到处部署”,提高代码的复用性和移植性。 2.3 抽象分层视图 OpenNI的架构采用层次化的设计,将复杂的交互和感知任务分解为多个模块和节点。这一抽象层次结构包括模块(Modules)、生产节点(Production Nodes)和生产链(Production Chains)。模块是OpenNI的基本构建块,它们提供特定的功能,如图像捕获、骨骼跟踪等。生产节点是处理数据流的核心单元,它们可以是传感器设备的模拟或真实表示。生产链则是一系列相互连接的生产节点,共同完成一个完整的处理流程,如从传感器获取原始数据到解析出人体骨架信息。 3 概念 3.1 模块(Modules) 模块是OpenNI框架中的基本组件,它们封装了特定功能,比如设备管理和数据处理。 3.2 生产节点(Production Nodes) 生产节点是OpenNI中的核心元素,负责生成数据或处理数据。它们可以是实际的传感器设备,也可以是模拟数据的节点。 3.3 生产链(Production Chains) 生产链是由多个生产节点组成的序列,它们按顺序处理数据,形成一个完整的处理流程。 3.4 能力(Capabilities) 每个生产节点都有特定的能力,如颜色图像捕获、深度图像生成、骨骼跟踪等。开发者可以通过查询节点的能力来决定如何使用它们。 3.5 生成和读取数据 OpenNI提供API来生成新的数据流(如启动传感器)和读取已生成的数据(如获取图像帧或骨架数据)。 3.6 模拟节点(Mock Nodes) 模拟节点用于测试和开发目的,它们可以模拟真实的传感器数据,帮助开发者在没有物理设备的情况下进行软件开发。 3.7 应用和锁节点间共享设备 OpenNI允许多个应用程序同时访问同一设备,通过锁节点机制来确保数据的同步和安全。 3.8 授权(Licensing) OpenNI遵循GNU通用公共许可证(GPL),这意味着源代码是开放的,允许自由分发和修改,但同时也需要遵循相应的授权条款。 3.9 通用框架实用程序 OpenNI提供了一些通用工具,如记录器,用于捕获和回放数据,方便开发和调试。 3.10 记录器(Recorder) 记录器是OpenNI的一个组件,能够记录生产链的数据流,以便于后期分析或离线播放。 3.11 生产节点的错误状态 生产节点可以报告其当前状态,包括错误信息,帮助开发者诊断和解决程序运行时的问题。 4 向后兼容 OpenNI的设计考虑了向后兼容性,确保新版本可以与旧的代码和硬件协同工作。 5 准备开始 5.1 支持平台 OpenNI支持多种操作系统,如Windows、Linux和Mac OS X,允许跨平台开发。 5.2 主要对象(Main Objects) OpenNI API提供了一系列主要对象,如上下文(Context)、生产树(Production Tree)和数据流(Data Stream),供开发者使用来构建自然交互的应用。 OpenNI是一个强大的工具,它简化了体感技术的开发,降低了开发者与各种传感器设备交互的复杂度,使得自然交互应用的开发变得更加便捷。通过利用OpenNI,开发者可以专注于上层的应用逻辑,而不是底层的硬件接口实现。