Ejemplo n.º 1
0
        public List <CameraSpacePoint> GetSpineCenterPositions(JointsList jointsList)
        {
            var spineBasePositions = new List <CameraSpacePoint>();

            foreach (var joints in jointsList)
            {
                CameraSpacePoint pos = joints[JointType.SpineBase].Position;
                //Console.WriteLine(String.Format("{0} {1} {2}", pos.X, pos.Y, pos.Z));
                spineBasePositions.Add(pos);
            }
            return(spineBasePositions);
        }
Ejemplo n.º 2
0
        private List <float> GetAnkleDistancesFromEachOther(JointsList jointsList)
        {
            var footDistances = new List <float>();

            foreach (var joints in jointsList)
            {
                CameraSpacePoint leftAnkle  = joints[JointType.AnkleLeft].Position;
                CameraSpacePoint rightAnkle = joints[JointType.AnkleRight].Position;

                float footDist = LinearAlgebra.DistanceBetweenTwoPoints(leftAnkle, rightAnkle);

                footDistances.Add(footDist);
            }

            return(footDistances);
        }
Ejemplo n.º 3
0
        public void Analyze(JointsList jointsList)
        {
            FootDistances      = GetAnkleDistancesFromEachOther(jointsList);
            SpineBasePositions = GetSpineCenterPositions(jointsList);

            leftAnkledistancesFromPlane  = new List <float>();
            rightAnkledistancesFromPlane = new List <float>();
            foreach (Dictionary <JointType, Joint> joints in jointsList)
            {
                Planes planes = GetPlanes(joints);

                float distLeft  = GetDistanceFromPlane(joints[JointType.AnkleLeft].Position, joints[JointType.SpineBase].Position, planes.FrontalPlane);
                float distRight = GetDistanceFromPlane(joints[JointType.AnkleRight].Position, joints[JointType.SpineBase].Position, planes.FrontalPlane);
                leftAnkledistancesFromPlane.Add(distLeft);
                rightAnkledistancesFromPlane.Add(distRight);
            }
        }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            //Console.WriteLine("hello, to fudido, mas vou conseguir!");

            while (true)
            {
                string input = ShowDirectories();

                string folderName = input.Split('\\')[input.Split('\\').Length - 1];
                Console.WriteLine(folderName);

                JointsList jointsList = new JointsList();


                string file1 = input + @"\localkinect-data.txt";
                string file2 = input + @"\netkinect-data.txt";

                string[] lines1 = File.ReadAllLines(file1);
                string[] lines2 = File.ReadAllLines(file2);

                var prevJoints1 = SkeletonInterpolation.GetUntrackedSkeleton();
                var prevJoints2 = SkeletonInterpolation.GetUntrackedSkeleton();

                for (int i = 0; i < lines1.Length; i++)
                {
                    //var jointsFrame = Parser.BuildJointsAndJointPoints(line);
                    var joints1 = Parser.BuildJointsAndJointPoints(lines1[i]).Item1;
                    var joints2 = Parser.BuildJointsAndJointPoints(lines2[i]).Item1;

                    var interSkeleton = SkeletonInterpolation.InterpolatedBody(joints1, joints2, prevJoints1, prevJoints2);

                    jointsList.Add(interSkeleton);
                    prevJoints1 = joints1;
                    prevJoints2 = joints2;
                }

                GaitAnalysis gait = new GaitAnalysis(jointsList);
                WriteCSV(gait.FootDistances, filename: folderName + "-ankledists");
                WriteCSV(gait.SpineBasePositions, filename: folderName + "-spinepos");
                WriteCSV(gait.leftAnkledistancesFromPlane, filename: folderName + "-leftdist");
                WriteCSV(gait.rightAnkledistancesFromPlane, filename: folderName + "-rightdist");
            }
        }