private async Task<object> CreateTrackingHandler(dynamic input) { Logger("Start Image Tracking"); trackingHandlerCallback = (Func<object, Task<object>>)input.callback; if (trackingHandlerCallback == null) { throw new Exception("no callback function is provided"); } IPcMoment moment = await PcLink.CaptureMomentAsync(); // Extract the top-level picture and child images. var picture = await PcLink.ExtractPictureAsync(moment); // Extract the top-level outline and child outlines. var outline = await PcLink.ExtractOutlineAsync(moment); //var combolist = new List<TrackingHandlerDataObject>(); List<PcTrainingImage> images = new List<PcTrainingImage>(); Logger(picture.Children.Count().ToString()); for (int i = 0; i < picture.Children.Count(); i++) { PcTrainingImage trainingImage = new PcTrainingImage("Object " + i, picture.Children.ElementAt(i).Image); images.Add(trainingImage); } // Create the object-tracking handler. trackingHandler = PcLink.CreateObjectTrackingHandler(images); // Subscribe to object-tracking events. trackingHandler.TrackUpdated += _imagesTrackHandler_TrackUpdated; Logger("Before start"); // Start object tracking. trackingHandler.StartAsync().Wait(); Logger("After start"); return true; }
private async Task<object> AddTrainingImages(dynamic input) { string name = (string)input.name; IPcPicture picture = await PcLink.ExtractPictureAsync(getMoment((string)input.momentId)); for (int i = 0; i < picture.Children.Count(); i++) { PcTrainingImage trainingImage = new PcTrainingImage(name + i, picture.Children.ElementAt(i).Image); trainingImages.Add(trainingImage); } return true; }