OpenNI2编程说明 (未整理)

本文档详细介绍了OpenNI2的高级API,包括OpenNI类、Device类、VideoStream类和VideoFrameRef类的主要功能。OpenNI类提供设备初始化、错误处理和事件监听。Device类负责设备连接与信息获取,VideoStream类处理数据流的开始、停止和设置,VideoFrameRef类封装帧数据和元信息。此外,还涉及PlaybackControl类用于文件设备的播放控制,Recorder类用于记录数据到ONI文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 

http://blog.sina.com.cn/s/blog_4a628f030102v6k4.html

*高级API的四个主要类:

*支援类:

OpenNI 类

--Device 类

**注册:

--PlaybackControl 类

--VideoStream 类

--VideoFrameRef 类

--支援类


http://blog.sina.com.cn/s/blog_4a628f030102v6k4.html

*高级API的四个主要类:

1) openni::OpenNI – 提供一个单一静态的API入口点。同时提供访问设备的途径,设备相关的事件,版本及错误信息。被用来建立与Device的连接。
2) openni::Device – 提供连接到系统的单一传感器设备的接口。 在被创建前要求OpenNI先进行初始化。 Devices提供访问Streams的途径。
3) openni::VideoStream – 抽象化一个单一视屏流。从一个特定的Device中获取。用来获取VideoFrameRefs。
4) openni::VideoFrameRef – 抽象化一个单一视屏元数据(meta-data)并和其相关。

从一个特定的Stream获取。

 

*支援类:

Recorder:用来把OpenNI视屏流储存到文件

Listener Classes(多个):监听OpenNI和Stream产生的事件。

 

 

OpenNI 类

*到设备(Device)的基本访问:

OpenNI类提供到API的静态入口点——OpenNI::initialize():这个函数初始化所有可用的传感器驱动,并扫描系统寻找可用设备。任何使用OpenNI的应用程序都应在最初调用此函数。一旦执行过初始化函数,就可以创建Device对象了,并用它们和真实的传感器硬件进行通信。

 

OpenNI::enumerateDevices():返回一个所有连接系统的可用设备的列表。

 

OpenNI::shutdown():当应用程序准备退出时,这个函数应被调用关闭所有驱动并作适当清理。

 

*到视屏流(Video Streams)的基本访问:

访问(视屏)流的轮询(polling)系统可通过OpenNI::waitForAnyStream()实现:该函数用一个流列表作为传入参数之一。当被调用时,它进行阻塞直到列表中的任一流有新的可用数据。然后它会返回一个状态码并说明是哪个流有可用数据。这个函数可用来实现一个关于新的可用数据的轮询循环。

 

*到设备(Device)的事件驱动的访问:

OpenNI类提供一个以事件驱动方式访问设备的框架。它定义了三种事件:

onDeviceConnected:当一个新的设备通过OpenNI接入且可用是产生
onDeviceDisconnected:从系统中移除某一设备时产生
onDeviceStateChanged:当设备的设置放生变动时产生

 

监听类可通过以下方法被添加到事件句柄列表或被移除:

OpenNI::addDeviceDisconnectedListener()
OpenNI::addDeviceDisconnectedListener()
OpenNI::addDeviceStateChangedListener()
OpenNI::removeDeviceConnectedListener()
OpenNI::removeDeviceDisconnectedListener()
OpenNI::removeDeviceStateChangedListener()

 

以上三种事件均提供一个指向openNI::DeviceInfo对象的指针。这个对象可用来获取事件相关设备的的细节并对设备进行鉴别。另外,onDeviceStateChanged事件还提供一个指向DeviceState对象的指针,可用来查看设备的新状态。

 

*错误信息:

当错误发生时,类型Status会包含一段可记录进日志或显示给用户查看的代码。

OpenNI::getExtendedError():返回一段额外的,人为可读的错误信息。

 

*版本信息:

通过OpenNI::getVersion()返回。

 

 

--Device

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值