Xamarin: Difference between revisions

From Yggenyk
Jump to navigation Jump to search
Line 15: Line 15:
* [https://fiddle.skia.org/ Skia Fiddle]
* [https://fiddle.skia.org/ Skia Fiddle]
* [https://fiddle.skia.org/named/ Named Fiddles]
* [https://fiddle.skia.org/named/ Named Fiddles]
    using (new Transform(canvas))
    {
    }
    public class Transform : IDisposable
    {
        private readonly SKCanvas _canvas;
        public Transform(SKCanvas canvas)
        {
            _canvas = canvas;
            canvas.Save();
        }
        public void Dispose()
        {
            _canvas.Restore();
        }
    }
    // Transform point from current transformation matrix to original grid
    var originalPoints = new[] { new SKPoint(0, 0) };
    var pointInCurrentTransformationMatrix = new[] { new SKPoint(0, 0) };
    canvas.TotalMatrix.MapPoints(originalPoints, pointInCurrentTransformationMatrix);
    // Transform point from original grid to current transformation matrix
    canvas.TotalMatrix.TryInvert(out var inverseMatrix);
    var snappedPixelPointsInCurrentTransformationMatrix = new[] { new SKPoint(0, 0) };
    inverseMatrix.MapPoints(snappedPixelPointsInCurrentTransformationMatrix, originalPoints);


==Android services==
==Android services==

Revision as of 13:38, 30 January 2018


The Accord.NET Image Processing and Machine Learning Framework

Accord.NET is a framework for scientific computing in .NET. The framework is comprised of multiple librares encompassing a wide range of scientific computing applications, such as statistical data processing, machine learning, pattern recognition, including but not limited to, computer vision and computer audition. The framework offers a large number of probability distributions, hypothesis tests, kernel functions and support for most popular performance measurements techniques.* Accord .NET Framework

Facial Recognition

Adding Facial Recognition to Your Mobile Apps By Pierce Boggan

SkiaSharp

   using (new Transform(canvas))
   {
   }
   public class Transform : IDisposable
   {
       private readonly SKCanvas _canvas;
       public Transform(SKCanvas canvas)
       {
           _canvas = canvas;
           canvas.Save();
       }
       public void Dispose()
       {
           _canvas.Restore();
       }
   }
   // Transform point from current transformation matrix to original grid
   var originalPoints = new[] { new SKPoint(0, 0) };
   var pointInCurrentTransformationMatrix = new[] { new SKPoint(0, 0) };
   canvas.TotalMatrix.MapPoints(originalPoints, pointInCurrentTransformationMatrix);
   // Transform point from original grid to current transformation matrix
   canvas.TotalMatrix.TryInvert(out var inverseMatrix);
   var snappedPixelPointsInCurrentTransformationMatrix = new[] { new SKPoint(0, 0) };
   inverseMatrix.MapPoints(snappedPixelPointsInCurrentTransformationMatrix, originalPoints);

Android services

id=siteTree