OpenNI中文版用户手册:体感交互与API详解
4星 · 超过85%的资源 需积分: 9 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,开发者可以专注于上层的应用逻辑,而不是底层的硬件接口实现。
2013-10-28 上传
169 浏览量
164 浏览量
2014-07-16 上传
2012-04-28 上传
2017-03-06 上传
iceyoou
- 粉丝: 0
- 资源: 17
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析