예제 #1
0
        private List <FaceRecord> PopulateCollection()
        {
            Console.WriteLine("Populating collection {0}: ", CollectionName);
            List <FaceRecord> result = new List <FaceRecord>();

            foreach (var entry in DataSet.TargetImages)
            {
                Console.WriteLine("Processing image: {0}", entry.Key);
                MemoryStream stream = new MemoryStream();
                entry.Value.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);

                Image requestImage = new Image()
                {
                    Bytes = stream
                };

                IndexFacesRequest request = new IndexFacesRequest()
                {
                    Image        = requestImage,
                    CollectionId = CollectionName
                };

                var watch = Stopwatch.StartNew();
                IndexFacesResponse response = Client.IndexFaces(request);
                watch.Stop();
                TimingResults.Add(new TimingModel("PopulateCollection", entry.Key, watch.ElapsedMilliseconds));
                IndexedFaces.Add(response);
                result.AddRange(response.FaceRecords);
            }

            Console.WriteLine("Detected {0} faces in {1} images.", result.Count, DataSet.TargetImages.Count);
            return(result);
        }
예제 #2
0
 public bool ContainsFace(IndexedFace ifc)
 {
     return(IndexedFaces.Contains(ifc));
 }