private void OnIrisCaptureCompleted(NBiometricTask task) { EnableIrisControls(false); NBiometricStatus status = task.Status; lblStatus.Text = status.ToString(); // Check if extraction was canceled if (status == NBiometricStatus.Canceled) { return; } if (status != NBiometricStatus.Ok) { MessageBox.Show(string.Format("No fue posible extrar el template: {0}.", status), Text, MessageBoxButtons.OK, MessageBoxIcon.Error); lblQuality.Text = string.Empty; _subject = null; _iris = null; EnableIrisControls(false); } else { lblQuality.Text = string.Format("Calidad: {0}", _iris.Objects[0].Quality); } }
public VerificationFromDatabase(NSubject subject) { var biometricClient = new NBiometricClient { UseDeviceManager = true }; //database connection through constructor Connection con = new Connection(biometricClient); NBiometricTask identifyTask = biometricClient.CreateTask(NBiometricOperations.Verify, subject); biometricClient.PerformTask(identifyTask); NBiometricStatus status = identifyTask.Status; if (status != NBiometricStatus.Ok) { MessageBox.Show("Identification was unsuccessful." + status); // Console.ReadLine(); if (identifyTask.Error != null) { throw identifyTask.Error; } //return -1; } foreach (var matchingResult in subject.MatchingResults) { Console.WriteLine("Matched with ID: '{0}' with score {1}", matchingResult.Id, matchingResult.Score); MessageBox.Show("Matched with ID: " + matchingResult.Id + " with score: " + matchingResult.Score); // Console.ReadLine(); } }
public EnrollToDatabase(NBiometricStatus status, NSubject subject) { var biometricClient = new NBiometricClient { UseDeviceManager = true }; //database connection through constructor Connection con = new Connection(biometricClient); //add into database NBiometricTask enrollTask = biometricClient.CreateTask(NBiometricOperations.Enroll, subject); biometricClient.PerformTask(enrollTask); status = enrollTask.Status; if (status != NBiometricStatus.Ok) { MessageBox.Show("Enrollment was unsuccessful. status:" + status); if (enrollTask.Error != null) { throw enrollTask.Error; } // return -1; } MessageBox.Show("Enrollment was successful."); }
private async System.Threading.Tasks.Task OnCapturingFaceCompletedAsync(NBiometricStatus status) { try { // If Stop button was pushed if (status == NBiometricStatus.Canceled) { return; } lblStatus.Text = status.ToString(); if (status != NBiometricStatus.Ok) { // Since capture failed start capturing again _subjectFace.Faces[0].Image = null; status = await _biometricClient.CaptureAsync(_subjectFace); await OnCapturingFaceCompletedAsync(status); } else { EnableFaceControls(false); } } catch (Exception ex) { //Utils.ShowException(ex); lblStatus.Text = string.Empty; //lblQuality.Text = string.Empty; EnableFaceControls(false); } }
private void OnEnrollCompleted(NBiometricTask task) { EnableHuellaControls(false); NBiometricStatus status = task.Status; // Check if extraction was canceled if (status == NBiometricStatus.Canceled) { return; } if (status == NBiometricStatus.Ok) { lblQuality.Text = String.Format("Calidad: {0}", _subjectFinger.Objects[0].Quality); if (IsSubjectValid(_subject)) { button1.Enabled = true; } else { MessageBox.Show("La imagen de la huella no es valida"); } } else { MessageBox.Show("No fue posible realizar la lectura de la huella, intente de nuevo", Text, MessageBoxButtons.OK, MessageBoxIcon.Error); _subject = null; _subjectFinger = null; EnableHuellaControls(false); } }
public EnrollmentFromImage(string subjectID, string imageFile) { string components = "Biometrics.FingerExtraction"; //call Obtain License to obtain license ControllerUtils.ObtainLicense(components); try { using (var biometricClient = new NBiometricClient { UseDeviceManager = true }) // using (var deviceManager = biometricClient.DeviceManager) using (var subject = new NSubject()) using (var finger = new NFinger()) { finger.FileName = imageFile; subject.Fingers.Add(finger); subject.Id = subjectID; //ID number in the database //Set finger template size (recommended, for enroll to database, is large) biometricClient.FingersTemplateSize = NTemplateSize.Large; NBiometricStatus status = NBiometricStatus.InternalError; //creates template using the image status = biometricClient.CreateTemplate(subject); if (status == NBiometricStatus.Ok) { ControllerUtils.SaveTemplate(subject); //enroll into database using EnrollToDatabase Constructor EnrollToDatabase enrollToDatabase = new EnrollToDatabase(status, subject); } else { Console.WriteLine("Extraction failed! Status: {0}", status); } } }catch (Exception ex) { MessageBox.Show(ex.ToString()); } // return 0; }
public IdentificationFromScanner(string subjectID, NSubject subject) { const string components = "Biometrics.FingerExtraction,Biometrics.FingerMatching"; //Obtain license ControllerUtils.ObtainLicense(components); using (var biometricClient = new NBiometricClient { UseDeviceManager = true }) using (var deviceManager = biometricClient.DeviceManager) // using (var subject = new NSubject()) using (var finger = new NFinger()) { ////set type of the device used //deviceManager.DeviceTypes = NDeviceType.FingerScanner; ////initialize the NDeviceManager //deviceManager.Initialize(); //int i; ////get count of connected devices //int count = deviceManager.Devices.Count; //if (count > 0) // MessageBox.Show("found " + count + "finger scanners"); //else //{ // MessageBox.Show("no finger scanners found, exiting ...\n"); // // return -1; //} ////list detected scanners //if (count > 1) // MessageBox.Show("Please select finger scanner from the list: "); //for (i = 0; i < count; i++) //{ // NDevice device = deviceManager.Devices[i]; // MessageBox.Show(i + 1 + " " + device.DisplayName); //} ////finger scanner selection by user //if (count > 1) //{ // MessageBox.Show("Please enter finger scanner index: "); // string line = Console.ReadLine(); // if (line == null) throw new ApplicationException("Nothing read from standard input"); // i = int.Parse(line); // if (i > count || i < 1) // { // MessageBox.Show("Incorrect index provided, exiting ..."); // //return -1; // } //} //i--; ////set the selected finger scanner as NBiometricClient Finger Scanner //biometricClient.FingerScanner = (NFScanner)deviceManager.Devices[i]; ////add NFinger to NSubject //subject.Fingers.Add(finger); //MessageBox.Show("Place your finger on the scanner"); ////start capturing //NBiometricStatus status = biometricClient.Capture(subject); //if (status != NBiometricStatus.Ok) //{ // MessageBox.Show("Failed to capture: " + status); // // return -1; //} //MessageBox.Show("Captured "); //Set finger template size (recommended, for enroll to database, is large) (optional) biometricClient.FingersTemplateSize = NTemplateSize.Large; subject.Id = subjectID; //Create template from added finger image NBiometricStatus status = biometricClient.CreateTemplate(subject); //identification from IdentificationFromDatabase from model class IdentificationFromDatabase idm = new IdentificationFromDatabase(subject); } }
private void CreateErrorLogWithStatus(LogModel errorLog, NBiometricStatus status) { errorLog.Description = $"{errorLog.Description} (status = {status})"; this.ResultLogs.Add(errorLog); }
static int Main(string[] args) { Util.PrintTutorialHeader(args); if (args.Length < 2) { return(Usage()); } //========================================================================= // CHOOSE LICENCES !!! //========================================================================= // ONE of the below listed "licenses" lines is required for unlocking this sample's functionality. Choose licenses that you currently have on your device. // If you are using a TRIAL version - choose any of them. const string licenses = "FingerMatcher, FingerExtractor"; //const string licenses = "FingerFastMatcher,FaceFastMatcher,IrisFastMatcher,PalmFastMatcher,VoiceFastMatcher"; //========================================================================= //========================================================================= // TRIAL MODE //========================================================================= // Below code line determines whether TRIAL is enabled or not. To use purchased licenses, don't use below code line. // GetTrialModeFlag() method takes value from "Bin/Licenses/TrialFlag.txt" file. So to easily change mode for all our examples, modify that file. // Also you can just set TRUE to "TrialMode" property in code. NLicenseManager.TrialMode = Util.GetTrialModeFlag(); Console.WriteLine("Trial mode: " + NLicenseManager.TrialMode); //========================================================================= var anyMatchingComponent = false; try { // Obtain licenses foreach (string license in licenses.Split(',')) { if (NLicense.Obtain("/local", 5000, license)) { Console.WriteLine("Obtained license: {0}", license); anyMatchingComponent = true; } } if (!anyMatchingComponent) { throw new NotActivatedException("Could not obtain any matching license"); } using (var biometricClient = new NBiometricClient()) // Read probe template using (NSubject probeSubject = CreateSubject(args[0], "ProbeSubject")) { // Read gallery templates and enroll them NBiometricTask enrollTask = biometricClient.CreateTask(NBiometricOperations.Enroll, null); for (int i = 1; i < args.Length; ++i) { enrollTask.Subjects.Add(CreateSubject(args[i], string.Format("GallerySubject_{0}", i))); } biometricClient.PerformTask(enrollTask); NBiometricStatus status = enrollTask.Status; if (status != NBiometricStatus.Ok) { Console.WriteLine("Enrollment was unsuccessful. Status: {0}.", status); if (enrollTask.Error != null) { throw enrollTask.Error; } return(-1); } // Set matching threshold biometricClient.MatchingThreshold = 48; // Set parameter to return matching details biometricClient.MatchingWithDetails = true; // Identify probe subject status = biometricClient.Identify(probeSubject); if (status == NBiometricStatus.Ok) { foreach (var matchingResult in probeSubject.MatchingResults) { Console.WriteLine("Matched with ID: '{0}' with score {1}", matchingResult.Id, matchingResult.Score); if (matchingResult.MatchingDetails != null) { Console.WriteLine(MatchingDetailsToString(matchingResult.MatchingDetails)); } } } else if (status == NBiometricStatus.MatchNotFound) { Console.WriteLine("Match not found!"); } else { Console.WriteLine("Identification failed. Status: {0}", status); return(-1); } } return(0); } catch (Exception ex) { return(Util.PrintException(ex)); } }