private void SurveillanceOnFaceDetected(Mat mat, List <Rectangle> faces, List <Rectangle> eyes) { //todo : maybe just put additional level of rectangles on what is already there; var frame = mat.Clone(); foreach (Rectangle face in faces) { CvInvoke.Rectangle(frame, face, new Bgr(Color.Red).MCvScalar, 2); } foreach (Rectangle eye in eyes) { CvInvoke.Rectangle(frame, eye, new Bgr(Color.Blue).MCvScalar, 2); } imageBox2.Image = frame; var text = LabelText; if (checkBoxCapture.Checked && faces.Count == 1 && eyes.Count == 2 && text != null && text.Length > 0) { MemoryStream imageMemoryStream = new MemoryStream(); Image imageToTrain = mat.Bitmap; imageToTrain.Save(imageMemoryStream, ImageFormat.Png); var directory = String.Format("{0}/Output", Directory.GetCurrentDirectory()); var imageLabel = new ImageLabel(text, imageMemoryStream.ToArray()); var dal = new FileSystemDAL(directory); dal.Add(imageLabel); } }
private static void RunTestData(Surveillance surveillance, string testSet) { var testImages = new FileSystemDAL(testSet).GetImages().ToList(); foreach (var image in testImages) { var(distance, label, labelId) = surveillance.Predict(Utils.GetMat(image.Image)); Console.WriteLine($"Img name : {image.Label} Prediction: {label}, Dist : {distance}"); } }
public static IVideoGrab GetMockCamera(string path) { var trainDataDAL = new FileSystemDAL(path); return(new MockVideoGrab(trainDataDAL.GetImages().Take(100).ToList(), TimeSpan.FromMilliseconds(250))); }