Exemplo n.º 1
0
        /// <summary>
        /// Build a new Compose block
        /// </summary>
        /// <param name="kinectManager">The Kinect Manager </param>
        public ComposeImagesBlock(IKinectManager kinectManager)
        {
            _kinectManager = kinectManager;

            //Build the internal TDF network
            _imageUpdater    = new ActionBlock <BitmapSource>(image => _lastImage = image);
            _mergeImageBlock =
                new ActionBlock <Tuple <DepthImageFrameInfo, ColorImageFrameInfo> >(t => Merge(t, _lastImage),
                                                                                    new ExecutionDataflowBlockOptions
            {
                BoundedCapacity = 1
            });
            _joinSources.LinkTo(_mergeImageBlock);

            _greenScreenPixelData = new int[0];
            _colorCoordinates     = new ColorImagePoint[0];
        }
Exemplo n.º 2
0
        /// <summary>
        /// Build the network
        /// </summary>
        /// <param name="kinectManager">The kinect manager</param>
        /// <returns>The result image block. The last in the chain</returns>
        public static ISourceBlock <BitmapSource> Build(IKinectManager kinectManager)
        {
            var skeletonBlock     = new SkeletonBlock(kinectManager);
            var gestureRecognizer = new GestureRecognizer();

            skeletonBlock.LinkTo(gestureRecognizer, new DataflowLinkOptions {
                PropagateCompletion = true
            });

            var backgroundPictureManagerBlock = new BackgroundPictureManagerBlock();

            gestureRecognizer.LinkTo(backgroundPictureManagerBlock);

            var greenTransformBlock = new GreenTransformBlock();

            backgroundPictureManagerBlock.LinkTo(greenTransformBlock,
                                                 new DataflowLinkOptions {
                PropagateCompletion = true
            });

            gestureRecognizer.LinkTo(greenTransformBlock.TargetCommand);

            var depthCameraBlock  = new DepthCameraBlock(kinectManager);
            var colorCameraBlock  = new ColorCameraBlock(kinectManager);
            var combineImageBlock = new ComposeImagesBlock(kinectManager);

            depthCameraBlock.LinkTo(combineImageBlock.DepthCameraTarget,
                                    new DataflowLinkOptions {
                PropagateCompletion = true
            });
            colorCameraBlock.LinkTo(combineImageBlock.ColorCameraTarget,
                                    new DataflowLinkOptions {
                PropagateCompletion = true
            });


            greenTransformBlock.LinkTo(combineImageBlock.ImageTarget,
                                       new DataflowLinkOptions {
                PropagateCompletion = true
            });

            return(combineImageBlock);
        }
Exemplo n.º 3
0
 public KinectPublisher(IKinectManager manager, IPublisherConfiguration configuration)
 {
     _manager = manager;
     _configuration = configuration;
 }
Exemplo n.º 4
0
 /// <summary>
 /// Initiate the base class block
 /// </summary>
 /// <param name="kinectManager">The Kinect manager that provide the sensor data and manipulation</param>
 protected KinectProcessingBlock(IKinectManager kinectManager)
 {
     KinectManager = kinectManager;
 }
Exemplo n.º 5
0
 /// <summary>
 /// Initiate the color camera block
 /// </summary>
 /// <param name="kinectManager">The Kinect Manager</param>
 public ColorCameraBlock(IKinectManager kinectManager)
     : base(kinectManager)
 {
     KinectManager.OnColorImageFrame += KinectManagerOnColorImageFrame;
 }
Exemplo n.º 6
0
 /// <summary>
 /// Initiate the skeleton source block
 /// </summary>
 /// <param name="kinectManager">The Kinect Manager</param>
 public SkeletonBlock(IKinectManager kinectManager)
     : base(kinectManager)
 {
     KinectManager.OnSkeletonFrame += KinectManagerOnSkeletonFrame;
 }
Exemplo n.º 7
0
 /// <summary>
 /// Initiate the Depth camera block
 /// </summary>
 /// <param name="kinectManager">The Kinect Manager</param>
 public DepthCameraBlock(IKinectManager kinectManager)
     : base(kinectManager)
 {
     KinectManager.OnDepthImageFrame += KinectManagerOnDepthImageFrame;
 }