Kinect 自己写的几个特定动作的识别

UserID  ==>  可以传一个当前识别的用户ID 


    // 双手叉腰
    private bool DetectedPose4()
    {
        if (manager.IsJointTracked(UserID, 5) && manager.IsJointTracked(UserID, 9)&& manager.IsJointTracked(UserID, 1))
        {
            //text.text = manager.GetJointKinectPosition(UserID,5) + "   " + manager.GetJointKinectPosition(UserID, 1);

            if (manager.GetJointKinectPosition(UserID, 1).x - manager.GetJointKinectPosition(UserID, 5).x >= 0.2f  && manager.GetJointKinectPosition(UserID, 9).x - manager.GetJointKinectPosition(UserID, 1).x >= 0.2f &&
                manager.GetJointKinectPosition(UserID, 5).y > manager.GetJointKinectPosition(UserID, 21).y && manager.GetJointKinectPosition(UserID, 9).y > manager.GetJointKinectPosition(UserID, 23).y&&
                 manager.GetJointKinectPosition(UserID, 5).x < manager.GetJointKinectPosition(UserID, 21).x && manager.GetJointKinectPosition(UserID, 9).x > manager.GetJointKinectPosition(UserID, 23).x)
            {

                timer1 += Time.deltaTime;
                if (timer1 >= DelayTimer)
                {
                    text.text = "双手叉腰";
                    timer1 = 0f;
                    return true;
                }

            }
            else
            {
                timer1 = 0f;
            }
        }
        return false;

    }

    // 右手举起
    private bool DetectedPose3()
    {
        if (manager.IsJointTracked(UserID, 23)&& manager.IsJointTracked(UserID, 21) && manager.IsJointTracked(UserID, 2))
        {
            //text.text = manager.GetJointKinectPosition(UserID, 21) + "   " + manager.GetJointKinectPosition(UserID, 2);

            if (manager.GetJointKinectPosition(UserID, 23).y > manager.GetJointKinectPosition(UserID, 2).y && manager.GetJointKinectPosition(UserID, 23).x > manager.GetJointKinectPosition(UserID, 2).x && manager.GetJointKinectPosition(UserID, 21).y < manager.GetJointKinectPosition(UserID, 1).y)
            {

                timer1 += Time.deltaTime;
                if (timer1 >= DelayTimer)
                {
                    text.text = "右手举起";
                    timer1 = 0f;
                    return true;
                }

            }
            else
            {
                timer1 = 0f;
            }
        }
        return false;

    }

    // 左右手举起
    private bool DetectedPose2()
    {
        if (manager.IsJointTracked(UserID, 21) && manager.IsJointTracked(UserID, 23) && manager.IsJointTracked(UserID, 3))
        {

            if (manager.GetJointKinectPosition(UserID, 21).x < manager.GetJointKinectPosition(UserID, 3).x && manager.GetJointKinectPosition(UserID, 23).x > manager.GetJointKinectPosition(UserID, 3).x &&
                manager.GetJointKinectPosition(UserID, 21).y > manager.GetJointKinectPosition(UserID, 3).y && manager.GetJointKinectPosition(UserID, 23).y > manager.GetJointKinectPosition(UserID, 3).y)
            {

                timer1 += Time.deltaTime;
                if (timer1 >= DelayTimer)
                {
                    text.text = "左右手举起";
                    timer1 = 0f;
                    return true;
                }

            }
            else
            {
                timer1 = 0f;
            }
        }
        return false;

    }

    // 左右手交叉举过头顶
    private bool DetectedPose1()
    {
        if (manager.IsJointTracked(UserID, 21) && manager.IsJointTracked(UserID, 23)&& manager.IsJointTracked(UserID, 3))
        {

            if (manager.GetJointKinectPosition(UserID, 21).x > manager.GetJointKinectPosition(UserID, 3).x && manager.GetJointKinectPosition(UserID, 23).x < manager.GetJointKinectPosition(UserID, 3).x &&
                manager.GetJointKinectPosition(UserID, 21).y > manager.GetJointKinectPosition(UserID, 3).y && manager.GetJointKinectPosition(UserID, 23).y > manager.GetJointKinectPosition(UserID, 3).y)
            {

                timer1 += Time.deltaTime;
                if (timer1 >= DelayTimer)
                {
                    text.text = "左右手交叉举过头顶";
                    timer1 = 0f;
                    return true;
                }

            }
            else
            {
                timer1 = 0f;
            }
        }
        return false;
    }

    public Text text;
    // 左手举起
    private bool DetectedPose0()
    {
        if (manager.IsJointTracked(UserID, 21)&& manager.IsJointTracked(UserID, 2))
        {
            //text.text = manager.GetJointKinectPosition(UserID, 21) + "   " + manager.GetJointKinectPosition(UserID, 2);

            if(manager.GetJointKinectPosition(UserID,21).y > manager.GetJointKinectPosition(UserID, 2).y && manager.GetJointKinectPosition(UserID, 21).x < manager.GetJointKinectPosition(UserID, 2).x &&
                manager.GetJointKinectPosition(UserID, 23).y < manager.GetJointKinectPosition(UserID, 1).y)
            {
              
                timer1 += Time.deltaTime;
                if(timer1 >= DelayTimer)
                {
                    text.text = "左手举起";
                   timer1 = 0f;
                    return true;
                }

            }
            else
            {
                timer1 = 0f;
            }
        }
        return false;
    }

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值