OpenNI+Kinect:利用自带类实现简单手势识别教程
需积分: 11 157 浏览量
更新于2024-09-13
收藏 344KB PDF 举报
本篇学习笔记主要介绍了如何利用Kinect和OpenNI进行简单手势识别的过程。OpenNI是一个跨平台的开源框架,专门用于处理微软Kinect的传感器数据,尤其是其深度信息,这对于手势识别至关重要。作者在Qt Creator环境中,结合OpenNI 1.5.4.0、Qt 4.8.2以及OpenCV 2.4.2版本,对COpenNI类进行了扩展,引入了一个公开对象GestureGenerator来处理手势识别任务。
在开发过程中,作者首先将GestureGenerator类放在了公共部分,以便于COpenNI类的对象能够访问并设置手势识别的相关属性,如识别的特定手势类型(如挥手、点击、举手和手移动)。初始化GestureGenerator时,通过`Create`函数创建了实例,并指定了需要检测的手势种类。
OpenNI的手势识别是基于事件驱动的,通过注册`GestureRecognizedRecognizedCB`和`GestureProgressProgressCB`回调函数,当特定手势发生或进行中时,程序会触发这些回调。这个过程类似于Qt中的信号与槽机制,允许开发者定制手势触发后的响应逻辑。
设置回调函数原型为:
```cpp
XnStatus RegisterGestureCallbacks(GestureRecognizedRecognizedCB gestureRecognizedCB,
GestureProgressProgressCB gestureProgressCB,
void* pCookie,
XnCallbackHandle& hCallback);
```
用户需要提供两个回调函数指针(`gestureRecognizedCB`和`gestureProgressCB`)以及一个自定义数据指针(`pCookie`),并且接收返回的`hCallback`值,用于后续的回调管理。
然而,作者提到实验结果显示OpenNI自带的类在手势识别效果方面并不理想,这可能意味着需要进一步优化算法或调整参数,或者结合其他技术(如深度学习)以提升识别精度。尽管初始的实现较为基础,但这篇文章为入门者提供了一个使用OpenNI进行简单手势识别的基本框架,后续的研究和改进可以在此基础上展开。
2018-11-18 上传
2013-10-28 上传
2013-05-08 上传
2014-08-13 上传
点击了解资源详情
点击了解资源详情
2012-10-11 上传
2014-04-10 上传
sunny哥1208
- 粉丝: 4
- 资源: 10
最新资源
- 探索AVL树算法:以Faculdade Senac Porto Alegre实践为例
- 小学语文教学新工具:创新黑板设计解析
- Minecraft服务器管理新插件ServerForms发布
- MATLAB基因网络模型代码实现及开源分享
- 全方位技术项目源码合集:***报名系统
- Phalcon框架实战案例分析
- MATLAB与Python结合实现短期电力负荷预测的DAT300项目解析
- 市场营销教学专用查询装置设计方案
- 随身WiFi高通210 MS8909设备的Root引导文件破解攻略
- 实现服务器端级联:modella与leveldb适配器的应用
- Oracle Linux安装必备依赖包清单与步骤
- Shyer项目:寻找喜欢的聊天伙伴
- MEAN堆栈入门项目: postings-app
- 在线WPS办公功能全接触及应用示例
- 新型带储订盒订书机设计文档
- VB多媒体教学演示系统源代码及技术项目资源大全