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;
        }
Exemple #2
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
     }
 };
Exemple #3
0
 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
         }
     });
 }
Exemple #4
0
 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
         }
     });
 }