Example #1
0
        private void GetVarianceXY()
        {
            if (skelQ.Count <= 0)
            {
                return;
            }
            Skeleton sd = skelQ.Last();

            if (sd == null)
            {
                return;
            }


            JointGroup joints = new JointGroup();

            joints.Head           = sd.Joints[JointType.Head];
            joints.ShoulderCenter = sd.Joints[JointType.ShoulderCenter];
            joints.ShoulderLeft   = sd.Joints[JointType.ShoulderLeft];
            joints.ShoulderRight  = sd.Joints[JointType.ShoulderRight];
            joints.Spine          = sd.Joints[JointType.Spine];
            joints.ElbowLeft      = sd.Joints[JointType.ElbowLeft];
            joints.ElbowRight     = sd.Joints[JointType.ElbowRight];
            joints.WristLeft      = sd.Joints[JointType.WristLeft];
            joints.WristRight     = sd.Joints[JointType.WristRight];



            float meanX = 0;
            float meanY = 0;

            float varianceX = 0;
            float varianceY = 0;

            meanX += joints.Head.Position.X;
            meanX += joints.Spine.Position.X;
            meanX += joints.ShoulderCenter.Position.X;
            meanX += joints.ShoulderLeft.Position.X;
            meanX += joints.ShoulderRight.Position.X;
            meanX += joints.ElbowLeft.Position.X;
            meanX += joints.ElbowRight.Position.X;
            meanX += joints.WristLeft.Position.X;
            meanX += joints.WristRight.Position.X;

            meanX /= numOfJoints;



            varianceX += (meanX - (float)joints.Head.Position.X) * (meanX - (float)joints.Head.Position.X);
            varianceX += (meanX - (float)joints.Spine.Position.X) * (meanX - (float)joints.Spine.Position.X);
            varianceX += (meanX - (float)joints.ShoulderCenter.Position.X) * (meanX - (float)joints.ShoulderCenter.Position.X);
            varianceX += (meanX - (float)joints.ShoulderLeft.Position.X) * (meanX - (float)joints.ShoulderLeft.Position.X);
            varianceX += (meanX - (float)joints.ShoulderRight.Position.X) * (meanX - (float)joints.ShoulderRight.Position.X);
            varianceX += (meanX - (float)joints.ElbowLeft.Position.X) * (meanX - (float)joints.ElbowLeft.Position.X);
            varianceX += (meanX - (float)joints.ElbowRight.Position.X) * (meanX - (float)joints.ElbowRight.Position.X);
            varianceX += (meanX - (float)joints.WristLeft.Position.X) * (meanX - (float)joints.WristLeft.Position.X);
            varianceX += (meanX - (float)joints.WristRight.Position.X) * (meanX - (float)joints.WristRight.Position.X);

            varianceX /= numOfJoints;



            meanY += joints.Head.Position.Y;
            meanY += joints.Spine.Position.Y;
            meanY += joints.ShoulderCenter.Position.Y;
            meanY += joints.ShoulderLeft.Position.Y;
            meanY += joints.ShoulderRight.Position.Y;
            meanY += joints.ElbowLeft.Position.Y;
            meanY += joints.ElbowRight.Position.Y;
            meanY += joints.WristLeft.Position.Y;
            meanY += joints.WristRight.Position.Y;

            meanY /= numOfJoints;


            varianceY += (meanY - (float)joints.Head.Position.Y) * (meanY - (float)joints.Head.Position.Y);
            varianceY += (meanY - (float)joints.Spine.Position.Y) * (meanY - (float)joints.Spine.Position.Y);
            varianceY += (meanY - (float)joints.ShoulderCenter.Position.Y) * (meanY - (float)joints.ShoulderCenter.Position.Y);
            varianceY += (meanY - (float)joints.ShoulderLeft.Position.Y) * (meanY - (float)joints.ShoulderLeft.Position.Y);
            varianceY += (meanY - (float)joints.ShoulderRight.Position.Y) * (meanY - (float)joints.ShoulderRight.Position.Y);
            varianceY += (meanY - (float)joints.ElbowLeft.Position.Y) * (meanY - (float)joints.ElbowLeft.Position.Y);
            varianceY += (meanY - (float)joints.ElbowRight.Position.Y) * (meanY - (float)joints.ElbowRight.Position.Y);
            varianceY += (meanY - (float)joints.WristLeft.Position.Y) * (meanY - (float)joints.WristLeft.Position.Y);
            varianceY += (meanY - (float)joints.WristRight.Position.Y) * (meanY - (float)joints.WristRight.Position.Y);


            varianceY /= numOfJoints;



            JointInfo j = new JointInfo();

            j.joints = joints;

            j.meanX     = meanX;
            j.meanY     = meanY;
            j.varianceX = varianceX;
            j.varianceY = varianceY;
        }
Example #2
0
        private void EnqJointPointGroup(JointPointGroup jpg)
        {
            jpgQ.Enqueue(jpg);
            if (jpgQ.Count > jpgQmax)
            {
                jpgQ.Dequeue();
            }
            this.curr_jpg = jpgQ.Last();

            JointInfo j = new JointInfo();


            float meanX = 0;
            float meanY = 0;

            float varianceX = 0;
            float varianceY = 0;

            meanX += jpg.Head.X;
            meanX += jpg.Spine.X;
            meanX += jpg.ShoulderCenter.X;
            meanX += jpg.ShoulderLeft.X;
            meanX += jpg.ShoulderRight.X;
            meanX += jpg.ElbowLeft.X;
            meanX += jpg.ElbowRight.X;
            meanX += jpg.WristLeft.X;
            meanX += jpg.WristRight.X;

            meanX /= numOfJoints;



            varianceX += (meanX - (float)jpg.Head.X) * (meanX - (float)jpg.Head.X);
            varianceX += (meanX - (float)jpg.Spine.X) * (meanX - (float)jpg.Spine.X);
            varianceX += (meanX - (float)jpg.ShoulderCenter.X) * (meanX - (float)jpg.ShoulderCenter.X);
            varianceX += (meanX - (float)jpg.ShoulderLeft.X) * (meanX - (float)jpg.ShoulderLeft.X);
            varianceX += (meanX - (float)jpg.ShoulderRight.X) * (meanX - (float)jpg.ShoulderRight.X);
            varianceX += (meanX - (float)jpg.ElbowLeft.X) * (meanX - (float)jpg.ElbowLeft.X);
            varianceX += (meanX - (float)jpg.ElbowRight.X) * (meanX - (float)jpg.ElbowRight.X);
            varianceX += (meanX - (float)jpg.WristLeft.X) * (meanX - (float)jpg.WristLeft.X);
            varianceX += (meanX - (float)jpg.WristRight.X) * (meanX - (float)jpg.WristRight.X);

            varianceX /= numOfJoints;



            meanY += jpg.Head.Y;
            meanY += jpg.Spine.Y;
            meanY += jpg.ShoulderCenter.Y;
            meanY += jpg.ShoulderLeft.Y;
            meanY += jpg.ShoulderRight.Y;
            meanY += jpg.ElbowLeft.Y;
            meanY += jpg.ElbowRight.Y;
            meanY += jpg.WristLeft.Y;
            meanY += jpg.WristRight.Y;

            meanY /= numOfJoints;


            varianceY += (meanY - (float)jpg.Head.Y) * (meanY - (float)jpg.Head.Y);
            varianceY += (meanY - (float)jpg.Spine.Y) * (meanY - (float)jpg.Spine.Y);
            varianceY += (meanY - (float)jpg.ShoulderCenter.Y) * (meanY - (float)jpg.ShoulderCenter.Y);
            varianceY += (meanY - (float)jpg.ShoulderLeft.Y) * (meanY - (float)jpg.ShoulderLeft.Y);
            varianceY += (meanY - (float)jpg.ShoulderRight.Y) * (meanY - (float)jpg.ShoulderRight.Y);
            varianceY += (meanY - (float)jpg.ElbowLeft.Y) * (meanY - (float)jpg.ElbowLeft.Y);
            varianceY += (meanY - (float)jpg.ElbowRight.Y) * (meanY - (float)jpg.ElbowRight.Y);
            varianceY += (meanY - (float)jpg.WristLeft.Y) * (meanY - (float)jpg.WristLeft.Y);
            varianceY += (meanY - (float)jpg.WristRight.Y) * (meanY - (float)jpg.WristRight.Y);

            varianceY /= numOfJoints;



            j.meanX     = meanX;
            j.meanY     = meanY;
            j.varianceX = varianceX;
            j.varianceY = varianceY;



            //jointInfoQ.Enqueue(j);
        }