私は 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」は深さとして見つけることができます。
アドバイスをいただければ幸いです。
ありがとう、ハオリン・ウェイ