1

私は 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」は深さとして見つけることができます。

アドバイスをいただければ幸いです。

ありがとう、ハオリン・ウェイ

4

1 に答える 1