Xamarin: Difference between revisions
Jump to navigation
Jump to search
Line 16: | Line 16: | ||
* [https://fiddle.skia.org/named/ Named Fiddles] | * [https://fiddle.skia.org/named/ Named Fiddles] | ||
<source lang="cpp"> | |||
using (new Transform(canvas)) | using (new Transform(canvas)) | ||
{ | { | ||
Line 36: | Line 37: | ||
} | } | ||
} | } | ||
</source> | |||
<source lang="cpp"> | |||
// Transform point from current transformation matrix to original grid | // Transform point from current transformation matrix to original grid | ||
var originalPoints = new[] { new SKPoint(0, 0) }; | var originalPoints = new[] { new SKPoint(0, 0) }; | ||
Line 46: | Line 48: | ||
var snappedPixelPointsInCurrentTransformationMatrix = new[] { new SKPoint(0, 0) }; | var snappedPixelPointsInCurrentTransformationMatrix = new[] { new SKPoint(0, 0) }; | ||
inverseMatrix.MapPoints(snappedPixelPointsInCurrentTransformationMatrix, originalPoints); | inverseMatrix.MapPoints(snappedPixelPointsInCurrentTransformationMatrix, originalPoints); | ||
</source> | |||
==Android services== | ==Android services== |
Revision as of 13:42, 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
- Adding Facial Recognition to Your Mobile Apps
- Learn how to build smarter mobile apps using Microsoft Cognitive Services & Xamarin
SkiaSharp
<source lang="cpp">
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(); } }
</source> <source lang="cpp">
// 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);
</source>