网上有不少使用Qt做界面,OpenNI为库来开发kinect。
或许大家的第一个问题就是询问该怎样使用Kinect来获取颜色信息图和深度信息图呢?这一节就是简单来回答这个问题的。
使用OpenNI读取颜色图和深度图的步骤如下(这个是程序的核心部分): 1.定义一个Context对象,并调用该对象的Init()方法来进行初始化。
2.定义一个XnMapOutputMode格式对象,设置好分图像分辨率和帧率。
3.定义颜色图和深度图的节点对象,并用其Create()方法来创建,参数为Context对象. 4.设置颜色和深度图的输出模式,调用的方法是SetMapOutputMode();参数为步骤2中定义和设置好了的XnMapOutputMode对象。
6.如果深度图和颜色图在一张图上显示,则必须对深度图像进行校正,校正的方法是调用深度图的如下方法:.GetAlternativeViewPointCap().SetViewPoint(); 7.调用context对象的StartGeneratingAll()来开启设备读取数据开关。
8.调用context对象的更新数据方法,比如WaitAndupdateAll()方法。
9.定义颜色图和色彩图的ImageMetaData对象,并利用对应的节点对象的方法GetMetaData(),将获取到的数据保存到对应的ImageMetaData对象中。
10.如果需要将深度图转换成灰度图来显示,则需要本人将深度值转换成0~255的单通道或者多通道数据,然后直接用来显示。
1