2

現在、Kinect を使用しています。Kinect の VGA イメージにスケルトンのボーンを描画したいと考えています。まず、kinect から画像を取得します。

HRESULT hr = globalNui->NuiImageStreamGetNextFrame( videoStreamHandle, 0, &frame);
INuiFrameTexture * texture = frame.pFrameTexture;
NUI_LOCKED_RECT lockedRect;
texture->LockRect( 0, &lockedRect, NULL, 0);

ここではそれをNUI_LOCKED_RECTに入れているので、それを使って何でもできます。最も一般的な方法は、ビットマップに変換して画面に表示することですが、画像にいくつかの変更を加えたいと考えています。Direct2D を使用して画面に表示するので、ID2D1Bitmap に変換できる画像形式が必要で、線や点を描画できる必要があります。どのようなイメージが必要ですか?

4

2 に答える 2

1

ロックされたバッファには、サイズwidth * height * 4バイトの単純な配列が含まれます。各ピクセルは4バイトのXRGBです(ドキュメントはこちら:http ://msdn.microsoft.com/en-us/library/jj131027.aspxを参照)。画像は行順に保存されるため、ある位置のピクセルにx,yは配列インデックスが付けられます((width * y) + x) * 4)

これは標準の画像バッファ形式であり、Microsoft独自のWIC、IPL、OpenCVなど、他のほとんどすべての画像操作ライブラリで自由に使用できます。バッファ全体を繰り返し処理し、RGB値を直接設定することに問題はありません。これは、単純なグラフィック作業には十分すぎるはずです。

于 2012-11-12T16:14:54.523 に答える
0

だから私は、私が望むことをしている画像フォーマットはまったくないと考えました。Direct2D のすべての可能性を知ったので、問題ありません。今、私は実際に画像を変更していませんが、ユーザーには同じように見えます.

于 2012-11-14T12:00:23.237 に答える