【问题标题】:OpenCV with kinect begineer's doubtsOpenCV 与 kinect 初学者的疑惑
【发布时间】:2012-10-07 07:24:21
【问题描述】:

我在我的 ubuntu 11.04 上配置了 OpenCV 和 libfreenect 并单独工作。 我对 OpenCV 也有一些经验,但问题是我不知道如何将 kinect 和 OpenCV 结合起来。我希望有人能通过指出一个好的文档或提供一个使用 kinect 的简单示例代码来帮助我opencv。

【问题讨论】:

    标签: image-processing opencv kinect openni


    【解决方案1】:

    谷歌上“OpenCV kinect”的第一个链接是this。希望对你有帮助。

    【讨论】:

    • 因为我不得不走上艰难的道路,所以我决定做出贡献
    【解决方案2】:

    为了快速让工作正常进行,我建议将 opencv 库包含到其中一个 openni 示例(例如 NiUserTracker)中。在那里,您可以通过以下方式从 DepthMetaData 对象获取深度图像。

    //obtain depth image
    DepthMetaData depthMD;
    g_DepthGenerator.GetMetaData(depthMD);
    const XnDepthPixel* g_Depth = depthMD.Data();
    cv::Mat DepthBuf(480,640,CV_16UC1,(unsigned char*)g_Depth);
    //To display the depth image you probably would want to normalize it to 0-255 range first
    
    
    //obtain rgb image
    ImageMetaData ImageMD;
    g_ImageGenerator.GetMetaData(ImageMD);
    const XnUInt8* g_Img =ImageMD.Data();
    cv::Mat ImgBuf(480,640,CV_8UC3,(unsigned short*)g_Img);
    cv::Mat ImgBuf2;
    cv::cvtColor(ImgBuf,ImgBuf2,CV_RGB2BGR);
    

    【讨论】:

      【解决方案3】:

      为了得到工作 MrglMrgl 代码,我必须在开头添加以下内容:

      nRetVal = g_Context.FindExistingNode(XN_NODE_TYPE_IMAGE, g_ImageGenerator);
      if (nRetVal != XN_STATUS_OK)
      {
           printf("No image node exists! Check your XML.");
           return 1;
      }
      

      最后是这样的:

      cv::namedWindow( "Example1", CV_WINDOW_AUTOSIZE ); 
      cv::imshow( "Example1", ImgBuf2 );
      cv::waitKey(0);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-31
        • 2015-07-30
        • 1970-01-01
        • 2023-03-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多