创建新ImageGenerator时出现问题

时间:2011-08-29 09:48:26

标签: module kinect openni

我是OpenNI的新手,我正在尝试创建一个只显示纯色图像的简单ImageGenerator,比如白色,我修改了“SampleModule”,在UpdateData()方法中我分配了* pPixel值使用255. UpdateData()方法如下

XnStatus SampleImage::UpdateData()
{
    XnStatus nRetVal = XN_STATUS_OK;

    XnUInt8* pPixel = m_pImageMap;

    for (XnUInt y = 0; y < 300; ++y)
    {
        for (XnUInt x = 0; x < 400; ++x, ++pPixel)
        {           
            *pPixel = (XnUInt8)255;
        }
    }

    m_nFrameID++;
    m_nTimestamp += 1000000 / SUPPORTED_FPS;

    // mark that data is old
    m_bDataAvailable = FALSE;

    return (XN_STATUS_OK);
}

代码编译得很好,我可以用nireg注册它,但是当我尝试从模块生成的数据中读取图像像素值时,我得到了一些奇怪的值(不是我预期的255),我使用以下用于读取像素值的代码。

const XnUInt8*    pImageMap = mImageGenerator.GetImageMap();

for (XnUInt y = 0; y < 300; ++y)
{
        for (XnUInt x = 0; x < 400; ++x, ++pImageMap)
        {
            cout << (int)*pImageMap << endl;
        }
}

并且当我运行“NiViewer”时程序仍然说它找不到图像节点,但“SampleModule”可以作为深度找到。

任何建议都会受到赞赏。

万分感谢 Haolin Wei

1 个答案:

答案 0 :(得分:0)

检查您是否做了以下事情: 1.设置颜色格式,即rgb(或YUV) 2.为updataData()中的每个像素设置正确的值,即r = 255,g = 255,b = 255