Beispiel #1
0
        private void SkeletonExtractSkeletonFrameReady(object sender, BodyFrameArrivedEventArgs e)
        {
            bool dataReceived = false;

            Body[] skeleton_array = null;
            using (BodyFrame bodyFrame = e.FrameReference.AcquireFrame())
            {
                if (bodyFrame != null)
                {
                    if (skeleton_array == null)
                    {
                        // creates an array of 6 bodies, which is the max number of bodies that Kinect can track simultaneously
                        skeleton_array = new Body[bodyFrame.BodyCount];
                    }
                    bodyFrame.GetAndRefreshBodyData(skeleton_array);
                    dataReceived = true;
                }
            }
            if (dataReceived)
            {
                foreach (Body data in skeleton_array)
                {
                    if (data != null)
                    {
                        Skeleton2DDataExtract.ProcessData(data);
                    }
                }
            }
        }
Beispiel #2
0
 //Dtw events
 private void SkeletonExtractSkeletonFrameReady(object sender, SkeletonFrame skeletonFrame)
 {
     if (skeletonFrame != null)
     {
         skeletonFrame.CopySkeletonDataTo(MainWindow._FrameSkeletons);
         Skeleton data = (from s in MainWindow._FrameSkeletons
                          where s.TrackingState == SkeletonTrackingState.Tracked
                          select s).FirstOrDefault();
         Skeleton2DDataExtract.ProcessData(data);
     }
 }
        /// <summary>
        /// Called each time a skeleton frame is ready. Passes skeletal data to the DTW processor
        /// </summary>
        /// <param name="sender">The sender object</param>
        /// <param name="e">Skeleton Frame Ready Event Args</param>
        private static void SkeletonExtractSkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
        {
            using (var skeletonFrame = e.OpenSkeletonFrame())
            {
                if (skeletonFrame == null)
                {
                    return;                        // sometimes frame image comes null, so skip it.
                }
                var skeletons = new Skeleton[skeletonFrame.SkeletonArrayLength];
                skeletonFrame.CopySkeletonDataTo(skeletons);

                foreach (Skeleton data in skeletons)
                {
                    Skeleton2DDataExtract.ProcessData(data);
                }
            }
        }