private void SaveCurrentImageCommandExecute(object obj) { var faceToSave = Sub_grayFrame; Byte[] file; IDataStoreAccess dataStore = new DataStoreAccess(); var username = name.ToLower().Trim(); for (int i = 0; i < 10; i++) { var filePath = string.Format(@"C:\Users\Dom\Documents\Visual Studio 2015\Projects\Emgu\Emgu\Faces\{0}.bmp", username); faceToSave.ToBitmap().Save(filePath); using (var stream = new FileStream(filePath, FileMode.Open, FileAccess.Read)) { using (var reader = new BinaryReader(stream)) { file = reader.ReadBytes((int)stream.Length); } } var result = dataStore.SaveFace(username, file); } MessageBox.Show("Save Result"); }
private void Timer_Tick(object sender, EventArgs e) { Frame = Capture.QueryFrame(); var imageFrame = Frame.ToImage <Gray, byte>(); if (TimerCounter < TimeLimit) { TimerCounter++; if (imageFrame != null) { var faces = FaceDetection.DetectMultiScale(imageFrame, 1.3, 5); if (faces.Length > 0) { var processImage = imageFrame.Copy(faces[0]).Resize(ProcessImageWidth, ProcessImageHeight, Inter.Cubic); Faces.Add(processImage); Labels.Add(Convert.ToInt32(txtUserId.Text)); ScanCounter++; rtbOutPut.AppendText($"{ScanCounter} Success Scan Taken... {Environment.NewLine}"); rtbOutPut.ScrollToCaret(); } } } else { var trainFaces = ConvertImageToMat(Faces); foreach (var face in trainFaces) { DataStoreAccess.SaveFace(Convert.ToInt32(txtUserId.Text), txtUserName.Text, ConvertImageToBytes(face.Bitmap)); } EigenFaceRecognizer.Train(trainFaces.ToArray(), Labels.ToArray()); EigenFaceRecognizer.Write(YMLPath); Timer.Stop(); TimerCounter = 0; btnPredict.Enabled = true; rtbOutPut.AppendText($"Training Completed! {Environment.NewLine}"); MessageBox.Show("Training Completed!"); } }
void SaveFace_Click(object sender, RoutedEventArgs e) { byte[] face = StreamConverter.ImageToByte(_imageFace.ToBitmap()); _dataClient.SaveFace(_username, face); }