资源简介

或许大家的第一个问题就是询问该怎样使用Kinect来获取颜色信息图和深度信息图呢?这里就Kinect+OpenNI获取深度图和颜色图实验来回答这个问题 。

资源截图

代码片段和文件信息

#include 
#include  //包含OpenNI的头文件

using namespace xn;//使用OpenNI库中的命名空间

//全局的OpenNI object
XnStatus g_status;
Context g_context;
ImageGenerator g_image_generator;
DepthGenerator g_depth_generator;
bool g_has_image_generator = true;

//全局的Qt object
QGraphicsPixmapItem *g_image_map;
QGraphicsPixmapItem *g_depth_map;

//CTimer类的定义
class CTimer : public Qobject
{
public:
    void start() {
        g_status = g_context.StartGeneratingAll();//开启设备读取数据的开关
        if(g_status == XN_STATUS_OK) {
            startTimer(33);//使用startTimer()启动定时器,每当时间到时会自动调用timerEvent()函数
        }
        else {
            QMessageBox::critical(NULL “Create Data Error!“ xnGetStatusString(g_status));//显示创建数据失败,该消息框没有父窗口
        }
    }
private:
    void timerEvent(QTimerEvent *) {
        g_context.WaitAndUpdateAll();//更新数据

        //颜色数据
        if(g_has_image_generator) {
            ImagemetaData image_map;
            g_image_generator.GetmetaData(image_map);
            //为g_image_map设置图片,图片的数据来源于外部硬件设备
            g_image_map->setPixmap(QPixmap::fromImage(QImage(image_map.Data() image_map.XRes()
                                                         image_map.YRes() QImage::Format_RGB888)));
        }
        //深度数据
        DepthmetaData depth_map;
        g_depth_generator.GetmetaData(depth_map);
        XnDepthPixel max_depth_value = depth_map.ZRes();
        QImage depth_img(depth_map.XRes() depth_map.YRes() QImage::Format_ARGB32);//格式为ARGB32型的
        for(unsigned int i = 0; i < depth_map.XRes(); i++)
            for(unsigned int j = 0; j < depth_map.YRes(); j++)
            {
                XnDepthPixel depth_value_ij = depth_map(i j);//获取x,y处的坐标值
                if(depth_value_ij == 0) {
                    depth_img.setPixel(i j qRgba(0 0 0 0));
                }//如果捕捉不到深度信息,则将其设置为0
                else {
                    float fscale = 1.0f*depth_value_ij/max_depth_value;//当前深度的比例因子
                    depth_img.setPixel(i j qRgba(255*(1-fscale) 0 255*fscale 255*(1-fscale)));
                }
            }
        g_depth_map->setPixmap(QPixmap::fromImage(depth_img));
    }
};

int  main(int argc char **argv)
{
    QApplication app(argc argv);

    g_status = g_context.Init();//context初始化
    if(g_status != XN_STATUS_OK) {
        QMessageBox::critical(NULL “Context Initial Error!“ xnGetStatusString(g_status));
        return -1;
    }
   // g_context.SetGlobalMirror(true);//设置全局镜像就像照镜子一样,与设置为false时的2张图片镜像
    XnMapOutputMode xmode;//定义图像的输出模式
    xmode.nXRes = 640;//x方向分辨率
    xmode.nYRes = 480;//y方向分辨率
    xmode.nFPS = 30;//帧率
    //设置颜色节点属性
    g_status = g_image_generator.Create(g_context);
    if(g_status != XN_STATUS_OK) {
        QMessageBox::critical(NULL “Image map create failed“ xnGetStatusString(g_status));
        g_has_image_generator = false;
    }
    if( g_has_image_generator ) {
        g_status = g_image

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     494639  2012-09-27 23:46  Kinect+OpenNI学习笔记之2(获取kinect的颜色图像和深度图像).pdf

     文件     213940  2012-09-27 21:48  qt_viewer\debug\main.obj

     文件      53248  2012-09-27 21:48  qt_viewer\debug\qt_viewer.exe

     文件     502024  2012-09-27 21:48  qt_viewer\debug\qt_viewer.ilk

     文件        638  2012-09-27 21:48  qt_viewer\debug\qt_viewer.intermediate.manifest

     文件    2395136  2012-09-27 21:48  qt_viewer\debug\qt_viewer.pdb

     文件       4536  2012-09-27 21:47  qt_viewer\main.cpp

     文件       7103  2012-09-27 17:26  qt_viewer\Makefile

     文件       5827  2012-09-27 17:26  qt_viewer\Makefile.Debug

     文件       5819  2012-09-27 17:26  qt_viewer\Makefile.Release

     文件        248  2012-09-27 17:23  qt_viewer\qt_viewer.pro

     文件      17546  2012-09-27 23:47  qt_viewer\qt_viewer.pro.user

     文件    1970176  2012-09-27 21:48  qt_viewer\vc100.pdb

     目录          0  2012-09-27 23:48  qt_viewer\debug

     目录          0  2012-09-27 23:48  qt_viewer\release

     目录          0  2012-09-27 23:48  qt_viewer

----------- ---------  ---------- -----  ----

              5670880                    16


评论

共有 条评论