KinectOpenNI学习笔记之3(获取kinect数据并在Qt中显示类设计)

KinectOpenNI学习笔记之3(获取kinect数据并在Qt中显示类设计)

ID:36495043

大小:331.00 KB

页数:8页

时间:2019-05-11

KinectOpenNI学习笔记之3(获取kinect数据并在Qt中显示类设计)_第1页
KinectOpenNI学习笔记之3(获取kinect数据并在Qt中显示类设计)_第2页
KinectOpenNI学习笔记之3(获取kinect数据并在Qt中显示类设计)_第3页
KinectOpenNI学习笔记之3(获取kinect数据并在Qt中显示类设计)_第4页
KinectOpenNI学习笔记之3(获取kinect数据并在Qt中显示类设计)_第5页
资源描述:

《KinectOpenNI学习笔记之3(获取kinect数据并在Qt中显示类设计)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Kinect+OpenNI学习笔记之3(获取kinect的数据并在Qt中显示的类的设计)   前言  在上一篇文章Kinect+OpenNI学习笔记之2(获取kinect的颜色图像和深度图像) 中,已经介绍了怎样使用OpenNI来获取Kinect的深度数据和颜色数据,并将获取到的结果在Qt中显示,不过那个代码是写在同一个cpp文件中,以后用到的时候不能讲这些显示的基本过程单独拿出来,比较麻烦。所以这节主要是将OpenNI获取图像的流程以及Qt显示这些图像的结果分开为了2个类来写,方便以后工程的直接拷贝。  开发环

2、境:QtCreator2.5.1+OpenNI1.5.4.0+Qt4.8.2   实验说明  COpenNI这个类主要是初始化kinect设备,并获取深度图像和颜色图像,参加上一篇博客的初始化过程步骤,如果遇到错误,则有相应的错误处理过程。CKinectReader类是将COpenNI这个类读取到的结果显示在Qt的界面上的。因此一个类是负责与硬件Kinect打交道,一个类是负责与人(界面显示)打交道的。具体的过程见上篇文章的分析和后面的代码。  这里发现一个小问题,与kinect有关的工程如果改变了代码,则在每次

3、编译前最好clean一下,因为有可能是与硬件设备相关,没有clean的工程和clean后的工程效果有时会不同。   C/C++知识点总结:  在构造函数中可以使用冒号给类中的数据成员赋值,这样的好处就是可以给常量和引用变量赋值初始化赋值的效果。  类的私有成员只能是类内部的函数调用,连类的对象都不能去调用私有成员变量。  在类的内部使用qDebug(),cout等函数输出调试时是不行的。  隐式数据类型转换,如果是同种类型的数据进行四则运算,则得出的结果也是那种类型,如果其中有常数类型的数据常数参与,则得出的结果

4、会自动转换成跟常数类型相同的类型。  如果一个类以单独一个cpp文件出现,在使用到该类的时候,直接include该cpp文件.   实验结果  在程序中设置了镜像和视觉校正,且将kinect感应不到深度信息的地方全部显示为不透明的黑色,因此你在图中看到的黑色部分就是kinect的深度盲区。8  效果如下:      实验主要部分代码及注释(附录有工程code下载链接):copenni.cpp:#include#include#includeusin

5、gnamespacexn;usingnamespacestd;8classCOpenNI{public:~COpenNI(){context.Release();//释放空间}boolInitial(){//初始化status=context.Init();if(CheckError("Contextinitialfailed!")){returnfalse;}context.SetGlobalMirror(true);//设置镜像//产生图片nodestatus=image_generator.Create(c

6、ontext);if(CheckError("Createimagegeneratorerror!")){returnfalse;}//产生深度nodestatus=depth_generator.Create(context);if(CheckError("Createdepthgeneratorerror!")){returnfalse;}//视角校正status=depth_generator.GetAlternativeViewPointCap().SetViewPoint(image_generator

7、);if(CheckError("Can'tsetthealternativeviewpointondepthgenerator")){returnfalse;}returntrue;}boolStart(){status=context.StartGeneratingAll();if(CheckError("Startgeneratingerror!")){returnfalse;}returntrue;}8boolUpdateData(){status=context.WaitNoneUpdateAll();

8、if(CheckError("Updatedateerror!")){returnfalse;}//获取数据image_generator.GetMetaData(image_metadata);depth_generator.GetMetaData(depth_metadata);returntrue;}public:DepthMetaDatadepth_metadat

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。