示例#1
0
        public FaceAnalyzeResult ProcessInformation(List <JsonResult> jsonResults)
        {
            FaceAnalyzeResult result = new FaceAnalyzeResult();

            if (jsonResults.Any())
            {
                JsonResult faceAnalysisResult   = GetJson(jsonResults, "Face");
                JsonResult visionAnalysisResult = GetJson(jsonResults, "Vision");

                if (faceAnalysisResult != null)
                {
                    List <Face> faces = _faceMapper.Map(faceAnalysisResult.Json);

                    if (visionAnalysisResult != null)
                    {
                        _celebritiesMapper.Map(visionAnalysisResult.Json, faces);
                    }

                    result.Faces = faces;
                }

                if (visionAnalysisResult != null)
                {
                    result.Moderation = _moderationMapper.Map(visionAnalysisResult.Json);
                }

                result.JsonResults = jsonResults;
            }

            return(result);
        }
示例#2
0
        private async void CmbAnalysisType_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(imageHandler.BitmapPath))
            {
                switch (cmbAnalysisType.Text)
                {
                case "Vision - Analyze":
                    txtResult.Text = await _visionClient.MakeAnalysisRequest(imageHandler.BitmapPath);

                    break;

                case "Face - Detect":
                    FaceAnalyzeResult detectedFaces = await _imageAnalizer.FaceAnalyze(imageHandler.BitmapPath);

                    txtResult.Text = detectedFaces.JsonResults[0].JsonContent;

                    Graphics graphic = this.CreateGraphics();

                    foreach (Face face in detectedFaces.Faces)
                    {
                        int xPos = this.AutoScrollPosition.X + grbAnalysis.Location.X + face.Box.Left;
                        int yPos = this.AutoScrollPosition.Y + grbAnalysis.Location.Y + grbAnalysis.Size.Height + 20 + face.Box.Top;

                        Rectangle rectangle = new Rectangle(xPos, yPos, face.Box.Width, face.Box.Height);
                        graphic.DrawRectangle(face.Gender.Equals("female") ? pinkPen : bluePen, rectangle);
                    }

                    break;

                case "Face - GetList":
                    txtResult.Text = await _faceClient.MakeGetListRequest(imageHandler.BitmapPath);

                    break;

                default:
                    break;
                }
            }
            else
            {
                MessageBox.Show("Please select an image", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
示例#3
0
        public async Task <IHttpActionResult> Analyze()
        {
            try
            {
                byte[] imageToAnalyze = await Request.Content.ReadAsByteArrayAsync();

                if (imageAnalyzer == null)
                {
                    return(BadRequest());
                }

                FaceAnalyzeResult result = await imageAnalyzer.FullAnalyze(imageToAnalyze);

                return(Ok(result));
            }
            catch
            {
                return(Ok(new JObject()));
            }
        }