Esempio n. 1
0
        //Draw Depth Frame
        public static void DrawDepthFrame(TDepthFrame depthFrame)
        {
            int minDepth = depthFrame.MinDepth;
            int maxDepth = depthFrame.MaxDepth;

            // Convert the depth to RGB
            int colorPixelIndex = 0;

            for (int i = 0; i < depthFrame.DepthData.Length; ++i)
            {
                short depth     = depthFrame.DepthData[i];
                byte  intensity = (byte)(depth >= minDepth && depth <= maxDepth ? depth : 0);

                ColorPixels[colorPixelIndex++] = intensity;
                ColorPixels[colorPixelIndex++] = intensity;
                ColorPixels[colorPixelIndex++] = intensity;

                ++colorPixelIndex;
            }

            DepthBitmap.WritePixels(
                new Int32Rect(0, 0, DepthBitmap.PixelWidth, DepthBitmap.PixelHeight),
                ColorPixels,
                DepthBitmap.PixelWidth * sizeof(int),
                0);
        }
Esempio n. 2
0
 public void TDepthFrameHandler(object senderm, TDepthFrame frame)
 {
     if (!DepthFrameActive)
     {
         return;
     }
     DepthFrameReady(this, frame);
 }
Esempio n. 3
0
        public void Play(Stream stream)
        {
            _lastFrameTime = 0;
            var reader = new BinaryReader(stream);

            _cancellationTokenSource = new CancellationTokenSource();
            var cancelToken = _cancellationTokenSource.Token;

            Task.Factory.StartNew(() =>
            {
                while (reader.BaseStream.Position != reader.BaseStream.Length)
                {
                    var frameType = (TFrameType)reader.ReadInt32();
                    switch (frameType)
                    {
                    case TFrameType.TColorFrame:
                        var colorFrame = new TColorFrame();
                        colorFrame.Read(reader);
                        SpeedControll(colorFrame.Timestamp);
                        ColorFrameReady(this, colorFrame);
                        break;

                    case TFrameType.TDepthFrame:
                        var depthFrame = new TDepthFrame();
                        depthFrame.Read(reader);
                        SpeedControll(depthFrame.Timestamp);
                        DepthFrameReady(this, depthFrame);
                        break;

                    case TFrameType.TSkeletonFrame:
                        var skeletonFrame = new TSkeletonFrame();
                        skeletonFrame.Read(reader);
                        SpeedControll(skeletonFrame.Timestamp);
                        SkeletonFrameReady(this, skeletonFrame);
                        break;
                    }
                }
                reader.Close();
                reader.Dispose();

                if (ReplayEnded != null)
                {
                    ReplayEnded(this, "Ended");
                }
            }, cancelToken);
        }
Esempio n. 4
0
        public void SensorDepthFrameHandler(object sender, DepthImageFrameReadyEventArgs e)
        {
            if (_isPlaying)
            {
                return;
            }
            if (!DepthFrameActive)
            {
                return;
            }

            var sensorFrame = e.OpenDepthImageFrame();

            if (sensorFrame != null)
            {
                var frame = new TDepthFrame(sensorFrame);
                DepthFrameReady(this, frame);
            }
        }
Esempio n. 5
0
 public static void SensorDepthFrameReady(object sender, TDepthFrame depthFrame)
 {
     Context.Send((gui) => DrawDepthFrame(depthFrame), null);
 }