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); }
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); }
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); } }
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"); } }