private void GetCelebrityInfoIfAvailable(ImageAnalyzer analyzer, Microsoft.ProjectOxford.Vision.Contract.FaceRectangle rectangle, out string name, out double confidence) { if (analyzer.AnalysisResult?.Categories != null) { foreach (var category in analyzer.AnalysisResult.Categories.Where(c => c.Detail != null)) { dynamic detail = JObject.Parse(category.Detail.ToString()); if (detail.celebrities != null) { foreach (var celebrity in detail.celebrities) { int left = Int32.Parse(celebrity.faceRectangle.left.ToString()); int top = Int32.Parse(celebrity.faceRectangle.top.ToString()); if (Math.Abs(left - rectangle.Left) <= 20 && Math.Abs(top - rectangle.Top) <= 20) { name = celebrity.name.ToString(); confidence = celebrity.confidence; return; } } } } } name = null; confidence = 0; }
public static Rectangle[] ToRectangle(this Microsoft.ProjectOxford.Vision.Contract.FaceRectangle faceRectangle) => new Rectangle[] { new Rectangle { Height = faceRectangle.Height, Left = faceRectangle.Left, Top = faceRectangle.Top, Width = faceRectangle.Width } };
private FaceAPI.Contract.Face CreateFace(VisionAPI.Contract.FaceRectangle rect) { return(new FaceAPI.Contract.Face { FaceRectangle = new FaceAPI.Contract.FaceRectangle { Left = rect.Left, Top = rect.Top, Width = rect.Width, Height = rect.Height } }); }
private Face CreateFace(Microsoft.ProjectOxford.Vision.Contract.FaceRectangle rect) { return(new Face { FaceRectangle = new FaceRectangle { Left = rect.Left, Top = rect.Top, Width = rect.Width, Height = rect.Height } }); }