Exemplo n.º 1
0
        /// <summary>
        /// Called by `ViewController.OnFrameCaptured` once per frame with the buffer processed by the image-processing pipeline in
        /// `VideoCaptureDelegate.DidOutputSampleBuffer`
        /// </summary>
        /// <param name="buffer">The captured video frame.</param>
        public void OnFrameCaptured(CVPixelBuffer buffer)
        {
            // Run the tracker
            var request = new VNTrackObjectRequest(trackedRectangle, ObjectTracked);

            request.TrackingLevel = VNRequestTrackingLevel.Accurate;
            NSError error;
            var     requests = new[] { request };

            overlay.InvokeOnMainThread(() => overlay.Clear());
            trackingHandler.Perform(requests, buffer, out error);
            if (error != null)
            {
                InvokeOnMainThread(() => overlay.Message = error.ToString());
            }
        }
Exemplo n.º 2
0
 private void RectangleDetected(CGPoint[] normalizedQuadrilateral)
 {
     overlay.InvokeOnMainThread(() =>
     {
         // Note conversion from inverted coordinate system!
         var rotatedQuadrilateral = normalizedQuadrilateral.Select(pt => new CGPoint(pt.X, 1.0 - pt.Y)).ToArray();
         overlay.AddQuad(rotatedQuadrilateral);
     });
 }