public void CaptureImage() { Debug.Log("Capture started"); ScreenCapture.CaptureScreenshot("Assets/screenshot.jpg"); fd.DetectFaces(); // Application.persistentDataPath + "/screenshot.png" }
private static void FindFaces(FaceDetector faceDetector, string imageFilePath, string outputFile, bool debug = true) { using Image <RgbaVector> image = Image.Load <RgbaVector>(imageFilePath); var predictions = faceDetector.DetectFaces(image, 0.8f, noneMaximaSuppression: false); Console.WriteLine($"found {predictions.Count} faces."); foreach (var prediction in predictions) { FaceDetector.DrawPrediction(image, prediction, Color.Green, 14); if (debug) { FaceDetector.DrawYoloTiles(image, Color.Red); } } image.SaveAsPng(outputFile); }
public int FaceDetection() { using var image = Image.Load<RgbaVector>(imagePath); return faceDetector.DetectFaces(image).Count; }
private void OnRecognizeByPhotoToolStripMenuItem_Click(object sender, EventArgs e) { StopVideoSource(); using (var openFileDlg = new OpenFileDialog()) { openFileDlg.Title = "Выберите картинку"; openFileDlg.InitialDirectory = Path.Combine( Directory.GetCurrentDirectory(), "Photo"); openFileDlg.Filter = "Images|*.jpg;*.png;*.bmp|All files|*.*"; if (openFileDlg.ShowDialog(this) == DialogResult.OK) { /**/ var detector = new FaceDetector(openFileDlg.FileName); detector.DetectFaces(); var trainDataPath = Path.Combine( Directory.GetCurrentDirectory(), "Samples", "LBPFaces.xml"); foreach (var face in detector.FacesRepository) { int result = _recognizer.Recognize(face); string resultStr = string.Empty; if (result != -1) { try { var employeeLogRepository = _container.Resolve <EmployeesLogRepository>(); var filter = _container.Resolve <EmployeesLogRepositoryFilter>(); filter.PersonLabel = result; var employeeRecord = employeeLogRepository.FetchRecords(filter)[0]; resultStr = "Распознан " + employeeRecord; Log.Info(resultStr); } catch (Exception exc) { Log.Error("Ошибка в запросе к БД", exc); } } else { resultStr = "Лицо не распознано"; Log.Info(resultStr); } MessageBox.Show(resultStr, "Recognizer", MessageBoxButtons.OK); } detector .FacesRepository .Clear(); } StartVideoSource(); } }
public HttpResponseMessage Post() { //Logger.Write("Starting upload"); HttpResponseMessage rm = new HttpResponseMessage(HttpStatusCode.OK); rm.PublicCache(true); JsonMediaTypeFormatter jmtf = new JsonMediaTypeFormatter(); jmtf.SerializerSettings.NullValueHandling = NullValueHandling.Ignore; string script; var httpRequest = HttpContext.Current.Request; //Logger.Write($"Got {httpRequest.Files.Count} file(s)"); if (httpRequest.Files.Count > 0) { var postedFile = httpRequest.Files[0]; string type = "Images"; //postedFile.FileName.ToLower().EndsWith("jpg") || postedFile.FileName.ToLower().EndsWith("png") ? "Images" : "Documents"; var filePath = HttpContext.Current.Server.MapPath($"~/UploadedFiles/{type}/{postedFile.FileName}"); try { Bitmap img = new Bitmap(postedFile.InputStream); img.Dispose(); } catch (Exception ex) { type = "Documents"; } postedFile.SaveAs(filePath); //Logger.Write($"Saved file - {filePath}"); var requestType = httpRequest.Form["type"]; //Logger.Write($"Request type is '{requestType}'"); switch (requestType) { case "article": script = $"<script type='text/javascript'>(function(){{" + $"parent.model.NewArticle().FileUploadState({{FilePath:'UploadedFiles/{type}/{postedFile.FileName}',ErrorMessage:'',IsError:false}});}})();" + $"parent.$.page.hideLoading();</script>"; break; case "author": bool isImage = true; string error = ""; try { //Logger.Write("Creating bitmap"); Bitmap img = new Bitmap(filePath); //Logger.Write("Created bitmap"); //Logger.Write("Detecting faces"); var faces = FaceDetector.DetectFaces(new Image <Bgr, byte>(img).Mat); //Logger.Write($"Detected {faces.Count} face(s)"); if (faces.Count < 1) { isImage = false; error = "לא זוהו פנים בתמונה שהועלתה"; img.Dispose(); } else { //Logger.Write("Resizing image"); using (Image newImage = img.ToFixedSize(300, 300)) { img.Dispose(); if (File.Exists(filePath)) { File.Delete(filePath); } newImage.Save(filePath, System.Drawing.Imaging.ImageFormat.Png); //Logger.Write("Resized image"); } } } catch (Exception ex) { while (ex != null) { Logger.Write(ex.Message); ex = ex.InnerException; } error = "הקובץ שהועלה אינו תמונה"; isImage = false; } if (!isImage) { if (File.Exists(filePath)) { File.Delete(filePath); } } else { } script = $"<script type='text/javascript'>(function()" + $"{{\r\n" + // $" debugger\r\n" + $" parent.model.NewAuthorHolder.Author.FileUploadState(" + $" new parent.FileUploadState(\r\n"+ $" {{"+ $" FilePath:'{(isImage?$"UploadedFiles/{type}/{postedFile.FileName}":"Images/no-photo.jpg")}',\r\n"+ $" ErrorMessage:'{error.Replace("'", "\\'")}',\r\n"+ $" IsError:{(!isImage).ToString().ToLower()}"+ $" }}));\r\n"+ $"}})();" + $"parent.$.page.hideLoading();\r\n" + $"</script>"; break; default: script = ""; break; } } else { script = $"<script type='text/javascript'></script>"; //(function(){{parent.model.NewArticle().FilePath('');}})(); } rm.Content = new StringContent(script, Encoding.UTF8, "text/html"); return(rm); }