Beispiel #1
0
            private void UpdateFramesCapture(SkeletonRenderFrames oneSecondIntervalFrames)
            {
                // Assumes the interval between frames is approximately constant. Adds an evenly spaced sample number of frames
                // to the working frames capture.

                double frameStep = oneSecondIntervalFrames.Count / GestureStandardToleranceParameters.FramesPerSecondCapture;

                if (frameStep <= 1)
                {
                    framesCapture.Add(oneSecondIntervalFrames);
                }
                else
                {
                    int count = 0;
                    foreach (DateTime timeStamp in rawFramesCapture.FramesTimeStamps)
                    {
                        if (framesCapture.Count == 0)
                        {
                            // Make sure first frame is always saved in capture.
                            framesCapture.Add(timeStamp, rawFramesCapture[timeStamp]);
                            count = 0;
                            continue;
                        }

                        count += 1;
                        if (count > frameStep)
                        {
                            framesCapture.Add(timeStamp, rawFramesCapture[timeStamp]);
                            count = 0;
                        }
                    }
                }
            }
Beispiel #2
0
 private void CalculateFramesInInterval()
 {
     // Build the rawFramesCapture so that it only contains those frames within the designated interval.
     foreach (DateTime timeStamp in parameters.SkeletonRenderFrames.FramesTimeStamps)
     {
         if (timeStamp.CompareTo(parameters.GestureStartTime) >= 0 && timeStamp.CompareTo(parameters.GestureEndTime) <= 0)
         {
             rawFramesCapture.Add(timeStamp, parameters.SkeletonRenderFrames[timeStamp]);
         }
     }
 }