Exemplo n.º 1
0
        static VisionAPIRequest BuildPayload(string base64)
        {
            Feature webDetect = new Feature {
                type = "WEB_DETECTION"
            };
            Feature safeDetect = new Feature {
                type = "SAFE_SEARCH_DETECTION"
            };
            Feature labelDetect = new Feature {
                type = "LABEL_DETECTION"
            };
            Feature faceDetect = new Feature {
                type = "FACE_DETECTION"
            };
            Image image = new Image {
                content = base64
            };

            Request request = new Request
            {
                features = new Feature[] { webDetect, safeDetect, labelDetect, faceDetect },
                image    = image
            };

            VisionAPIRequest apiRequest = new VisionAPIRequest();

            apiRequest.requests = new Request[] { request };

            return(apiRequest);
        }
Exemplo n.º 2
0
        private List <string> detectObjects(string base64image)
        {
            var imageParts = base64image.Split(',').ToList <string>();

            VisionAPIRequest visionAPIRequest = new VisionAPIRequest()
            {
                requests = new List <requests>()
                {
                    new requests()
                    {
                        image = new image()
                        {
                            content = imageParts[1]
                        },
                        features = new List <features>()
                        {
                            new features()
                            {
                                type       = FEATURE_TYPE,
                                maxResults = 5
                            }
                        }
                    }
                }
            };

            String         visionAPIReqStr  = JsonConvert.SerializeObject(visionAPIRequest);
            String         apiKey           = System.IO.File.ReadAllText("VisionAPIKey.txt");
            String         domain           = "vision.googleapis.com";
            String         endpoint         = "v1/images:annotate";
            String         visionAPIRespStr = this.callPostAPI(visionAPIReqStr, domain, endpoint, apiKey, "key");
            JSchema        visionAPISchema  = JSchema.Parse(System.IO.File.ReadAllText("VisionAPISchema.json"));
            JObject        visionAPIRespObj = JObject.Parse(visionAPIRespStr);
            List <string>  objects          = new List <string>();
            IList <string> validationEvents = new List <string>();

            if (visionAPIRespObj.IsValid(visionAPISchema, out validationEvents))
            {
                if (!String.IsNullOrEmpty(visionAPIRespStr))
                {
                    VisionAPI.Objects objectAnnotationResponse = VisionAPI.Objects.FromJson(visionAPIRespStr);
                    foreach (VisionAPI.Response responses in objectAnnotationResponse.Responses)
                    {
                        foreach (VisionAPI.LocalizedObjectAnnotation localizedObject in responses.LocalizedObjectAnnotations)
                        {
                            if (!objects.Contains(localizedObject.Name))
                            {
                                objects.Add(localizedObject.Name);
                            }
                        }
                    }
                }
            }
            return(objects);
        }
Exemplo n.º 3
0
        static string CallVisionAPI(string url, string base64)
        {
            var request = (HttpWebRequest)WebRequest.Create(url);

            VisionAPIRequest request2 = BuildPayload(base64);

            byte[] data = Encoding.ASCII.GetBytes(JObject.FromObject(request2).ToString());

            request.Method        = "POST";
            request.ContentType   = "application/json";
            request.ContentLength = data.Length;

            using (var stream = request.GetRequestStream())
            {
                stream.Write(data, 0, data.Length);
            }

            return(new StreamReader(request.GetResponse().GetResponseStream()).ReadToEnd());
        }