本文介绍了Kinect的用户检测的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当一个Kinect感应器检测到的骨架,因此人可以在其上工作,如果其他人来到附近检测到第二个人现有的用户我开发的应用程序。结果
我想限制Kinect传感器第一次检测,如果其他用户来这不应该检测到另一个用户。结果
在此先感谢

I am developing an application When an kinect sensor detects an skeleton that person can work on it if other person comes near to the existing user it detects the second person.
I want to restrict to the user the kinect sensor first detects it if other user comes this should not detect the other one.
thanks in advance

推荐答案

另见Jurgeon D对Kinect SDK播放器检测的,因为它与骨架指数交易。 @Fixus也是正确的,你可以使用一个ID。但是,如果你的意思是超过2人被检测到,那么只有一个被检测到,这不是编程,那就是在Kinect的硬件和@FelixK。是正确的。

Also see Jurgeon D's answer on Kinect SDK player detection, as it deals with skeleton index. @Fixus is also right in that you could use a ID. But if you mean more than 2 people are detected, then only one is detected, that is not programming, that is in the Kinect's hardware and @FelixK. was right.

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];
}

骨架的ID

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

    if (sf.TrackingState == SkeletalTrackingState.Tracked)
     {
          int ID1 = sf.TrackingID;
     }

另外,code用于检测人类

 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
 }

这篇关于Kinect的用户检测的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-05 16:55