Fingerprint enrollment questions

General information about Neurotechnology and its software

Re: extract minutiae features

Postby MartynasV » Aug 10, 2015 14:16

nora wrote:hello,
I tried the tutorial "Show TemplateContentCS" to extract the information about minutiae ( x, y and theta format) but i couldn"t.
Any idea about how to get the minutiae information from finger template? (I am using SDK 5-1 trial version.)

Best regards,

Hello,

Please explain what do you mean by "i couldn't".

Following lines prints minutia's x, y coordinates and angle in ShowTemplateContentCS tutorial:
Code: Select all
Console.WriteLine("\t\tx: {0}", minutia.X);
Console.WriteLine("\t\ty: {0}", minutia.Y);
Console.WriteLine("\t\tangle: {0}", RotationToDegrees(minutia.RawAngle));


You can look into NTemplateSample, but tutorial is more basic.
"SDK\Samples\Biometrics\CS\NTemplateSampleCS"
Martynas V
Neurotechnology
MartynasV
Neurotechnology
 
Posts: 247
Joined: Feb 27, 2015 11:24
Location: Vilnius, Lithuania

NFRecord and NFinger

Postby fly » Oct 24, 2015 12:14

I am using VeriFinger version 6, basically I used to extract NFRecords and then save them in the db as byte arrays. Things are fine and no complaints.

Now, I am planning to use SDK 8.0 which is quite different. With this NSubject and NFinger. Before I used to have a class called person which has a property "NFRecord[]" that has all fingers which I can get from the db and convert to NFRecord.

How do I construct a NSubject object with it is NFinger objest from the db now? all I have saved in the db is NFRecords in byte arrays? should I change the db structure to save NSubject directly or can I still use the same structure and somehow construct the NFingers from the current NFRecord?

Admin: merged to "Fingerprint enrollment questions"
fly
 
Posts: 4
Joined: Oct 22, 2015 14:16

Re: NFRecord and NFinger

Postby Martynas » Oct 27, 2015 07:10

fly wrote:I am using VeriFinger version 6, basically I used to extract NFRecords and then save them in the db as byte arrays. Things are fine and no complaints.

Now, I am planning to use SDK 8.0 which is quite different. With this NSubject and NFinger. Before I used to have a class called person which has a property "NFRecord[]" that has all fingers which I can get from the db and convert to NFRecord.

How do I construct a NSubject object with it is NFinger objest from the db now? all I have saved in the db is NFRecords in byte arrays? should I change the db structure to save NSubject directly or can I still use the same structure and somehow construct the NFingers from the current NFRecord?

Hello,

NFRecords are not NFingers. To construct the NSubject from the NFRecord use the NSubject.SetTemplate method to use your NFRecord.
Best regards,

Martynas
Software Consultant
Neurotechnology
Martynas
Neurotechnology
 
Posts: 2192
Joined: Sep 19, 2008 10:02
Location: Vilnius, Lithuania

Re: Fingerprint enrollment questions

Postby Hubble » Nov 15, 2015 12:23

Hello

I"m trying to enroll two finger prints simultaneously.

From the other topics in this Forum I"ve seen that it is possible to build a combined NSubject
by putting one finger after the other on the scanner.

Based on the EnrollFromScanner sample I can reproduce this szenario with my system.

But is it possible to process two prints by putting two fingers at the same time on the scanner?

Thank you for your help.
Hubble
 
Posts: 5
Joined: Aug 18, 2015 06:35

Enrolling two finger prints on once

Postby Hubble » Nov 15, 2015 12:26

Hello

I"m trying to enroll two finger prints simultaneously.

From the other topics in this Forum I"ve seen that it is possible to build a combined NSubject
by putting one finger after the other on the scanner.

Based on the EnrollFromScanner sample I can reproduce this szenario with my system.

But is it possible to process two prints by putting two fingers at the same time on the scanner?

Thank you for your help.
Hubble
 
Posts: 5
Joined: Aug 18, 2015 06:35

Re: Enrolling two finger prints on once

Postby vaidasz » Nov 16, 2015 15:55

Hubble wrote:Hello

I"m trying to enroll two finger prints simultaneously.

From the other topics in this Forum I"ve seen that it is possible to build a combined NSubject
by putting one finger after the other on the scanner.

Based on the EnrollFromScanner sample I can reproduce this szenario with my system.

But is it possible to process two prints by putting two fingers at the same time on the scanner?

Thank you for your help.


Hello,

Yes, it is possible. Basically, you need to merge EnrollFromScanner and SegmentFingers tutorials. Please check them.
Vaidas Z
Neurotechnology
vaidasz
Neurotechnology
 
Posts: 558
Joined: Apr 30, 2010 06:57
Location: Vilnius, Lithuania

NFIQ check For RAW image

Postby pratikxeb » Dec 19, 2015 09:23

Hello,
I gone through tutorial code for "EvaluateFingerQuality" from that I am able to get nfiq value for fingerprint images. I want this from raw data.
I want to tell you that I have done this for iris by using NImageCreateFromDataEx() this api and then set that image as iris handle using NIrisSetImage(). I could not find this for fingerprint images.
So my question is How can i get nfiq value for fingerprint raw data..???

Thanks

Admin: merged to "Fingerprint enrollment questions"
pratikxeb
 
Posts: 13
Joined: Dec 19, 2015 08:47

Re: NFIQ check For RAW image

Postby MartynasV » Dec 28, 2015 14:13

pratikxeb wrote:Hello,
I gone through tutorial code for "EvaluateFingerQuality" from that I am able to get nfiq value for fingerprint images. I want this from raw data.
I want to tell you that I have done this for iris by using NImageCreateFromDataEx() this api and then set that image as iris handle using NIrisSetImage(). I could not find this for fingerprint images.
So my question is How can i get nfiq value for fingerprint raw data..???

Thanks

Hello,

Get NImage using NImageCreateFromDataEx() function,then use NFrictionRidgeSetImage(hFinger, hImage) function to set that image to HNFinger.
Martynas V
Neurotechnology
MartynasV
Neurotechnology
 
Posts: 247
Joined: Feb 27, 2015 11:24
Location: Vilnius, Lithuania

Re: NFIQ check For RAW image

Postby pratikxeb » Dec 30, 2015 07:34

MartynasV wrote:Hello,

Get NImage using NImageCreateFromDataEx() function,then use NFrictionRidgeSetImage(hFinger, hImage) function to set that image to HNFinger.

Hello,
Thank you for reply.
Actually I used NFrictionRidgeSetImage(hFinger, hImage) as you said, now I am getting error as biometric status: InvalidSampleResolution.
One more observation that I found is, when I am converting same raw image in WSQ format then "EvaluateFingerQuality" tutorial code is working fine for WSQ image. So, can you please tell me why such error is coming for raw image?

Thanks
pratikxeb
 
Posts: 13
Joined: Dec 19, 2015 08:47

Re: NFIQ check For RAW image

Postby MartynasV » Dec 30, 2015 10:06

pratikxeb wrote:Hello,
Thank you for reply.
Actually I used NFrictionRidgeSetImage(hFinger, hImage) as you said, now I am getting error as biometric status: InvalidSampleResolution.
One more observation that I found is, when I am converting same raw image in WSQ format then "EvaluateFingerQuality" tutorial code is working fine for WSQ image. So, can you please tell me why such error is coming for raw image?

Thanks

Hello,

This error means that the image was not set with its resolution. It is very important for fingerprint extraction, that the image would have a correct resolution set. If the image is from scanner, then usually it will be the 500 dpi as vertical and horizontal resolution of the image. Please ensure that your image has resolution set. Minimum resolution is 250, if you don't know real image resolution, then set it to 500.

NImageSetHorzResolution(image, res)
NImageSetVertResolution(image, res)
Martynas V
Neurotechnology
MartynasV
Neurotechnology
 
Posts: 247
Joined: Feb 27, 2015 11:24
Location: Vilnius, Lithuania

Re: NFIQ check For RAW image

Postby pratikxeb » Jan 05, 2016 11:53

MartynasV wrote:Hello,

This error means that the image was not set with its resolution. It is very important for fingerprint extraction, that the image would have a correct resolution set. If the image is from scanner, then usually it will be the 500 dpi as vertical and horizontal resolution of the image. Please ensure that your image has resolution set. Minimum resolution is 250, if you don't know real image resolution, then set it to 500.

NImageSetHorzResolution(image, res)
NImageSetVertResolution(image, res)

Thank You.. it Worked Perfect.. :) :)
pratikxeb
 
Posts: 13
Joined: Dec 19, 2015 08:47

Enroll multiple fingers

Postby Jiward » Feb 02, 2016 16:23

Hello

With EnrollWithDuplicateCheck operation, I want that person can afford to enroll for different fingers. Currently only it allows me to enroll a record. Enrolación operation is performed at different times

Thank you!
Cheers

Admin: merged to "Fingerprint enrollment questions"
Jiward
 
Posts: 10
Joined: May 20, 2015 20:08

Re: Enroll multiple fingers

Postby Martynas » Feb 04, 2016 10:01

Jiward wrote:Hello

With EnrollWithDuplicateCheck operation, I want that person can afford to enroll for different fingers. Currently only it allows me to enroll a record. Enrolación operation is performed at different times

Thank you!
Cheers

Hello,

please explain in details what you need to achieve.
Best regards,

Martynas
Software Consultant
Neurotechnology
Martynas
Neurotechnology
 
Posts: 2192
Joined: Sep 19, 2008 10:02
Location: Vilnius, Lithuania

Re: Enroll multiple fingers

Postby Jiward » Feb 04, 2016 15:25

Martynas wrote:Hello,

please explain in details what you need to achieve.

Hi, I solved the problem, concatenating in the subjectid the ID the Contact + Hand + Finger
Jiward
 
Posts: 10
Joined: May 20, 2015 20:08

Re: Enroll multiple fingers

Postby Martynas » Feb 05, 2016 07:52

Jiward wrote:Hi, I solved the problem, concatenating in the subjectid the ID the Contact + Hand + Finger

Hi,

actually the SDK has a possibility to use a multiple fingerprints in one template. This will allow you to avoid using multiple records of the same user in the database and use one record per user. Take a look at tutorial CreateMultiFingerTemplate, which shows how to create multi-finger template.
Best regards,

Martynas
Software Consultant
Neurotechnology
Martynas
Neurotechnology
 
Posts: 2192
Joined: Sep 19, 2008 10:02
Location: Vilnius, Lithuania

Re: Fingerprint enrollment questions

Postby umarshaibu » Feb 21, 2016 22:01

Hello,

Please i have problem enrolling captured finger print to SQL Database. Here is my code so far
Code: Select all
try
            {
                if (con.State == ConnectionState.Open)
                {
                    con.Close();
                }
                con.Open();

                const string sSQL = "INSERT INTO tblRecords(indId,SubjectId,Templage) VALUES (@d1,@d2,@d3)";
                SqlCommand cmd = new SqlCommand(sSQL, con);

                // Individual ID
                cmd.Parameters.Add(new SqlParameter("@d1", SqlDbType.VarChar, 128) { Value = txtId.Text });

                // Individual ID
                cmd.Parameters.Add(new SqlParameter("@d2", SqlDbType.VarChar, 128) { Value = _subjectFinger });

                //MemoryStream MemStream = new MemoryStream();
                //Byte[] DataPic_Update = null;

                //_subjectFinger.SaveImage(MemStream, Image);
                //DataPic_Update = MemStream.GetBuffer();
                //MemStream.Read(DataPic_Update, 0, DataPic_Update.Length);

                // Individual Image
                cmd.Parameters.Add(new SqlParameter("@d3", SqlDbType.Image) { Value = _subject });

                int temp = cmd.ExecuteNonQuery();

                if (temp > 0)
                {
                    con.Close();
                    //Interaction.MsgBox("Individual Record Added Successfully... ", MsgBoxStyle.Information, "Record Saved");
                }
                else
                {
                    //Interaction.MsgBox("Record not added Successful... ", MsgBoxStyle.Critical, "Registration failed");
                    return;
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString(), "Data Error");
                return;
            }


what i am trying to achieve is to match each registered user to there finger print using the user id. Help please
umarshaibu
 
Posts: 2
Joined: Feb 21, 2016 21:55

Re: Fingerprint enrollment questions

Postby Martynas » Feb 22, 2016 08:58

umarshaibu wrote:Hello,

Please i have problem enrolling captured finger print to SQL Database. Here is my code so far
Code: Select all
try
            {
                if (con.State == ConnectionState.Open)
                {
                    con.Close();
                }
                con.Open();

                const string sSQL = "INSERT INTO tblRecords(indId,SubjectId,Templage) VALUES (@d1,@d2,@d3)";
                SqlCommand cmd = new SqlCommand(sSQL, con);

                // Individual ID
                cmd.Parameters.Add(new SqlParameter("@d1", SqlDbType.VarChar, 128) { Value = txtId.Text });

                // Individual ID
                cmd.Parameters.Add(new SqlParameter("@d2", SqlDbType.VarChar, 128) { Value = _subjectFinger });

                //MemoryStream MemStream = new MemoryStream();
                //Byte[] DataPic_Update = null;

                //_subjectFinger.SaveImage(MemStream, Image);
                //DataPic_Update = MemStream.GetBuffer();
                //MemStream.Read(DataPic_Update, 0, DataPic_Update.Length);

                // Individual Image
                cmd.Parameters.Add(new SqlParameter("@d3", SqlDbType.Image) { Value = _subject });

                int temp = cmd.ExecuteNonQuery();

                if (temp > 0)
                {
                    con.Close();
                    //Interaction.MsgBox("Individual Record Added Successfully... ", MsgBoxStyle.Information, "Record Saved");
                }
                else
                {
                    //Interaction.MsgBox("Record not added Successful... ", MsgBoxStyle.Critical, "Registration failed");
                    return;
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString(), "Data Error");
                return;
            }


what i am trying to achieve is to match each registered user to there finger print using the user id. Help please

Hello,

please provide the detailed description of the issue, as your post doe snot indicate any problems. Also the code snippet, you have posted, does not have any code related to our SDK.
Best regards,

Martynas
Software Consultant
Neurotechnology
Martynas
Neurotechnology
 
Posts: 2192
Joined: Sep 19, 2008 10:02
Location: Vilnius, Lithuania

Re: Fingerprint enrollment questions

Postby umarshaibu » Feb 22, 2016 09:39

Martynas wrote:Hello,

please provide the detailed description of the issue, as your post doe snot indicate any problems. Also the code snippet, you have posted, does not have any code related to our SDK.


Hello,

The issue is i want to preview the captured finger print image to System.picturebox not neurotech finger view gui. Thanks
umarshaibu
 
Posts: 2
Joined: Feb 21, 2016 21:55

Re: Fingerprint enrollment questions

Postby Martynas » Feb 23, 2016 08:09

Hi,

umarshaibu wrote:The issue is i want to preview the captured finger print image to System.picturebox not neurotech finger view gui. Thanks


Convert the captured NImage to Bitmap and assign it to PictureBox.Image.

Code: Select all

NImage image = capturedImage;
Bitmap bitmapImage = image.ToBitmap();
PictureBox.Image = bitmapImage;

Best regards,

Martynas
Software Consultant
Neurotechnology
Martynas
Neurotechnology
 
Posts: 2192
Joined: Sep 19, 2008 10:02
Location: Vilnius, Lithuania

Finger Enrollment From Scanner

Postby vishal2060 » Mar 25, 2016 13:33

I"m new to neurotechnology. I want to enroll fingerprint template from scanner. I picked up code from the sample and run it
Code: Select all
import java.io.IOException;
import java.util.EnumSet;
import java.util.Scanner;

import com.neurotec.biometrics.NBiometricStatus;
import com.neurotec.biometrics.NFinger;
import com.neurotec.biometrics.NSubject;
import com.neurotec.biometrics.NTemplateSize;
import com.neurotec.biometrics.client.NBiometricClient;
import com.neurotec.devices.NDeviceManager;
import com.neurotec.devices.NDeviceType;
import com.neurotec.devices.NFScanner;
import com.neurotec.devices.NDeviceManager.DeviceCollection;
import com.neurotec.io.NFile;
import com.neurotec.lang.NCore;
import com.neurotec.licensing.NLicense;
import com.neurotec.samples.util.LibraryManager;
//import com.neurotec.samples.util.Utils;

public final class EnrollFingerFromScanner {
   private static final String DESCRIPTION = "Demonstrates fingerprint feature extraction from fingerprint scanning device.";
   private static final String NAME = "enroll-finger-from-scanner";
   private static final String VERSION = "6.0.0.0";

   private static void usage() {
      System.out.println("usage:");
      System.out.format("   %s [image] [template]%n", NAME);
      System.out.println("   [image]    - image filename to store scanned image.");
      System.out.println("   [template] - filename to store finger template.");
   }

   public static void main(String[] args) throws IOException {
      final String components = "Biometrics.FingerExtraction,Devices.FingerScanners";

      LibraryManager.initLibraryPath();

      //Utils.printTutorialHeader(DESCRIPTION, NAME, VERSION, args);

      if (args.length < 2) {
         usage();
         System.exit(1);
      }

      NBiometricClient biometricClient = null;
      NSubject subject = null;
      NFinger finger = null;
      
      //try {
               
         //if (!NLicense.obtainComponents("/local", 5000, components)) {
         //   System.err.format("Could not obtain licenses for components: %s%n", components);
         //   System.exit(-1);
         //}
               
         biometricClient = new NBiometricClient();
         subject = new NSubject();
         finger = new NFinger();

         biometricClient.setUseDeviceManager(true);
         NDeviceManager deviceManager = biometricClient.getDeviceManager();

         deviceManager.setDeviceTypes(EnumSet.of(NDeviceType.FINGER_SCANNER));

         deviceManager.initialize();

         DeviceCollection devices = deviceManager.getDevices();

         if (devices.size() > 0) {
            System.out.format("Found %d fingerprint scanner
", devices.size());
         } else {
            System.out.format("No scanners found
");
            return;
         }

         if (devices.size() > 1)
            System.out.println("Please select finger scanner from the list:");

         for (int i = 0; i < devices.size(); i++)
            System.out.format("   %d. %s
", i + 1, devices.get(i).getDisplayName());

         int selection = 0;
         if (devices.size() > 1) {
                    try (Scanner scanner = new Scanner(System.in)) {
                        selection = scanner.nextInt() - 1;
                    }
         }

         biometricClient.setFingerScanner((NFScanner) devices.get(selection));

         subject.getFingers().add(finger);

         System.out.println("Capturing....");
         NBiometricStatus status = biometricClient.capture(subject);

         biometricClient.setFingersTemplateSize(NTemplateSize.LARGE);

         status = biometricClient.createTemplate(subject);

         if (status == NBiometricStatus.OK) {
            System.out.println("Template extracted");
         } else {
            System.out.format("Extraction failed: %s
", status);
            System.exit(-1);
         }

         subject.getFingers().get(0).getImage().save(args[0]);
         System.out.println("Fingerprint image saved successfully...");

         NFile.writeAllBytes(args[1], subject.getTemplate().save());
         System.out.println("Template file saved successfully...");
      /*} catch (Throwable th) {
         //Utils.handleError(th);
      } finally {
         try {
         //   NLicense.releaseComponents(components);
         //   NCore.shutdown();
         } catch (Throwable th){
                           
                        }
         if (finger != null) finger.dispose();
         if (subject != null) subject.dispose();
         if (biometricClient != null) biometricClient.dispose();
      }*/
   }
}




the error is

Code: Select all
run:
Exception in thread "main" java.lang.ExceptionInInitializerError
   at com.neurotec.lang.NCore.<clinit>(NCore.java:131)
   at com.neurotec.lang.NObject.<clinit>(NObject.java:193)
   at EnrollFingerFromScanner.main(EnrollFingerFromScanner.java:55)
Caused by: java.lang.UnsatisfiedLinkError: Unable to load library "NCore": JNA native support (win32-amd64/NCore.dll) not found in resource path (C:Program Files (x86)NeurotechnologyNeurotec Biometric 6.0 SDK TrialBinJavajna.jar;C:Program Files (x86)NeurotechnologyNeurotec Biometric 6.0 SDK TrialBinJava
eurotec-biometrics-client.jar;C:Program Files (x86)NeurotechnologyNeurotec Biometric 6.0 SDK TrialBinJava
eurotec-biometrics-gui.jar;C:Program Files (x86)NeurotechnologyNeurotec Biometric 6.0 SDK TrialBinJava
eurotec-biometrics.jar;C:Program Files (x86)NeurotechnologyNeurotec Biometric 6.0 SDK TrialBinJava
eurotec-core.jar;C:Program Files (x86)NeurotechnologyNeurotec Biometric 6.0 SDK TrialBinJava
eurotec-devices.jar;C:Program Files (x86)NeurotechnologyNeurotec Biometric 6.0 SDK TrialBinJava
eurotec-gui.jar;C:Program Files (x86)NeurotechnologyNeurotec Biometric 6.0 SDK TrialBinJava
eurotec-licensing.jar;C:Program Files (x86)NeurotechnologyNeurotec Biometric 6.0 SDK TrialBinJava
eurotec-media-processing.jar;C:Program Files (x86)NeurotechnologyNeurotec Biometric 6.0 SDK TrialBinJava
eurotec-media.jar;C:Program Files (x86)NeurotechnologyNeurotec Biometric 6.0 SDK TrialBinJavasamples-utils.jar;C:UsersVishalVishwasDocumentsNetBeansProjectsEnrollScanneruildclasses)
   at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:220)
   at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:322)
   at com.neurotec.lang.NCore.<clinit>(NCore.java:123)
   ... 2 more
Java Result: 1
BUILD SUCCESSFUL (total time: 2 seconds)


plz help me to correct it.

Admin: merged to "Fingerprint enrollment questions"
vishal2060
 
Posts: 2
Joined: Mar 25, 2016 13:25
Location: India

Re: Finger Enrollment From Scanner

Postby vaidasz » Mar 29, 2016 11:09

vishal2060 wrote:I"m new to neurotechnology. I want to enroll fingerprint template from scanner. I picked up code from the sample and run it
Code: Select all
import java.io.IOException;
import java.util.EnumSet;
import java.util.Scanner;

import com.neurotec.biometrics.NBiometricStatus;
import com.neurotec.biometrics.NFinger;
import com.neurotec.biometrics.NSubject;
import com.neurotec.biometrics.NTemplateSize;
import com.neurotec.biometrics.client.NBiometricClient;
import com.neurotec.devices.NDeviceManager;
import com.neurotec.devices.NDeviceType;
import com.neurotec.devices.NFScanner;
import com.neurotec.devices.NDeviceManager.DeviceCollection;
import com.neurotec.io.NFile;
import com.neurotec.lang.NCore;
import com.neurotec.licensing.NLicense;
import com.neurotec.samples.util.LibraryManager;
//import com.neurotec.samples.util.Utils;

public final class EnrollFingerFromScanner {
   private static final String DESCRIPTION = "Demonstrates fingerprint feature extraction from fingerprint scanning device.";
   private static final String NAME = "enroll-finger-from-scanner";
   private static final String VERSION = "6.0.0.0";

   private static void usage() {
      System.out.println("usage:");
      System.out.format("   %s [image] [template]%n", NAME);
      System.out.println("   [image]    - image filename to store scanned image.");
      System.out.println("   [template] - filename to store finger template.");
   }

   public static void main(String[] args) throws IOException {
      final String components = "Biometrics.FingerExtraction,Devices.FingerScanners";

      LibraryManager.initLibraryPath();

      //Utils.printTutorialHeader(DESCRIPTION, NAME, VERSION, args);

      if (args.length < 2) {
         usage();
         System.exit(1);
      }

      NBiometricClient biometricClient = null;
      NSubject subject = null;
      NFinger finger = null;
      
      //try {
               
         //if (!NLicense.obtainComponents("/local", 5000, components)) {
         //   System.err.format("Could not obtain licenses for components: %s%n", components);
         //   System.exit(-1);
         //}
               
         biometricClient = new NBiometricClient();
         subject = new NSubject();
         finger = new NFinger();

         biometricClient.setUseDeviceManager(true);
         NDeviceManager deviceManager = biometricClient.getDeviceManager();

         deviceManager.setDeviceTypes(EnumSet.of(NDeviceType.FINGER_SCANNER));

         deviceManager.initialize();

         DeviceCollection devices = deviceManager.getDevices();

         if (devices.size() > 0) {
            System.out.format("Found %d fingerprint scanner
", devices.size());
         } else {
            System.out.format("No scanners found
");
            return;
         }

         if (devices.size() > 1)
            System.out.println("Please select finger scanner from the list:");

         for (int i = 0; i < devices.size(); i++)
            System.out.format("   %d. %s
", i + 1, devices.get(i).getDisplayName());

         int selection = 0;
         if (devices.size() > 1) {
                    try (Scanner scanner = new Scanner(System.in)) {
                        selection = scanner.nextInt() - 1;
                    }
         }

         biometricClient.setFingerScanner((NFScanner) devices.get(selection));

         subject.getFingers().add(finger);

         System.out.println("Capturing....");
         NBiometricStatus status = biometricClient.capture(subject);

         biometricClient.setFingersTemplateSize(NTemplateSize.LARGE);

         status = biometricClient.createTemplate(subject);

         if (status == NBiometricStatus.OK) {
            System.out.println("Template extracted");
         } else {
            System.out.format("Extraction failed: %s
", status);
            System.exit(-1);
         }

         subject.getFingers().get(0).getImage().save(args[0]);
         System.out.println("Fingerprint image saved successfully...");

         NFile.writeAllBytes(args[1], subject.getTemplate().save());
         System.out.println("Template file saved successfully...");
      /*} catch (Throwable th) {
         //Utils.handleError(th);
      } finally {
         try {
         //   NLicense.releaseComponents(components);
         //   NCore.shutdown();
         } catch (Throwable th){
                           
                        }
         if (finger != null) finger.dispose();
         if (subject != null) subject.dispose();
         if (biometricClient != null) biometricClient.dispose();
      }*/
   }
}




the error is

Code: Select all
run:
Exception in thread "main" java.lang.ExceptionInInitializerError
   at com.neurotec.lang.NCore.<clinit>(NCore.java:131)
   at com.neurotec.lang.NObject.<clinit>(NObject.java:193)
   at EnrollFingerFromScanner.main(EnrollFingerFromScanner.java:55)
Caused by: java.lang.UnsatisfiedLinkError: Unable to load library "NCore": JNA native support (win32-amd64/NCore.dll) not found in resource path (C:Program Files (x86)NeurotechnologyNeurotec Biometric 6.0 SDK TrialBinJavajna.jar;C:Program Files (x86)NeurotechnologyNeurotec Biometric 6.0 SDK TrialBinJava
eurotec-biometrics-client.jar;C:Program Files (x86)NeurotechnologyNeurotec Biometric 6.0 SDK TrialBinJava
eurotec-biometrics-gui.jar;C:Program Files (x86)NeurotechnologyNeurotec Biometric 6.0 SDK TrialBinJava
eurotec-biometrics.jar;C:Program Files (x86)NeurotechnologyNeurotec Biometric 6.0 SDK TrialBinJava
eurotec-core.jar;C:Program Files (x86)NeurotechnologyNeurotec Biometric 6.0 SDK TrialBinJava
eurotec-devices.jar;C:Program Files (x86)NeurotechnologyNeurotec Biometric 6.0 SDK TrialBinJava
eurotec-gui.jar;C:Program Files (x86)NeurotechnologyNeurotec Biometric 6.0 SDK TrialBinJava
eurotec-licensing.jar;C:Program Files (x86)NeurotechnologyNeurotec Biometric 6.0 SDK TrialBinJava
eurotec-media-processing.jar;C:Program Files (x86)NeurotechnologyNeurotec Biometric 6.0 SDK TrialBinJava
eurotec-media.jar;C:Program Files (x86)NeurotechnologyNeurotec Biometric 6.0 SDK TrialBinJavasamples-utils.jar;C:UsersVishalVishwasDocumentsNetBeansProjectsEnrollScanneruildclasses)
   at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:220)
   at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:322)
   at com.neurotec.lang.NCore.<clinit>(NCore.java:123)
   ... 2 more
Java Result: 1
BUILD SUCCESSFUL (total time: 2 seconds)


plz help me to correct it.


Hello,

The exception message means that the native libraries could not be found. The libraries you need to use are *.dll and they are located at SDK\Bin\Win32_x86 (or SDK\Bin\Win64_x64, depending on what JVM you use).
Vaidas Z
Neurotechnology
vaidasz
Neurotechnology
 
Posts: 558
Joined: Apr 30, 2010 06:57
Location: Vilnius, Lithuania

Re: Fingerprint enrollment questions

Postby rajPrabha59 » Apr 04, 2016 07:33

Hi all,
Can anyone suggest me if there is any way to convert templates/images already enrolled in .wsq/.raw/FIR format to ISO-IEC19794-2 format
rajPrabha59
 
Posts: 1
Joined: Apr 04, 2016 06:44

Re: Fingerprint enrollment questions

Postby Martynas » Apr 05, 2016 06:54

rajPrabha59 wrote:Hi all,
Can anyone suggest me if there is any way to convert templates/images already enrolled in .wsq/.raw/FIR format to ISO-IEC19794-2 format

Hello,

first of all you need to extract the template from image, then convert it to ISO-IEC19794-2 format template.
EnrollFingerFromImage tutorial shows how to extract template from the image. In case of the WSQ image, you will need to obtain the license for the Images.WSQ component.
In case of the raw image, you will need to use NImage.FromData method to load the image.
In case of the FIR record, take a look at tutorial FIRecordToNTemplate.

Use the tutorial NTemplateToFMRecord to convert extracted template to ISO-IEC19794-2 format template.
Best regards,

Martynas
Software Consultant
Neurotechnology
Martynas
Neurotechnology
 
Posts: 2192
Joined: Sep 19, 2008 10:02
Location: Vilnius, Lithuania

Re: Fingerprint enrollment questions

Postby Martinis » Apr 05, 2016 12:23

Hi,

I have a similar problem. I want to convert _subjectFinger to byte array or bitmap in c# or vb. currently saving to directory like this : _subjectFinger.Image.Save(saveFileDialog.FileName);



but want to do something like this:

Byte[] bytes = null;
_subjectFinger.Save(bytes );


or

Bitmap bmp = (Bitmap)subjectFinger.Image;


Thanks
Martinis
 
Posts: 1
Joined: Apr 05, 2016 11:52

Re: Fingerprint enrollment questions

Postby Martynas » Apr 11, 2016 13:18

Martinis wrote:Hi,

I have a similar problem. I want to convert _subjectFinger to byte array or bitmap in c# or vb. currently saving to directory like this : _subjectFinger.Image.Save(saveFileDialog.FileName);



but want to do something like this:

Byte[] bytes = null;
_subjectFinger.Save(bytes );


or

Bitmap bmp = (Bitmap)subjectFinger.Image;


Thanks


NFinger is not serializeable object. So it is not possible to save it as bytes.
But if you need to save the image in NFinger as bytes or Bitmap, then this can be done.

Save as byte array:

Code: Select all
byte[] imageBytes = _subjectFinger.Image.Save().ToArray();


Save as Bitmap:

Code: Select all
Bitmap bmp = _subjectFinger.Image.ToBitmap();
Best regards,

Martynas
Software Consultant
Neurotechnology
Martynas
Neurotechnology
 
Posts: 2192
Joined: Sep 19, 2008 10:02
Location: Vilnius, Lithuania

verifinger minutia extraction

Postby Hayaksu » Apr 15, 2016 16:51

Q1: What are the steps that verifinger follows in order to extract minutia from fingerprint image? (e.g. Binirization, thinning)?

Q2: What minutia feature that verifinger extract ? (e.g. x, y coordinates, orientation, type (bifurcation or termination))

Admin: merged to "Fingerprint enrollment questions"
Hayaksu
 
Posts: 1
Joined: Apr 15, 2016 16:42

Re: verifinger minutia extraction

Postby Martynas » Apr 18, 2016 10:28

Hi,

Hayaksu wrote:Q1: What are the steps that verifinger follows in order to extract minutia from fingerprint image? (e.g. Binirization, thinning)?


We do not provide this information, as it is our intellectual property.

Hayaksu wrote:Q2: What minutia feature that verifinger extract ? (e.g. x, y coordinates, orientation, type (bifurcation or termination))


The algorithm extracts: x and y coordinates, angle, type, ridge counts, ridge density.
Best regards,

Martynas
Software Consultant
Neurotechnology
Martynas
Neurotechnology
 
Posts: 2192
Joined: Sep 19, 2008 10:02
Location: Vilnius, Lithuania

Sending image to server (fingerprint)

Postby tvoisin » May 10, 2016 09:17

Hi everyone,

The way I understood the architecture client/server is that we can have 2 possibilities:
- Only Capture image clientside and then Extract and Match serverside
- Capture and Extract clientside and then Match serverside
Am I right? :)

Well, if yes, I chose the second solution. I"m new in the SDK and I"m currently trying to figure out how to send an image to the server to identify (extract and match) the fingerprint.
Unfortunatly, in Tutorials and Samples I can only find template-sending functions wich does not help me ... :)

By the way what is the difference between a Task and a NBiometricTask?

Thank you for your help!

(Using Java on Trial SDK)

Admin: merged to "Fingerprint enrollment questions"
tvoisin
 
Posts: 9
Joined: May 02, 2016 10:20

Re: Sending image to server (fingerprint)

Postby Martynas » May 11, 2016 10:25

Hello,

tvoisin wrote:- Only Capture image clientside and then Extract and Match serverside


Image extraction can be done on server only if the NServer is used as matching server. In such case take a look at tutorial "create-finger-template-on-server".
In case if you will not be using the NServer and would like to implement same functionality, then you will need to implement the communication between your client application and your server application by yourself.

tvoisin wrote:Capture and Extract clientside and then Match serverside


Tutorial "enroll-finger-from-scanner" shows how to capture and extract the template from fingerprint scanner. Use this extracted template with tutorial "identify-on-server" to send it for matching to NServer or MegaMatcher Accelerator.

tvoisin wrote:By the way what is the difference between a Task and a NBiometricTask?
.

Actually the "task" should be of NBiometricTask type. Have you found a different thing anywhere in samples/tutorials?
Best regards,

Martynas
Software Consultant
Neurotechnology
Martynas
Neurotechnology
 
Posts: 2192
Joined: Sep 19, 2008 10:02
Location: Vilnius, Lithuania

Re: Sending image to server (fingerprint)

Postby tvoisin » May 12, 2016 11:42

Martynas wrote:Hello,

tvoisin wrote:- Only Capture image clientside and then Extract and Match serverside


Image extraction can be done on server only if the NServer is used as matching server. In such case take a look at tutorial "create-finger-template-on-server".
In case if you will not be using the NServer and would like to implement same functionality, then you will need to implement the communication between your client application and your server application by yourself.

tvoisin wrote:Capture and Extract clientside and then Match serverside


Tutorial "enroll-finger-from-scanner" shows how to capture and extract the template from fingerprint scanner. Use this extracted template with tutorial "identify-on-server" to send it for matching to NServer or MegaMatcher Accelerator.

tvoisin wrote:By the way what is the difference between a Task and a NBiometricTask?
.

Actually the "task" should be of NBiometricTask type. Have you found a different thing anywhere in samples/tutorials?

Hello !

Thank you for your answer. I"ll use the first solution by extracting and matching serverside.

I took a look at tutorial "create-finger-template-on-server" (I did not saw it before...) and that"s ok now I know how to create a template serverside (I"ll use NServer).
However, in this tutorial, the template is created and then retrieved by the client (which next is able to ask for an identifying task). And it"s kind of overloading the connection with two round trips.

Is there a way to ask the server to do both template creation and template matching in the same task?

Thank you again.
tvoisin
 
Posts: 9
Joined: May 02, 2016 10:20

Re: Sending image to server (fingerprint)

Postby vaidasz » May 13, 2016 13:17

tvoisin wrote:Hello !

Thank you for your answer. I"ll use the first solution by extracting and matching serverside.

I took a look at tutorial "create-finger-template-on-server" (I did not saw it before...) and that"s ok now I know how to create a template serverside (I"ll use NServer).
However, in this tutorial, the template is created and then retrieved by the client (which next is able to ask for an identifying task). And it"s kind of overloading the connection with two round trips.

Is there a way to ask the server to do both template creation and template matching in the same task?

Thank you again.


Hello,

At the moment it is not possible to do. The template is sent back to the client and the enrollment operation is performed.
Vaidas Z
Neurotechnology
vaidasz
Neurotechnology
 
Posts: 558
Joined: Apr 30, 2010 06:57
Location: Vilnius, Lithuania

Re: Sending image to server (fingerprint)

Postby tvoisin » May 17, 2016 08:20

vaidasz wrote:
tvoisin wrote:Hello !

Thank you for your answer. I"ll use the first solution by extracting and matching serverside.

I took a look at tutorial "create-finger-template-on-server" (I did not saw it before...) and that"s ok now I know how to create a template serverside (I"ll use NServer).
However, in this tutorial, the template is created and then retrieved by the client (which next is able to ask for an identifying task). And it"s kind of overloading the connection with two round trips.

Is there a way to ask the server to do both template creation and template matching in the same task?

Thank you again.


Hello,

At the moment it is not possible to do. The template is sent back to the client and the enrollment operation is performed.

Hi !

Well, if it's not available, ok :D

Thank you for your help,
Regards,
tvoisin
 
Posts: 9
Joined: May 02, 2016 10:20

extract fingrprint from .bmp to minutiae in C#

Postby ibnu » Jun 15, 2016 08:04

Currently I am doing bit extraction from fingerprint minutiae. I using Lumidigm Scanner. Anyone can provide sample code in C# for extracting the minutia and export into text file? thanks in advance!

best Regards,


Wildan

Admin: merged to "Fingerprint enrollment questions"
ibnu
 
Posts: 1
Joined: Jun 15, 2016 07:51

Re: extract fingrprint from .bmp to minutiae in C#

Postby vaidasz » Jun 22, 2016 08:25

ibnu wrote:Currently I am doing bit extraction from fingerprint minutiae. I using Lumidigm Scanner. Anyone can provide sample code in C# for extracting the minutia and export into text file? thanks in advance!

best Regards,


Wildan


Hello Wildan,

There is Neurotec_Biometric_9_0_SDK\Tutorials\Biometrics\CS\EnrollFingerFromScannerCS provided with SDK that shows how to extract the template.
The information of minutia points could be found at subject.GetTemplate().Fingers.Records[0].Minutiae (C# code) – there will be collection of minutiae points provided. Save whatever information you want to the text file.
Vaidas Z
Neurotechnology
vaidasz
Neurotechnology
 
Posts: 558
Joined: Apr 30, 2010 06:57
Location: Vilnius, Lithuania

Which SDK I need to count the ridges ?

Postby runnan » Sep 16, 2016 09:56

Hi all,

I need to know your SDK can support to do it or not? I already searched a link http://www.neurotechnology.com/neurotec-forum/viewtopic.php?p=85342, but I can find the library to follow it (NFExtractor, NfeExtractionStatus, NGrayscaleImage), maybe it already changed to another.
Could you please clarify it for me?

Thanks so much & have you a nice day

Admin: merged to "Fingerprint enrollment questions"
runnan
 
Posts: 1
Joined: Sep 16, 2016 09:48

Re: Which SDK I need to count the ridges ?

Postby vaidasz » Sep 20, 2016 13:21

runnan wrote:Hi all,

I need to know your SDK can support to do it or not? I already searched a link http://www.neurotechnology.com/neurotec-forum/viewtopic.php?p=85342, but I can find the library to follow it (NFExtractor, NfeExtractionStatus, NGrayscaleImage), maybe it already changed to another.
Could you please clarify it for me?

Thanks so much & have you a nice day


Hello,

The API has been changed from Neurotec Biometric 5.0 SDK. And now you need to use NBiometricClient instead.
I would recommend you to download latest version of Neurotec Biometric 9.0 SDK trial from http://download.neurotechnology.com/Neu ... -08-26.zip website and check tutorials provided with SDK (SDK\Tutorials\Biometrics\[PROGRAMMING_LANGUAGE]).
Vaidas Z
Neurotechnology
vaidasz
Neurotechnology
 
Posts: 558
Joined: Apr 30, 2010 06:57
Location: Vilnius, Lithuania

Multiple Feature Vectors

Postby Leith Abed » Sep 28, 2016 08:48

Hello All,

I would like to find out if I can get more than one feature vector from a certain SDK by neurotechnology, such as VeriFinger SDK.

Many thanks,
Leith

Admin: merged to "Fingerprint enrollment questions"
Leith Abed
 
Posts: 2
Joined: Sep 28, 2016 08:27

Re: Multiple Feature Vectors

Postby Martynas » Sep 28, 2016 12:32

Leith Abed wrote:Hello All,

I would like to find out if I can get more than one feature vector from a certain SDK by neurotechnology, such as VeriFinger SDK.

Many thanks,
Leith

Hello,

could you please explain what do you mean?
Do you mean to extract multiple templates from the same fingerprint image or what?
Best regards,

Martynas
Software Consultant
Neurotechnology
Martynas
Neurotechnology
 
Posts: 2192
Joined: Sep 19, 2008 10:02
Location: Vilnius, Lithuania

Re: Multiple Feature Vectors

Postby Leith Abed » Nov 15, 2016 14:14

Martynas wrote:Hello,

could you please explain what do you mean?
Do you mean to extract multiple templates from the same fingerprint image or what?

Thanks for your reply.

Yes I mean can I get multiple templates from the same fingerprint image?
Leith Abed
 
Posts: 2
Joined: Sep 28, 2016 08:27

Re: Multiple Feature Vectors

Postby Martynas » Nov 16, 2016 11:34

Leith Abed wrote:Thanks for your reply.

Yes I mean can I get multiple templates from the same fingerprint image?

Hi,

it makes no sense to get multiple templates as they all will be the same template.
Could you please explain why do you need to extract multiple templates?
Best regards,

Martynas
Software Consultant
Neurotechnology
Martynas
Neurotechnology
 
Posts: 2192
Joined: Sep 19, 2008 10:02
Location: Vilnius, Lithuania

Re: Fingerprint enrollment questions

Postby mohamadhatami » Jul 31, 2017 04:23

hi

how can cross match between
1)fingers
2)irises
3)faces
in one ntemplate?
i want find the repeated fingers,irises,faces in one nTemplate and prevent fraud
mohamadhatami
 
Posts: 5
Joined: Jul 25, 2017 05:50

Re: Fingerprint enrollment questions

Postby Martynas » Jul 31, 2017 07:28

Hello,

if you want to prevent that same finger, face or iris would be duplicate in the same template, then you need to retrieve finger, iris and face records from that template and match each against other.
Best regards,

Martynas
Software Consultant
Neurotechnology
Martynas
Neurotechnology
 
Posts: 2192
Joined: Sep 19, 2008 10:02
Location: Vilnius, Lithuania

Previous

Return to Public

Who is online

Users browsing this forum: Bing [Bot] and 1 guest

cron