Kinect C ++颜色数据检索

时间:2012-10-19 20:34:40

标签: c++ kinect

我更改了用C ++编写的Kinect示例,这样新代码将检索骨架和颜色数据,而原始文件只获取骨架数据。我意识到代码无法调用ProcessColor方法,我为了处理颜色数据而实现了该方法。当我仔细检查问题时,我看到下面部分的指示行(属于init函数)失败。在调试过程中,当我到达那一行时,程序退回到ProcessColor方法,然后给出错误。

if(NULL!=kinectSensor)
{
    // line that fails is the following
    hr = kinectSensor->NuiInitialize(NUI_INITIALIZE_FLAG_USES_COLOR);
     if (SUCCEEDED(hr))
    {
        // Create an event that will be signaled when color data is available
        m_hNextColorFrameEvent = CreateEvent(NULL, TRUE, FALSE, NULL);

        // Open a color image stream to receive color frames
        hr = kinectSensor->NuiImageStreamOpen(
            NUI_IMAGE_TYPE_COLOR,
            NUI_IMAGE_RESOLUTION_640x480,
            0,
            2,
            m_hNextColorFrameEvent,
            &m_pColorStreamHandle);
    }
}

下面我指出了它跳过的行:

 HRESULT hr;
NUI_IMAGE_FRAME imageFrame;
HANDLE m_hNextColorFrameEvent(INVALID_HANDLE_VALUE), m_pColorStreamHandle(INVALID_HANDLE_VALUE);
// Line that it jumps
hr = kinectSensor->NuiImageStreamGetNextFrame(m_pColorStreamHandle, 0, &imageFrame);

错误信息如下:

KinectSample.exe中0x5ca5b4a6处的未处理异常:0xC0000005:访问冲突读取位置0x00000047。

如果有帮助,我想表明我在官方Kinect示例(ColorBasics-D2D)中添加了上面显示的部分,并且可能存在冲突或其他事情,尽管在此过程中我非常小心。

我该如何解决? 有什么想法吗?

0 个答案:

没有答案