Я новичок в 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» можно найти как глубину.
Любой совет будет признателен.
Спасибо за миллион, Хаолин Вей