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); }