/// <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]; }
/// <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); }
public KinectPublisher(IKinectManager manager, IPublisherConfiguration configuration) { _manager = manager; _configuration = configuration; }
/// <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; }
/// <summary> /// Initiate the color camera block /// </summary> /// <param name="kinectManager">The Kinect Manager</param> public ColorCameraBlock(IKinectManager kinectManager) : base(kinectManager) { KinectManager.OnColorImageFrame += KinectManagerOnColorImageFrame; }
/// <summary> /// Initiate the skeleton source block /// </summary> /// <param name="kinectManager">The Kinect Manager</param> public SkeletonBlock(IKinectManager kinectManager) : base(kinectManager) { KinectManager.OnSkeletonFrame += KinectManagerOnSkeletonFrame; }
/// <summary> /// Initiate the Depth camera block /// </summary> /// <param name="kinectManager">The Kinect Manager</param> public DepthCameraBlock(IKinectManager kinectManager) : base(kinectManager) { KinectManager.OnDepthImageFrame += KinectManagerOnDepthImageFrame; }