完全な点群を表示しているようには見えませんが、青い影付きの強度マップを表示しています。これは、Kinect forWindowsSDKの深度画像を使用して実行できます。あなたが探しているのはプレイヤーインデックスです。これは、深度画像の各ピクセルに提供されるビットです。プレーヤーのインデックスビットを取得するには、初期化コードで骨格ストリームも有効にする必要があります。
だから、これは私がそれをする方法です。ここにあるKinectforWindows SDKクイックスタートの1つを変更してロードし、次の変更を加えます。
//Change image type to BGRA32
image1.Source =
BitmapSource.Create(depthFrame.Width, depthFrame.Height,
96, 96, PixelFormats.Bgra32, null, pixels, stride);
//hardcoded locations to Blue, Green, Red, Alpha (BGRA) index positions
const int BlueIndex = 0;
const int GreenIndex = 1;
const int RedIndex = 2;
const int AlphaIndex = 3;
//get player and depth at pixel
int player = rawDepthData[depthIndex] & DepthImageFrame.PlayerIndexBitmask;
int depth = rawDepthData[depthIndex] >> DepthImageFrame.PlayerIndexBitmaskWidth;
//check each pixel for player, if player is blue intensity.
if (player > 0)
{
pixels[colorIndex + BlueIndex] = 255;
pixels[colorIndex + GreenIndex] = intensity;
pixels[colorIndex + RedIndex] = intensity;
pixels[colorIndex + AlphaIndex] = 100;
}
else
{
//if not player make black and transparent
pixels[colorIndex + BlueIndex] = 000;
pixels[colorIndex + GreenIndex] = 000;
pixels[colorIndex + RedIndex] = 000;
pixels[colorIndex + AlphaIndex] = 0;
}
この例を使用して色をテストするのが好きです。これは、右側に深度ビューアーが表示されるためです。この効果の画像を以下に添付しました。
左の画像は、わずかに色付けされたピクセルレベルの強度データを含む強度マップです。
デビッドベイツを助けることを願っています