分享

Kinect 在单人识别时候,0号玩家离开的时候,不能够自动识别其他人

 鸿蛟家平 2022-01-07

最近做一个kinect的软件,只有一个人玩的,玩家识别是靠近识别。如果有多人在摄像头画面内的时候,识别到的0 号玩家离开了之后,不能够自动识别1号玩家。 需要所有人离开摄像头画面区域或者遮挡一下摄像头,再次玩家进入才能识别,而且识别不灵敏。

经过测试,发现kinect检测到人后,会给userID一个数字,当这个人离开后,还会检测到有其他人,但是给他的编号是0。但是 userID 是0的时候,kinectManager里面标识的是 没有检测到玩家。 感觉有些矛盾。最终我的解决办法如下:红色区域就是 当检测到玩家ID是0的时候,再次将kinectManager里面用户清除 然后重新检测(其实我其他地方点击按钮做了这个KinectManager.Instance.ClearKinectUsers(); 但是不知为啥没效果)。

  // 是否初始化完成

        if (_manager && _manager.IsInitialized())

        {

            // 是否人物被检测到

            if (_manager.IsUserDetected())

            {

                long userId = _manager.GetPrimaryUserID();

                GameManager.Instance.textPeopleCount.text = "识别到玩家:"+userId;

                if (userId==0)

                {

                    KinectManager.Instance.ClearKinectUsers();

                    KinectManager.Instance.ResetFilters();

                   // KinectManager.Instance.ResetGesture();

                   // KinectManager.Instance.res

                }

                // 获取用户ID

                // 获取目标关节点的索引(以左手为例)

                int jointIndex = (int)KinectInterop.JointType.HandLeft;

                // 判断目标关节点是否被追踪

                if (_manager.IsJointTracked(userId, jointIndex))

                {

                    }

}

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多