Advertisement
juliomzt

SecuGen Exmple

Mar 21st, 2013
1,151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 26.28 KB | None | 0 0
  1. /*
  2.  * JSGFPLibTest.java
  3.  *
  4.  * Created on February 4, 2005, 6:52 PM
  5.  */
  6.  
  7.  
  8. import java.io.*;
  9. import SecuGen.FDxSDKPro.jni.*;
  10.  
  11. /**
  12.  *
  13.  * @author  Dan Riley
  14.  */
  15. public class JSGFPLibTest {
  16.    
  17.     /** Creates a new instance of JFPLibTest */
  18.     public JSGFPLibTest() {
  19.     }
  20.    
  21.     /**
  22.      * @param args the command line arguments
  23.      */
  24.     public static void main(String[] args) {
  25.         // TODO code application logic here
  26.         long err;
  27.         byte kbBuffer[] = new byte[100];
  28.         byte kbWhichFinger[] = new byte[100];
  29.         int fingerLength = 0;
  30.         String finger = new String("Finger");
  31.         byte[] imageBuffer1;
  32.         byte[] imageBuffer2;
  33.         byte[] SG400minutiaeBuffer1;
  34.         byte[] ANSIminutiaeBuffer1;
  35.         byte[] ISOminutiaeBuffer1;
  36.         byte[] SG400minutiaeBuffer2;
  37.         byte[] ANSIminutiaeBuffer2;
  38.         byte[] ISOminutiaeBuffer2;
  39.         FileOutputStream fout = null;
  40.         PrintStream fp = null;
  41.  
  42.         //Initialize fingerprint prompt buffer
  43.         for (int i=0; i < kbWhichFinger.length; ++i)
  44.            kbWhichFinger[i] = 0x00;
  45.  
  46.         System.out.println("");
  47.         System.out.println("###############################");
  48.         System.out.println("SecuGen FDx SDK Pro for Java");
  49.         System.out.println("JSGFPLib JNI Library Test Program");
  50.         System.out.println("###############################");
  51.         System.out.println("");
  52.        
  53.        
  54.         ///////////////////////////////////////////////
  55.         // Instantiate JSGFPLib object
  56.         System.out.println("Instantiate JSGFPLib Object");
  57.         JSGFPLib sgfplib = new JSGFPLib();
  58.         if ((sgfplib != null) && (sgfplib.jniLoadStatus != SGFDxErrorCode.SGFDX_ERROR_JNI_DLLLOAD_FAILED))
  59.         {
  60.             System.out.println(sgfplib);
  61.         }
  62.         else
  63.         {
  64.             System.out.println("An error occurred while loading JSGFPLIB.DLL JNI Wrapper");
  65.             return;
  66.         }
  67.  
  68.         ///////////////////////////////////////////////
  69.         // Init()
  70.         System.out.println("Call Init(SGFDxDeviceName.SG_DEV_AUTO)");
  71.         err = sgfplib.Init(SGFDxDeviceName.SG_DEV_AUTO);
  72.         System.out.println("Init returned : [" + err + "]");
  73.  
  74.         ///////////////////////////////////////////////
  75.         // OpenDevice()
  76.         System.out.println("Call OpenDevice(SGPPPortAddr.AUTO_DETECT)");
  77.         err = sgfplib.OpenDevice(SGPPPortAddr.AUTO_DETECT);
  78.         System.out.println("OpenDevice returned : [" + err + "]");
  79.  
  80.         ///////////////////////////////////////////////
  81.         // GetError()
  82.         System.out.println("Call GetLastError()");
  83.         err = sgfplib.GetLastError();
  84.         System.out.println("GetLastError returned : [" + err + "]");
  85.  
  86.         ///////////////////////////////////////////////
  87.         // GetDeviceInfo()
  88.         System.out.println("Call GetDeviceInfo()");
  89.         SGDeviceInfoParam deviceInfo = new SGDeviceInfoParam();
  90.         err = sgfplib.GetDeviceInfo(deviceInfo);
  91.         System.out.println("GetDeviceInfo returned : [" + err + "]");
  92.         System.out.println("\tdeviceInfo.DeviceSN:    [" + deviceInfo.deviceSN() + "]");
  93.         System.out.println("\tdeviceInfo.Brightness:  [" + deviceInfo.brightness + "]");
  94.         System.out.println("\tdeviceInfo.ComPort:     [" + deviceInfo.comPort + "]");
  95.         System.out.println("\tdeviceInfo.ComSpeed:    [" + deviceInfo.comSpeed + "]");
  96.         System.out.println("\tdeviceInfo.Contrast:    [" + deviceInfo.contrast + "]");
  97.         System.out.println("\tdeviceInfo.DeviceID:    [" + deviceInfo.deviceID + "]");
  98.         System.out.println("\tdeviceInfo.FWVersion:   [" + deviceInfo.FWVersion + "]");
  99.         System.out.println("\tdeviceInfo.Gain:        [" + deviceInfo.gain + "]");
  100.         System.out.println("\tdeviceInfo.ImageDPI:    [" + deviceInfo.imageDPI + "]");
  101.         System.out.println("\tdeviceInfo.ImageHeight: [" + deviceInfo.imageHeight + "]");
  102.         System.out.println("\tdeviceInfo.ImageWidth:  [" + deviceInfo.imageWidth + "]");
  103.        
  104.         ///////////////////////////////////////////////
  105.         // SetLedOn(true)
  106.         System.out.print("Press <Enter> to turn fingerprint sensor LEDs on >> ");
  107.         try
  108.         {
  109.             System.in.read(kbBuffer);
  110.             System.out.println("Call SetLedOn(true)");
  111.             err = sgfplib.SetLedOn(true);
  112.             System.out.println("SetLedOn returned : [" + err + "]");
  113.         }
  114.         catch (IOException e)
  115.         {
  116.             System.out.println("Exception reading keyboard : " + e);
  117.         }
  118.  
  119.         ///////////////////////////////////////////////
  120.         // SetLedOn(false)
  121.         System.out.println("Fingerprint Sensor LEDS should now be illuminated.");
  122.         System.out.print("Press <Enter> to turn fingerprint sensor LEDs off >> ");
  123.         try
  124.         {
  125.             System.in.read(kbBuffer);
  126.             System.out.println("Call SetLedOn(false)");
  127.             err = sgfplib.SetLedOn(false);
  128.             System.out.println("SetLedOn returned : [" + err + "]");
  129.         }
  130.         catch (IOException e)
  131.         {
  132.             System.out.println("Exception reading keyboard : " + e);
  133.         }
  134.  
  135.         ///////////////////////////////////////////////
  136.         ///////////////////////////////////////////////
  137.         System.out.println("Fingerprint Sensor LEDS should now be off.");
  138.         System.out.println("The next tests will require mutiple captures of the same finger.");
  139.         System.out.print("Which finger would you like to test with? (e.g. left thumb) >> ");
  140.         try
  141.         {
  142.             System.in.read(kbWhichFinger);
  143.             //Remove CR/NL (<ENTER>)
  144.             for (int i=0; i < kbWhichFinger.length; ++i)
  145.             {
  146.                 if ((kbWhichFinger[i] == 0x0A) || (kbWhichFinger[i] == 0x0D)|| (kbWhichFinger[i] == 0x00))
  147.                 {
  148.                     fingerLength = i;
  149.                     break;
  150.                 }
  151.             }
  152.             if (fingerLength > 0)
  153.                 finger = new String(kbWhichFinger,0,fingerLength);
  154.             else finger = new String("finger");
  155.         }
  156.         catch (IOException e)
  157.         {
  158.             System.out.println("Exception reading keyboard : " + e);
  159.         }
  160.  
  161.  
  162.         int[] quality = new int[1];
  163.         int[] maxSize = new int[1];
  164.         int[] size = new int[1];
  165.         SGFingerInfo fingerInfo = new SGFingerInfo();
  166.         fingerInfo.FingerNumber = SGFingerPosition.SG_FINGPOS_LI;
  167.         fingerInfo.ImageQuality = quality[0];
  168.         fingerInfo.ImpressionType = SGImpressionType.SG_IMPTYPE_LP;
  169.         fingerInfo.ViewNumber = 1;
  170.  
  171.  
  172.  
  173. //////////////////////////////////////////////////////////////////////////////
  174. // Finger 1
  175.         ///////////////////////////////////////////////
  176.         // getImage() - 1st Capture
  177.         System.out.println("Call SetLedOn(true)");
  178.         err =sgfplib.SetLedOn(true);
  179.         System.out.println("SetLedOn returned : [" + err + "]");
  180.         System.out.print("Capture 1. Please place [" + finger + "] on sensor with LEDs on and press <ENTER> ");
  181.         imageBuffer1 = new byte[deviceInfo.imageHeight*deviceInfo.imageWidth];
  182.         try
  183.         {
  184.             System.in.read(kbBuffer);
  185.             System.out.println("Call GetImage()");
  186.             err = sgfplib.GetImage(imageBuffer1);
  187.             System.out.println("GetImage returned : [" + err + "]");
  188.             if (err == SGFDxErrorCode.SGFDX_ERROR_NONE)
  189.             {
  190.                 err = sgfplib.GetImageQuality(deviceInfo.imageWidth, deviceInfo.imageHeight, imageBuffer1, quality);
  191.                 System.out.println("GetImageQuality returned : [" + err + "]");
  192.                 System.out.println("Image Quality is : [" + quality[0] + "]");
  193.                 fout = new FileOutputStream(finger + "1.raw");
  194.                 fp = new PrintStream(fout);
  195.                 fp.write(imageBuffer1,0, imageBuffer1.length);
  196.                 fp.close();
  197.                 fout.close();
  198.                 fp = null;
  199.                 fout = null;
  200.             }
  201.             else
  202.             {
  203.                 System.out.println("ERROR: Fingerprint image capture failed for sample1.");
  204.                 return; //Cannot continue test if image not captured
  205.             }
  206.         }
  207.         catch (IOException e)
  208.         {
  209.             System.out.println("Exception reading keyboard : " + e);
  210.         }
  211.  
  212.         ///////////////////////////////////////////////
  213.         // Set Template format SG400
  214.         System.out.println("Call SetTemplateFormat(SG400)");
  215.         err = sgfplib.SetTemplateFormat(SGFDxTemplateFormat.TEMPLATE_FORMAT_SG400);
  216.         System.out.println("SetTemplateFormat returned : [" + err + "]");
  217.  
  218.         ///////////////////////////////////////////////
  219.         // Get Max Template Size for SG400
  220.         System.out.println("Call GetMaxTemplateSize()");
  221.         err = sgfplib.GetMaxTemplateSize(maxSize);
  222.         System.out.println("GetMaxTemplateSize returned : [" + err + "]");
  223.         System.out.println("Max SG400 Template Size is : [" + maxSize[0] + "]");
  224.  
  225.         ///////////////////////////////////////////////
  226.         // Greate SG400 Template for Finger 1
  227.         SG400minutiaeBuffer1 = new byte[maxSize[0]];
  228.         System.out.println("Call CreateTemplate()");
  229.         err = sgfplib.CreateTemplate(fingerInfo, imageBuffer1, SG400minutiaeBuffer1);
  230.         System.out.println("CreateTemplate returned : [" + err + "]");
  231.         err = sgfplib.GetTemplateSize(SG400minutiaeBuffer1, size);
  232.         System.out.println("GetTemplateSize returned : [" + err + "]");
  233.         System.out.println("SG400 Template Size is : [" + size[0] + "]");
  234.         try
  235.         {
  236.             if (err == SGFDxErrorCode.SGFDX_ERROR_NONE)
  237.             {
  238.                 fout = new FileOutputStream(finger +"1.sg400");
  239.                 fp = new PrintStream(fout);
  240.                 fp.write(SG400minutiaeBuffer1,0, size[0]);
  241.                 fp.close();
  242.                 fout.close();
  243.                 fp = null;
  244.                 fout = null;
  245.             }
  246.         }
  247.         catch (IOException e)
  248.         {
  249.             System.out.println("Exception writing minutiae file : " + e);
  250.         }
  251.  
  252.         ///////////////////////////////////////////////
  253.         // Set Template format ANSI378
  254.         System.out.println("Call SetTemplateFormat(ANSI378)");
  255.         err = sgfplib.SetTemplateFormat(SGFDxTemplateFormat.TEMPLATE_FORMAT_ANSI378);
  256.         System.out.println("SetTemplateFormat returned : [" + err + "]");
  257.  
  258.         ///////////////////////////////////////////////
  259.         // Get Max Template Size for ANSI378
  260.         System.out.println("Call GetMaxTemplateSize()");
  261.         err = sgfplib.GetMaxTemplateSize(maxSize);
  262.         System.out.println("GetMaxTemplateSize returned : [" + err + "]");
  263.         System.out.println("Max ANSI378 Template Size is : [" + maxSize[0] + "]");
  264.  
  265.         ///////////////////////////////////////////////
  266.         // Greate ANSI378 Template for Finger1
  267.         ANSIminutiaeBuffer1 = new byte[maxSize[0]];
  268.         System.out.println("Call CreateTemplate()");
  269.         err = sgfplib.CreateTemplate(fingerInfo, imageBuffer1, ANSIminutiaeBuffer1);
  270.         System.out.println("CreateTemplate returned : [" + err + "]");
  271.         err = sgfplib.GetTemplateSize(ANSIminutiaeBuffer1, size);
  272.         System.out.println("GetTemplateSize returned : [" + err + "]");
  273.         System.out.println("ANSI378 Template Size is : [" + size[0] + "]");
  274.         try
  275.         {
  276.             if (err == SGFDxErrorCode.SGFDX_ERROR_NONE)
  277.             {
  278.                 fout = new FileOutputStream(finger +"1.ansi378");
  279.                 fp = new PrintStream(fout);
  280.                 fp.write(ANSIminutiaeBuffer1,0, size[0]);
  281.                 fp.close();
  282.                 fout.close();
  283.                 fp = null;
  284.                 fout = null;
  285.             }
  286.         }
  287.         catch (IOException e)
  288.         {
  289.             System.out.println("Exception writing minutiae file : " + e);
  290.         }
  291.  
  292.         ///////////////////////////////////////////////
  293.         // Set Template format ISO19794
  294.         System.out.println("Call SetTemplateFormat(ISO19794)");
  295.         err = sgfplib.SetTemplateFormat(SGFDxTemplateFormat.TEMPLATE_FORMAT_ISO19794);
  296.         System.out.println("SetTemplateFormat returned : [" + err + "]");
  297.  
  298.         ///////////////////////////////////////////////
  299.         // Get Max Template Size for ISO19794
  300.         System.out.println("Call GetMaxTemplateSize()");
  301.         err = sgfplib.GetMaxTemplateSize(maxSize);
  302.         System.out.println("GetMaxTemplateSize returned : [" + err + "]");
  303.         System.out.println("Max ISO19794 Template Size is : [" + maxSize[0] + "]");
  304.  
  305.         ///////////////////////////////////////////////
  306.         // Greate ISO19794 Template for Finger1
  307.         ISOminutiaeBuffer1 = new byte[maxSize[0]];
  308.         System.out.println("Call CreateTemplate()");
  309.         err = sgfplib.CreateTemplate(fingerInfo, imageBuffer1, ISOminutiaeBuffer1);
  310.         System.out.println("CreateTemplate returned : [" + err + "]");
  311.         err = sgfplib.GetTemplateSize(ISOminutiaeBuffer1, size);
  312.         System.out.println("GetTemplateSize returned : [" + err + "]");
  313.         System.out.println("ISO19794 Template Size is : [" + size[0] + "]");
  314.         try
  315.         {
  316.             if (err == SGFDxErrorCode.SGFDX_ERROR_NONE)
  317.             {
  318.                 fout = new FileOutputStream(finger +"1.iso19794");
  319.                 fp = new PrintStream(fout);
  320.                 fp.write(ISOminutiaeBuffer1,0, size[0]);
  321.                 fp.close();
  322.                 fout.close();
  323.                 fp = null;
  324.                 fout = null;
  325.             }
  326.         }
  327.         catch (IOException e)
  328.         {
  329.             System.out.println("Exception writing minutiae file : " + e);
  330.         }
  331.  
  332.  
  333.  
  334. //////////////////////////////////////////////////////////////////////////////
  335. // Finger 2
  336.         ///////////////////////////////////////////////
  337.         // getImage() - 2nd Capture
  338.         System.out.println("Call SetLedOn(true)");
  339.         err =sgfplib.SetLedOn(true);
  340.         System.out.println("SetLedOn returned : [" + err + "]");
  341.         System.out.print("Capture 2. Please place [" + finger + "] on sensor with LEDs on and press <ENTER> ");
  342.         imageBuffer2 = new byte[deviceInfo.imageHeight*deviceInfo.imageWidth];
  343.         try
  344.         {
  345.             System.in.read(kbBuffer);
  346.             System.out.println("Call GetImage()");
  347.             err = sgfplib.GetImage(imageBuffer2);
  348.             System.out.println("GetImage returned : [" + err + "]");
  349.             if (err == SGFDxErrorCode.SGFDX_ERROR_NONE)
  350.             {
  351.                 err = sgfplib.GetImageQuality(deviceInfo.imageWidth, deviceInfo.imageHeight, imageBuffer2, quality);
  352.                 System.out.println("GetImageQuality returned : [" + err + "]");
  353.                 System.out.println("Image Quality is : [" + quality[0] + "]");
  354.                 fout = new FileOutputStream(finger + "2.raw");
  355.                 fp = new PrintStream(fout);
  356.                 fp.write(imageBuffer2,0, imageBuffer2.length);
  357.                 fp.close();
  358.                 fout.close();
  359.                 fp = null;
  360.                 fout = null;
  361.             }
  362.             else
  363.             {
  364.                 System.out.println("ERROR: Fingerprint image capture failed for sample2.");
  365.                 return; //Cannot continue test if image not captured
  366.             }
  367.         }
  368.         catch (IOException e)
  369.         {
  370.             System.out.println("Exception reading keyboard : " + e);
  371.         }
  372.  
  373.         ///////////////////////////////////////////////
  374.         // Set Template format SG400
  375.         System.out.println("Call SetTemplateFormat(SG400)");
  376.         err = sgfplib.SetTemplateFormat(SGFDxTemplateFormat.TEMPLATE_FORMAT_SG400);
  377.         System.out.println("SetTemplateFormat returned : [" + err + "]");
  378.  
  379.         ///////////////////////////////////////////////
  380.         // Get Max Template Size for SG400
  381.         System.out.println("Call GetMaxTemplateSize()");
  382.         err = sgfplib.GetMaxTemplateSize(maxSize);
  383.         System.out.println("GetMaxTemplateSize returned : [" + err + "]");
  384.         System.out.println("Max SG400 Template Size is : [" + maxSize[0] + "]");
  385.  
  386.         ///////////////////////////////////////////////
  387.         // Greate SG400 Template for Finger 2
  388.         SG400minutiaeBuffer2 = new byte[maxSize[0]];
  389.         System.out.println("Call CreateTemplate()");
  390.         err = sgfplib.CreateTemplate(fingerInfo, imageBuffer2, SG400minutiaeBuffer2);
  391.         System.out.println("CreateTemplate returned : [" + err + "]");
  392.         err = sgfplib.GetTemplateSize(SG400minutiaeBuffer2, size);
  393.         System.out.println("GetTemplateSize returned : [" + err + "]");
  394.         System.out.println("SG400 Template Size is : [" + size[0] + "]");
  395.         try
  396.         {
  397.             if (err == SGFDxErrorCode.SGFDX_ERROR_NONE)
  398.             {
  399.                 fout = new FileOutputStream(finger +"1.sg400");
  400.                 fp = new PrintStream(fout);
  401.                 fp.write(SG400minutiaeBuffer2,0, size[0]);
  402.                 fp.close();
  403.                 fout.close();
  404.                 fp = null;
  405.                 fout = null;
  406.             }
  407.         }
  408.         catch (IOException e)
  409.         {
  410.             System.out.println("Exception writing minutiae file : " + e);
  411.         }
  412.  
  413.         ///////////////////////////////////////////////
  414.         // Set Template format ANSI378
  415.         System.out.println("Call SetTemplateFormat(ANSI378)");
  416.         err = sgfplib.SetTemplateFormat(SGFDxTemplateFormat.TEMPLATE_FORMAT_ANSI378);
  417.         System.out.println("SetTemplateFormat returned : [" + err + "]");
  418.  
  419.         ///////////////////////////////////////////////
  420.         // Get Max Template Size for ANSI378
  421.         System.out.println("Call GetMaxTemplateSize()");
  422.         err = sgfplib.GetMaxTemplateSize(maxSize);
  423.         System.out.println("GetMaxTemplateSize returned : [" + err + "]");
  424.         System.out.println("Max ANSI378 Template Size is : [" + maxSize[0] + "]");
  425.  
  426.         ///////////////////////////////////////////////
  427.         // Greate ANSI378 Template for Finger 2
  428.         ANSIminutiaeBuffer2 = new byte[maxSize[0]];
  429.         System.out.println("Call CreateTemplate()");
  430.         err = sgfplib.CreateTemplate(fingerInfo, imageBuffer2, ANSIminutiaeBuffer2);
  431.         System.out.println("CreateTemplate returned : [" + err + "]");
  432.         err = sgfplib.GetTemplateSize(ANSIminutiaeBuffer2, size);
  433.         System.out.println("GetTemplateSize returned : [" + err + "]");
  434.         System.out.println("ANSI378 Template Size is : [" + size[0] + "]");
  435.         try
  436.         {
  437.             if (err == SGFDxErrorCode.SGFDX_ERROR_NONE)
  438.             {
  439.                 fout = new FileOutputStream(finger +"2.ansi378");
  440.                 fp = new PrintStream(fout);
  441.                 fp.write(ANSIminutiaeBuffer2,0, size[0]);
  442.                 fp.close();
  443.                 fout.close();
  444.                 fp = null;
  445.                 fout = null;
  446.             }
  447.         }
  448.         catch (IOException e)
  449.         {
  450.             System.out.println("Exception writing minutiae file : " + e);
  451.         }
  452.  
  453.         ///////////////////////////////////////////////
  454.         // Set Template format ISO19794
  455.         System.out.println("Call SetTemplateFormat(ISO19794)");
  456.         err = sgfplib.SetTemplateFormat(SGFDxTemplateFormat.TEMPLATE_FORMAT_ISO19794);
  457.         System.out.println("SetTemplateFormat returned : [" + err + "]");
  458.  
  459.         ///////////////////////////////////////////////
  460.         // Get Max Template Size for ISO19794
  461.         System.out.println("Call GetMaxTemplateSize()");
  462.         err = sgfplib.GetMaxTemplateSize(maxSize);
  463.         System.out.println("GetMaxTemplateSize returned : [" + err + "]");
  464.         System.out.println("Max ISO19794 Template Size is : [" + maxSize[0] + "]");
  465.  
  466.         ///////////////////////////////////////////////
  467.         // Greate ISO19794 Template for Finger 2
  468.         ISOminutiaeBuffer2 = new byte[maxSize[0]];
  469.         System.out.println("Call CreateTemplate()");
  470.         err = sgfplib.CreateTemplate(fingerInfo, imageBuffer2, ISOminutiaeBuffer2);
  471.         System.out.println("CreateTemplate returned : [" + err + "]");
  472.         err = sgfplib.GetTemplateSize(ISOminutiaeBuffer2, size);
  473.         System.out.println("GetTemplateSize returned : [" + err + "]");
  474.         System.out.println("ISO19794 Template Size is : [" + size[0] + "]");
  475.         try
  476.         {
  477.             if (err == SGFDxErrorCode.SGFDX_ERROR_NONE)
  478.             {
  479.                 fout = new FileOutputStream(finger +"2.iso19794");
  480.                 fp = new PrintStream(fout);
  481.                 fp.write(ISOminutiaeBuffer2,0, size[0]);
  482.                 fp.close();
  483.                 fout.close();
  484.                 fp = null;
  485.                 fout = null;
  486.             }
  487.         }
  488.         catch (IOException e)
  489.         {
  490.             System.out.println("Exception writing minutiae file : " + e);
  491.         }
  492.  
  493.  
  494.         boolean[] matched = new boolean[1];
  495.         int[] score = new int[1];
  496.         ///////////////////////////////////
  497.         //Match SG400 Templates
  498.         matched[0] = false;
  499.         score[0] = 0;
  500.         System.out.println("Call SetTemplateFormat(SG400)");
  501.         err = sgfplib.SetTemplateFormat(SGFDxTemplateFormat.TEMPLATE_FORMAT_SG400);
  502.         System.out.println("SetTemplateFormat returned : [" + err + "]");
  503.         System.out.println("Call MatchTemplates()");
  504.         err = sgfplib.MatchTemplate(SG400minutiaeBuffer1, SG400minutiaeBuffer2, SGFDxSecurityLevel.SL_NORMAL, matched);
  505.         System.out.println("MatchTemplates returned : [" + err + "]");
  506.         System.out.println("SG400-1 <> SG400-2 Match Result : [" + matched[0] + "]");
  507.         System.out.println("Call GetMatchingScore()");
  508.         err = sgfplib.GetMatchingScore(SG400minutiaeBuffer1, SG400minutiaeBuffer2, score);
  509.         System.out.println("GetMatchingScore returned : [" + err + "]");
  510.         System.out.println("SG400-1  <> SG400-2 Match Score : [" + score[0] + "]");
  511.  
  512.  
  513.         ///////////////////////////////////
  514.         //Match ANSI378 Templates
  515.         matched[0] = false;
  516.         score[0] = 0;
  517.         System.out.println("Call SetTemplateFormat(ANSI378)");
  518.         err = sgfplib.SetTemplateFormat(SGFDxTemplateFormat.TEMPLATE_FORMAT_ANSI378);
  519.         System.out.println("SetTemplateFormat returned : [" + err + "]");
  520.         System.out.println("Call MatchAnsiTemplates()");
  521.         err = sgfplib.MatchAnsiTemplate(ANSIminutiaeBuffer1, 0, ANSIminutiaeBuffer2, 0, SGFDxSecurityLevel.SL_NORMAL, matched);
  522.         System.out.println("MatchANSITemplates returned : [" + err + "]");
  523.         System.out.println("ANSI-1 <> ANSI-2 Match Result : [" + matched[0] + "]");
  524.         System.out.println("Call GetAnsiMatchingScore()");
  525.         err = sgfplib.GetAnsiMatchingScore(ANSIminutiaeBuffer1, 0, ANSIminutiaeBuffer2, 0, score);
  526.         System.out.println("GetAnsiMatchingScore returned : [" + err + "]");
  527.         System.out.println("ANSI-1  <> ANSI-2 Match Score : [" + score[0] + "]");
  528.  
  529.         ///////////////////////////////////
  530.         //Match ISO19794 Templates
  531.         matched[0] = false;
  532.         score[0] = 0;
  533.         System.out.println("Call SetTemplateFormat(ISO19794)");
  534.         err = sgfplib.SetTemplateFormat(SGFDxTemplateFormat.TEMPLATE_FORMAT_ISO19794);
  535.         System.out.println("SetTemplateFormat returned : [" + err + "]");
  536.         System.out.println("Call MatchIsoTemplates()");
  537.         err = sgfplib.MatchIsoTemplate(ISOminutiaeBuffer1, 0, ISOminutiaeBuffer2, 0, SGFDxSecurityLevel.SL_NORMAL, matched);
  538.         System.out.println("MatchISOTemplates returned : [" + err + "]");
  539.         System.out.println("ISO-1 <> ISO-2 Match Result : [" + matched[0] + "]");
  540.         System.out.println("Call GetIsoMatchingScore()");
  541.         err = sgfplib.GetIsoMatchingScore(ISOminutiaeBuffer1, 0, ISOminutiaeBuffer2, 0, score);
  542.         System.out.println("GetIsoMatchingScore returned : [" + err + "]");
  543.         System.out.println("ISO-1  <> ISO-2 Match Score : [" + score[0] + "]");
  544.  
  545.  
  546.         ///////////////////////////////////////////////
  547.         // getImageEx()
  548.         System.out.println("--------");
  549.         System.out.println("New Functions--------");
  550.         System.out.println("--------");
  551.         System.out.println("Call GetImageEx()");
  552.         System.out.print("Please place [" + finger + "] on sensor and press <ENTER> ");
  553.         try
  554.         {
  555.             System.in.read(kbBuffer);
  556.             int image_quality = 50; //0 - 100. 50 or above recommended for registration. 40 or above for verification
  557.             int timeout = 10000; //10 seconds
  558.             err = sgfplib.GetImageEx(imageBuffer2,3000,0,60);
  559.             System.out.println("GetImage returned : [" + err + "]");
  560.             if (err == SGFDxErrorCode.SGFDX_ERROR_NONE)
  561.             {
  562.                 err = sgfplib.GetImageQuality(deviceInfo.imageWidth, deviceInfo.imageHeight, imageBuffer2, quality);
  563.                 System.out.println("GetImageQuality returned : [" + err + "]");
  564.                 System.out.println("Image Quality is : [" + quality[0] + "]");
  565.                 fout = new FileOutputStream(finger + "_ex.raw");
  566.                 fp = new PrintStream(fout);
  567.                 fp.write(imageBuffer2,0, imageBuffer2.length);
  568.                 fp.close();
  569.                 fout.close();
  570.                 fp = null;
  571.                 fout = null;
  572.             }
  573.             else
  574.             {
  575.                 System.out.println("ERROR: Fingerprint image capture failed for sample2.");
  576.                 return; //Cannot continue test if image not captured
  577.             }
  578.         }
  579.         catch (IOException e)
  580.         {
  581.             System.out.println("Exception reading keyboard : " + e);
  582.         }
  583.  
  584.                
  585.         ///////////////////////////////////////////////
  586.         // CloseDevice()
  587.         System.out.println("Call CloseDevice()");
  588.         err = sgfplib.CloseDevice();
  589.         System.out.println("CloseDevice returned : [" + err + "]");
  590.  
  591.  
  592.         ///////////////////////////////////////////////
  593.         // Close JSGFPLib native library
  594.         System.out.println("Call Close()");
  595.         sgfplib.Close();
  596.         System.out.println("Close returned : [" + err + "]");
  597.  
  598.         sgfplib = null;
  599.         imageBuffer1 = null;
  600.         imageBuffer2 = null;
  601.         SG400minutiaeBuffer1 = null;
  602.         ANSIminutiaeBuffer1 = null;
  603.         ISOminutiaeBuffer1 = null;
  604.         SG400minutiaeBuffer2 = null;
  605.         ANSIminutiaeBuffer2 = null;
  606.         ISOminutiaeBuffer2 = null;
  607.  
  608.     }    
  609. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement