Exemplo n.º 1
0
        private void Findface(Bitmap bitmap)
        {
            var img = 0;

            var image = bitmap;

            image.Save("test.png");
            FSDK.LoadImageFromFile(ref img, "test.png");

            Face.Source = new BitmapImage(new Uri("test.png", UriKind.Relative));

            FSDK.TPoint[] array;
            FSDK.DetectFacialFeatures(img, out array);
            if (array != null)
            {
                Face.Source = DrawPoints(image, array);
            }


            FSDK.TFacePosition[] faces;
            int faceCount = 0;

            FSDK.DetectMultipleFaces(img, ref faceCount, out faces, 10000);


            if (faces != null)
            {
                foreach (var f in faces)
                {
                    Face.Source = DrawCircle(image, f.xc, f.yc, f.w);
                }
            }
        }
        public static Face FacePreparation(String picDir, String _name, String _folderName, int _index, Face twarz, int _folderIndex)
        {
            int Image = 0;

            if (FSDK.LoadImageFromFile(ref Image, picDir) != FSDK.FSDKE_OK)
            {
                Console.WriteLine("addSingleFace error ! ###############################################");
            }
            FSDK.TFacePosition FacePosition = new FSDK.TFacePosition();

            if (FSDK.DetectFace(Image, ref FacePosition) != FSDK.FSDKE_OK)
            {
                Console.WriteLine("addSingleFace error ! ###############################################");
            }

            FSDK.TPoint[] FacialFeatures;

            if (FSDK.DetectFacialFeatures(Image, out FacialFeatures) == FSDK.FSDKE_OK)
            {
                twarz.name       = _name;
                twarz.folderName = _folderName;
                Console.WriteLine(twarz.name);
                twarz.index        = _index;
                twarz.networkIndex = _folderIndex;
                List <float> faceFeatures = FeatureConverter.GetFeatures(FacialFeatures);
                twarz.features = faceFeatures;

                if (twarz.ValidateFace() == 1)
                {
                    Console.WriteLine("Wygenerowano dane twarzy");
                }
                else
                {
                    Console.WriteLine("Blad twarzy " + twarz.name + " ###############################################");
                }
            }
            else
            {
                Console.WriteLine("addSingleFace error ! ###############################################");
            }
            return(twarz);
        }