Exemplo 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);
        }
Exemplo n.º 2
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);
        }
Exemplo n.º 3
0
 public static void SensorDepthFrameReady(object sender, TDepthFrame depthFrame)
 {
     Context.Send((gui) => DrawDepthFrame(depthFrame), null);
 }
Exemplo n.º 4
0
 public void TDepthFrameHandler(object senderm, TDepthFrame frame)
 {
     if (!DepthFrameActive) return;
     DepthFrameReady(this, frame);
 }
Exemplo n.º 5
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);
            }
        }