Kinect用户检测

rav*_*jag 3 c# kinect

我正在开发一个应用程序当一个kinect传感器检测到一个人可以在其上工作的骨架,如果其他人接近现有用户,它会检测到第二个人.
我想限制用户kinect传感器首先检测到它,如果其他用户来了这不应该检测另一个.
提前致谢

Lia*_*roy 7

另请参阅Jurgeon D关于Kinect SDK播放器检测的答案,因为它处理骨架索引.@Fixus也是对的,因为你可以使用ID.但是如果你的意思是检测到超过2个人,那么只有一个被检测到,那就是编程,那就是Kinect的硬件和@FelixK.是正确的.

骨骼指数

void nui_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e) 
{
    SkeletonFrame sf = e.SkeletonFrame;
    //check which skeletons in array are active and
    // use that array indexes for player index
    SkeletonData player1 = sf.Skeletons[playerIndex1];
    SkeletonData player2 = sf.Skeletons[playerIndex2];
}
Run Code Online (Sandbox Code Playgroud)

骨骼ID

void nui_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
{
    SkeletonFrame sf = e.SkeletonFrame;

    if (sf.TrackingState == SkeletalTrackingState.Tracked)
     {
          int ID1 = sf.TrackingID;
     }
Run Code Online (Sandbox Code Playgroud)

也是检测人类的代码

 DepthImageFrame depthFrame;
 short[] rawDepthData = new short[depthFrame.PixelDataLength];
 depthFrame.CopyPixelDataTo(rawDepthData); 
 Byte[] pixels = new byte[depthFrame.Height * depthFrame.Width * 4];     
 int player = rawDepthData[depthIndex] & DepthImageFrame.PlayerIndexBitmask;

 if (player > 0)
 {
     //do something
 }      
Run Code Online (Sandbox Code Playgroud)