public string Recognise(Image <Gray, byte> Input_image, int Eigen_Thresh = -1) { if (_IsTrained) { EigenObjectRecognizer.RecognitionResult ER = recognizer.Recognize(Input_image); if (ER == null) { Eigen_label = "Tanımsız"; Eigen_Distance = 0; return(Eigen_label); } else { Eigen_label = ER.Label; Eigen_Distance = ER.Distance; if (Eigen_Thresh > -1) { Eigen_threshold = Eigen_Thresh; } if (Eigen_Distance > Eigen_threshold) { return(Eigen_label); } else { return("Tanımsız"); } } } else { return(""); } }
private void FrameProcedure(object sender, EventArgs e) { if (camera != null) { //Paima iš kameros frame ir padaro jį juodai baltą currentFrame = camera.QueryFrame().Resize(320, 240, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC); grayFrame = currentFrame.Convert <Gray, Byte>(); //Detektina veidus frame MCvAvgComp[][] facesDetectedNow = grayFrame.DetectHaarCascade(faceHaarCascase, 1.2, 10, Emgu.CV.CvEnum.HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(20, 20)); foreach (MCvAvgComp faceData in facesDetectedNow[0]) { faceImage = currentFrame.Copy(faceData.rect).Convert <Gray, Byte>().Resize(100, 100, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC); currentFrame.Draw(faceData.rect, new Bgr(Color.Green), 3); //Bando detektintus veidus atpažinti if (usersImages.ToArray().Length != 0) { MCvTermCriteria termCriterias = new MCvTermCriteria(usersImages.Count, 0.001); EigenObjectRecognizer recognizer = new EigenObjectRecognizer(usersImages.ToArray(), usersIds.ToArray(), 1500, ref termCriterias); EigenObjectRecognizer.RecognitionResult recognizedId = recognizer.Recognize(faceImage); //Jei atpažino if (recognizedId != null) { //currentFrame.Draw(recognizedId.Label, ref font, new Point(faceData.rect.X - 2, faceData.rect.Y - 2), new Bgr(Color.Red)); //Nereikia piesti prie zmogaus jo id, tą padarys messageboxas //Šaukia event'ą FoundRegisteredFace, su kuriuo vėliau dirbs UCLogin OnFoundRegisteredFace(this, new RecognisedPersonEventArgs(recognizedId.Label)); } } } cameraBox.Image = currentFrame.ToBitmap(); } }
public static RecognizerResult Recognize(string unknownImg) { RecognizerResult rcgnResult = new RecognizerResult(); if (recognizer == null) { return(null); } // Recognize the image Image <Gray, Byte> testImage = new Image <Gray, Byte>(unknownImg); float[] distances = recognizer.GetEigenDistances(testImage); string[] labels = recognizer.Labels; int num = labels.Count(); for (int i = 0; i < num; i++) { rcgnResult.Distances.Add(labels[i], distances[i]); } EigenObjectRecognizer.RecognitionResult result = recognizer.Recognize(testImage); if (result != null) { rcgnResult.Distance = result.Distance; rcgnResult.Label = result.Label; } rcgnResult.FileName = Path.GetFullPath(unknownImg); return(rcgnResult); }
public string Recognise(Image <Gray, byte> Input_image, int Eigen_Thresh = -1) { if (_IsTrained) { EigenObjectRecognizer.RecognitionResult ER = recognizer.Recognize(Input_image); //handle if recognizer.EigenDistanceThreshold is set as a null will be returned //NOTE: This is still not working correctley if (ER == null) { Eigen_label = "Tanımsız"; Eigen_Distance = 0; return(Eigen_label); } else { try { OGRENCI ogr = new OGRENCI(); ogr.OGRENCI_NO = ER.Label; Eigen_label = Veritabani.OGRENCI_GETIR(ogr)[0].AD + Veritabani.OGRENCI_GETIR(ogr)[0].SOYAD; Eigen_Distance = ER.Distance; if (Eigen_Thresh > -1) { Eigen_threshold = Eigen_Thresh; } if (Eigen_Distance > Eigen_threshold) { return(Eigen_label); } else { return("Tanımsız"); } } catch (Exception) { return("Tanımsız"); } } } else { return(""); } }
public string Recognise(Image <Gray, byte> Input_image, int Eigen_Thresh = -1) { try { if (_IsTrained) { Set_Eigen_Threshold = recognizeTreshold; EigenObjectRecognizer.RecognitionResult ER = recognizer.Recognize(Input_image); if (ER == null) { Eigen_label = "UnknownNull"; Eigen_Distance = 0; return(Eigen_label + " " + Eigen_Distance.ToString()); } else { Eigen_label = ER.Label; Eigen_Distance = ER.Distance; if (Eigen_Distance < recognizeTreshold) { return(Eigen_label + " " + Eigen_Distance.ToString()); } // else { return("UnknownFace" + " " + Eigen_Distance.ToString()); } } } else { return(""); } } catch (Exception e) { Console.WriteLine(e); return(""); } }
/// <summary> /// Recognise a Grayscale Image using the trained Eigen Recogniser /// </summary> /// <param name="Input_image"></param> /// <returns></returns> public string Recognise(Image <Gray, byte> Input_image, int Eigen_Thresh = -1) //Bu metot, gönderilen image nesnesini hafızadakilerle kıyaslayarak eşleşen kaydın bilgilerini dönmektedir. { if (_IsTrained) { EigenObjectRecognizer.RecognitionResult ER = recognizer.Recognize(Input_image); //handle if recognizer.EigenDistanceThreshold is set as a null will be returned //NOTE: This is still not working correctley if (ER == null) { Eigen_label = "Tanımsız"; Eigen_Distance = 0; return(Eigen_label); } else { Eigen_label = ER.Label; Eigen_Distance = ER.Distance; if (Eigen_Thresh > -1) { Eigen_threshold = Eigen_Thresh; } if (Eigen_Distance > Eigen_threshold) { return(Eigen_label); } else { return("Tanımsız"); } } } else { return(""); } }
/// <summary> /// Recognise a Grayscale Image using the trained Eigen Recogniser /// </summary> /// <param name="Input_image"></param> /// <returns></returns> public string Recognise(Image <Gray, byte> Input_image, int Eigen_Thresh = -1) { if (_IsTrained) { EigenObjectRecognizer.RecognitionResult ER = recognizer.Recognize(Input_image); //handle if recognizer.EigenDistanceThreshold is set as a null will be returned //NOTE: This is still not working correctley if (ER == null) { Eigen_label = "YABANCI"; Eigen_Distance = 0; return(Eigen_label); } else { Eigen_label = ER.Label; Eigen_Distance = ER.Distance; if (Eigen_Thresh > -1) { Eigen_threshold = Eigen_Thresh; } if (Eigen_Distance > Eigen_threshold) { return(Eigen_label); } else { return("YABANCI"); } } } else { return(""); } }
/// <summary> /// Recognise a Grayscale Image using the trained Eigen Recogniser /// </summary> /// <param name="Input_image"></param> /// <returns></returns> public string Recognise(Image <Gray, byte> Input_image, int Eigen_Thresh, FormYoklama form) { if (_IsTrained) { EigenObjectRecognizer.RecognitionResult ER = recognizer.Recognize(Input_image); //handle if recognizer.EigenDistanceThreshold is set as a null will be returned //NOTE: This is still not working correctley if (ER == null) { Eigen_label = "Tanımsız"; Eigen_Distance = 0; return(Eigen_label); } else { try { bool karar = true; OGRENCI ogr = new OGRENCI(); ogr.OGRENCI_NO = ER.Label; ogr = Veritabani.OGRENCI_GETIR(ogr)[0]; Eigen_label = ogr.AD + " " + ogr.SOYAD; foreach (DataGridViewRow row in form.dgYoklama.Rows) { if (row.Cells[0].Value.ToString().Contains(ogr.OGRENCI_NO)) { karar = false; } } if (karar) { OGRENCI ogr2 = new OGRENCI(); ogr2 = Veritabani.OGRENCI_GETIR(ogr)[0]; form.dgYoklama.Rows.Add(ogr2.OGRENCI_NO, ogr2.AD, ogr2.SOYAD, ogr2.CINSIYET); } Eigen_Distance = ER.Distance; if (Eigen_Thresh > -1) { Eigen_threshold = Eigen_Thresh; } if (Eigen_Distance > Eigen_threshold) { return(Eigen_label); } else { return("Tanımsız"); } } catch (Exception) { return("Tanımsız"); } } } else { return(""); } }