IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... ·...
Transcript of IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... ·...
![Page 1: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/1.jpg)
IBSDK Programmer’s Guide for Windows
Page 1
IB-SDK-00003 Ver. 3.0.0
2012-04-04
IBSDK Programmer’s Guide for Windows
Copyright @2012, lntegrated Biometrics LLC. All Rights Reserved
![Page 2: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/2.jpg)
IBSDK Programmer’s Guide for Windows
Page 2
Table of Contents 1 Introduction ..................................................................................................... 4 1.1 Overview .................................................................................................................... 4 1.2 About Images and IB User Templates ....................................................................... 4 1.3 Template Data Formats ............................................................................................. 5 1.4 Installation, Files, and Folders ................................................................................... 6
1.4.1. System Requirements ......................................................................................... 6 1.4.2. Installation ............................................................................................................ 6 1.4.3. Installation Files ................................................................................................... 8
1.5 Best Practices Suggestions ....................................................................................... 9 1.5.1. Template / Memory / Database Size Considerations .......................................... 9 1.5.2. Recommended Enrollment Procedure ................................................................ 9
1.6 BISDK Configuration ................................................................................................ 10 1.7 NFIQ Image Quality ................................................................................................. 11 1.8 Security Level Settings ............................................................................................ 11
1.8.1. Matching 404 vs. 404, & 404 vs. 9456, and 9456 vs. 9456 (Indexing Level 0) . 11 1.8.2. Testing Platform ................................................................................................. 12 1.8.3. Matching Speed ................................................................................................. 12 1.8.4. Indexing Level Setting ....................................................................................... 12 1.8.5. C Programming ................................................................................................. 13
2 C Function Library ........................................................................................ 14 2.1 Configuration of Shared DLL (BioNetAcsDLL.dll) .................................................... 14
2.1.1. Basic Properties (Get and Set functions ............................................................ 15 2.1.2. IBI SDK Setting Functions ................................................................................. 15 2.1.3. Example of Internal Algorithm Setting Functions ............................................... 20 2.1.4. Fingerprint Acquisition Order ............................................................................. 21 2.1.5. Size of Fingerprint Image (Width & Height) ....................................................... 22 2.1.6. Fingerprint Acquisition Related Functions ......................................................... 24 2.1.7. Fingerprint Matching Process Flow ................................................................... 29 2.1.8. Fingerprint Enrollment Process Flow ................................................................. 30
2.2 Fingerprint Template Generation and Matching ...................................................... 31 3 Programming ................................................................................................. 35 3.1 Visual C++ 6.0 ......................................................................................................... 35 3.2 64-Bit application development for Visual C++ ........................................................ 37
3.2.1. 64-Bit development overview ............................................................................ 37 3.2.2. 64-Bit development procedure .......................................................................... 37
![Page 3: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/3.jpg)
IBSDK Programmer’s Guide for Windows
Page 3
Microsoft Visual Basic 6.0 ................................................................................................. 39 3.2.3. DLL Declaration ................................................................................................. 39 3.2.4. Utilizing DLL function ......................................................................................... 39 Microsoft .NET (Both C# and Visual Basic .NET) ......................................................... 40 3.2.5. DLL Declaration ................................................................................................. 40 3.2.6. Calling the SDK functions .................................................................................. 40 3.2.7. Developing .NET applications for 64-bit Windows ............................................. 40 Using WOW64 ............................................................................................................... 40
![Page 4: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/4.jpg)
IBSDK Programmer’s Guide for Windows
Page 4
1 Introduction
1.1 Overview
The IBISDK is developed for use with Light Emitting Sensor Film (LES) scanners from Integrated Biometrics. This SDK provides the ability to add fingerprint biometric capability to applications where you need the highest confidence in user identification.. This includes initial and secondary authentication of the user, and also re-authentication events. The result is the highest level of security, which maximizes the return on your investment. You can also create valid audit trails to monitor high-value user activities in all application workflows. All hardware and software elements of this product have been developed internally and Integrated Biometrics (IB) owns the entire design process. IB also has complete control over the support and maintenance teams. The LES hardware imaging qualities—as well as the algorithms for template generation, image processing and matching—represent the highest performance available in the world. This claim is based on independent certification and testing events, including FBI Appendix F Certification, National Biometric Security Project Certification, Transportation & Security Administration (TSA) Certification and FVC Algorithm competitions.
1.2 About Images and IB User Templates
Using this SDK, the developer can store both user templates and fingerprint images. However, you don’t need to store images to perform enrolled user matching. For applications where images will be stored in the database1, we strongly recommend that users approve this procedure PRIOR to enrollment. Please note: re-creation of original fingerprint images from IB User Templates is NOT possible.
The image generation, image processing, user template generation and matching algorithms included with this SDK are the very latest versions. If you have been using previous versions, please contact IB technical support for guidance on upgrading to the latest release.
The templates generated using IBISDK are proprietary and unique to Integrated Biometrics. The primary goal during algorithm development was to ensure the highest levels of security, user convenience and matching efficiency, while avoiding the legacy constraints usually encountered by AFIS algorithms being used in non-AFIS applications. The algorithm designs
1 Note that image file size is currently 101,376 (99k) bytes.
![Page 5: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/5.jpg)
IBSDK Programmer’s Guide for Windows
Page 5
consider the real world habits of users, including inconsistent finger placement on the sensor (which is common in unattended applications). The result is maximum convenience for users, while achieving superior False-Reject-Rate and False-Accept-Rate performance.
1.3 Template Data Formats
There are two template-size options included with this SDK: 404 bytes and 9456 bytes. These two template formats can be used interchangeably. The 404-byte template includes only the raw data extracted from the fingerprint image, while the 9456 template includes the fully processed raw data. Althought the pre-processing of the raw data reduces the processing necessary for template matching, it does increase the memory storage requirements. We recommend that you consider that available system resources when choosing the template size. Typically, the 9456 template is found in PC based applications, and the 404 template is used in smaller, embedded systems.
The 9456 byte template consists of 9052 bytes of the fully processed raw data plus the 404 bytes of raw data. This design permits interchangeable use of these template formats when deploy mulitple devices into a mixed environement.
NOTE: Calls or descriptions of 9052 in this document refer to the 9456 byte template. The template structure is represented in the figure below.
9052 bytes
eees 404 bytes
9456 = 9052 +
404
![Page 6: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/6.jpg)
IBSDK Programmer’s Guide for Windows
Page 6
1.4 Installation, Files, and Folders
1.4.1. System Requirements
Item Requirements
Operating System Windows 2000 / XP / XPe / 2003 / VISTA / 7
CPU Pentium or higher
Hardware Scanning Device Curve or eCurve USB Scanner
1.4.2. Installation
After installation of the IBISDK, you’ll find several folders in the Start Menu, as shown in the figure below.
Windows 7
![Page 7: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/7.jpg)
IBSDK Programmer’s Guide for Windows
Page 7
Windows XP
![Page 8: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/8.jpg)
IBSDK Programmer’s Guide for Windows
Page 8
1.4.3. Installation Files
Main Sub Description
Library folder BioNetAcsDll Header file that proclaim C functions
BioNetAcsDLL A LIB file consisting of C functions. This file is required to implement C programming.
BioNetAcsDLL A lib file composed of C functions. This file is required to implement C programming.
Sample Source folder
C Sharp
Visual C++
Visual C++ 6.0 sample source code ( requires Visual C++ 6.0 program)
Visual Basic Visual Basic sample source code (requires Visual Basic program.)
Driver folder
X86 32 Bit
X86 64 Bit
USB Driver Install.exe
DPInst Installation Application
usbfpdrv Security Catalog
UsbFpDrv Setup Information
UsbFpDrv System File
WdfCoInstaller01007.dll Application Extension
Sample Application folder
IBICaptureSampleForVB
IBICaptureSampleForVC
IBI Get Image Sample for VC
IBI SDK Sample for C#
IBI SDK Sample for VB
IBI SDK Sample for VC
A fingerprint recognition algorithm demo program created using DLL
Help Folder IBI SDK English manual
Table 2
![Page 9: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/9.jpg)
IBSDK Programmer’s Guide for Windows
Page 9
1.5 Best Practices Suggestions
1.5.1. Template / Memory / Database Size Considerations
• For PC based applications where extra memory (RAM) is available for buffering, we recommend the use of the 9456 byte template for best performance.
• We recommend the 404-byte template for mobile platforms or hardware environments with limited memory resources available .
• The matching process for the 404-byte template does require more processing than the 9056 byte template. But for “small” databases, the impact on speed of matching will be negligible.
1.5.2. Recommended Enrollment Procedure
• Record each fingerprint to be enrolled in the database, especially if you are performing administered enrollments.
• A common practice is to enroll at least two fingers for each enrollee. At least one from each hand is best.
• Capture three images for each finger, and require the enrollee to lift and re-place finger after each image capture Note: the benefit of this procedure is that you are likely to capture a larger area of the finger since the enrollee will not position the finger in exactly the same location each time.
• Display the images so that either the enroller and/or enrollee can see the images. Note: refer to the enrollment guide for best practices.
• Use the NFIQ scoring tool to establish minimum acceptance thresholds for image quality. This will increase usability and user satisfaction.
• Perform a matching security level check during the enrollment. You should use the Matching Security Level setting planned for your application. Taking this step will ensure accurate and convenient system performance for the enrollee. If the score is below threshold acceptance levels, then reject it and request re-enrollment of the same or different finger. Since each fingerprint is unique, some inconsistencies may happen occasionally.
• The use of indexing is recommended if you expect the number of enrolled templates to exceed 50,000.
• If you don’t use the fingerprint scanner opened by the OpenNetAccessDevice() function, you should remove the device handle from memory by calling the CloseNetAccessDevice() function. Always run this function when all programming related to the device is concluded.
![Page 10: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/10.jpg)
IBSDK Programmer’s Guide for Windows
Page 10
1.6 BISDK Configuration
OS
Device Driver
SDK
Various Language (Visual C++, Visual Basic, …)
![Page 11: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/11.jpg)
IBSDK Programmer’s Guide for Windows
Page 11
1.7 NFIQ Image Quality
The NFIQ fingerprint image quality algorithm perform analysis on the fingerprint images and assigns an integer quality value to the image in the range of 1 (highest quality) down to 5 (lowest quality). The higher quality images produce significantly better overall matching performance (lower real world FRR), and also better user satisfaction and matching performance. Although developed primarily for use with AFIS systems, we recommend using the NFIQ score to establish minimum thresholds for image quality in commercial applications.
We include this scoring feature in the SDK to support of best practices for enrollment. The default setting is level 3, but level 4 will result in acceptable performance for most commercial applications.
NOTE: the NFIQ image score has no impact on the matching security level settings and related FAR / FRR performance. Statistically, the matching performance is determined solely by security level setting and associated matching parameters incorporated in the IB matching algorithm.
1.8 Security Level Settings
1.8.1. Matching 404 vs. 404, & 404 vs. 9456, and 9456 vs. 9456 (Indexing Level 0)
In the table below, we list the seven Security Level settings:
Level FAR FRR 1 0.02713% 0.00273% 2 0.00857% 0.00478% 3 0.00178% 0.00682%
4(default) 0.00071% 0.00819% 5 0.00036% 0.01228% 6 0.00000% 0.02252% 7 0.00000% 0.03684%
Table 3
![Page 12: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/12.jpg)
IBSDK Programmer’s Guide for Windows
Page 12
1.8.2. Testing Platform
Tests performed in the lab environment given in Table 4 produced the FAR and FRR values that we present in Table 3. Although these are machine-related statistical values, they have been validated in product testing with independent testing organizations in real world applications.
Item Description Test PC Specifications Pentium IV Core2Duo 3 GHz, 4GB DDRRAM,
5400 rpm SATA Hard Disk No. of Fingerprint Images 12,000 Image Rotation Allowance -30º ~ + 30º
Table 4
1.8.3. Matching Speed
In an environment similar to that shown in Table 4, using default security settings, the IB matching algorithm will perform 30,000 matching cycles per second typical (on average 32.4 milliseconds per match, with the templates stored in system RAM). It’s important to realize that host computer specifications, security level settings, and host application design will affect the performance .
1.8.4. Indexing Level Setting
The IB SDK provides features for recognizing and recording fingerprint image feature traits common in fingerprints into the IB User Template. For larger template database sizes (>50,000) one-to-many comparisons, an incremental increase in search speed will reduce overall average matching speed. Speeds for Index Level settings are represented in Table 5.
Template to Template Comparison Speed by Indexing Levels
Level 9456 x 9456 404 x 9456 404 x 404
0(default) 0.0457 ms 0.0698 ms 0.0886 ms 1 0.0367 ms 0.0493 ms 0.0614 ms
Table 5
![Page 13: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/13.jpg)
IBSDK Programmer’s Guide for Windows
Page 13
NOTE: The matching performance is linear and does not vary with increasing template database size. Average matching performance for a given database size will be one-half the total calculated value (i.e. comparing 9456 x 9456 templates with a database of 10,000 templates will require 0.457 seconds to perform a compare on the entire database. On average a match will be found after processing only half of the record set, resulting in an average matching performance of 0.228 seconds for a database of 10,000 templates).
NOTE: The image capture and feature extraction sequence using the LES USB scanner requires approximately 400ms. Feature extraction is performed on the host.
1.8.5. C Programming
IBISDK provides a DLL containing many C functions. If you go to the Lib Folder, you will find BioNetAcsDLL.dll, BioNetAcsDLL.lib (see the section, Installation, Files, & Folders).
![Page 14: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/14.jpg)
IBSDK Programmer’s Guide for Windows
Page 14
2 C Function Library
2.1 Configuration of Shared DLL (BioNetAcsDLL.dll)
If you are building an application that employs a library of C functions, you must load and use the BioNetAcsDLL.dll in IBISDK.
The functions in this DLL are largely divided into several functional categories, (a) basic properties, (b) the acquisition of fingerprints, and (c) the authorization of fingerprints. We describe each of these in the subsections below.
DLL Library
(BioNetAcsDLL.dll)
Fingerprint Acquisition
Related Functions
Template Generation &
Matching Functions
Basic Properties
(Get & Set Functions)
Figure 3
![Page 15: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/15.jpg)
IBSDK Programmer’s Guide for Windows
Page 15
2.1.1. Basic Properties (Get and Set functions
Here is a table enumerating all of the Get and Set functions:
Function short GetImgWidth() short GetImgHeight() long GetImgSize() long GetUSBKey() short GetUSN(char *usn) short GetUSNList(char *usnlist) short IsOperatingUsbMode() short GetFeatSize() const char* GetSDKVersion() void PutSecurityLevel404vs404(short nLevel) void PutSecurityLevel404vs9052(short nLevel) void PutSecurityLevel9052vs9052(short nLevel) short GetSecurityLevel404vs404() short GetSecurityLevel404vs9052() short GetSecurityLevel9052vs9052() void PutIndexingLevel(short nLevel) short GetIndexingLevel()
Table 6
Below we provide a description of each function.
2.1.2. IBI SDK Setting Functions
GetImgWidth
Prototype short GetImgWidth()
Description Returns the width size of the fingerprint image acquired by the LES USB Scan.
Return Returns the width size of the fingerprint image, 352 (pixels)
References 6.1.5 Size of Fingerprint Image (Width & Height)
![Page 16: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/16.jpg)
IBSDK Programmer’s Guide for Windows
Page 16
GetImgHeight
Prototype short GetImgHeight()
Description Returns the height size of the fingerprint image acquired by the Fingerprint USB Scanner.
Return Returns the height size of the fingerprint image, 288 (pixels)
References 6.1.5 Size of Fingerprint Image (Width & Height)
GetImgSize
Prototype long GetImgSize()
Description Returns the data size of the fingerprint image acquired by the Fingerprint USB Scanner.
Return Returns the byte size (288 x 352 = 101,376 bytes) of the fingerprint image
GetUSBKey
Prototype long GetUSBKey()
Description A unique USB Key can be stored in the LES USB scanner prior during manufacture if there is a customer need beyond that provided by the Unique Serial Number. This is the function to run if you want to learn the embedded USB key value. The value must be displayed in the “%u” unsigned long type.
Return Returns the value of the USB key
GetUSN
Prototype Short GetUSN(CHAR *usn)
Description Each LES USB Scanner has an embedded unique USN (Unique Serial Number). This is the function to run if you want to learn the embedded USN value of the device.
Return Returns 1 for success, 0 for fail
![Page 17: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/17.jpg)
IBSDK Programmer’s Guide for Windows
Page 17
GetUSNList
Prototype Short GetUSNList(CHAR *usnlist)
Description Each LES USB Scanner has an embedded unique USN (Unique Serial Number). This is the function to run if you want to learn the USN value of connected devices .
Return Returns count of connected devices (1 - 8) for success, 0 for fail. Example: If three devices are connected to a computer, the value of USN are saved in usnlist parameter as “USN1,USN2,USN3” (separated by “,”).
IsOperatingUsbMode
Prototype short IsOperatingUsbMode()
Description The Fingerprint USB Scanner supports both USB 1.1 and 2.0 Modes This is the function to run if you want to know whether the device is connected to USB High Speed 2.0 port or Low Speed 1.1 port.
Return USB 2.0 if NA2_USB_HIGH (1) USB 1.1 if NA2_USB_LOW (0)
GetFeatSize
Prototype short GetFeatSize()
Description Lets you know the size of the feature data of the fingerprint authorization algorithm that is currently in use.
Return Returns the size (9456 bytes) of the fingerprint feature.
References 5.3 Feature Data
GetSDKVersion
Prototype void GetSDKVersion(byte[ ] ver)
Description This function lets you know the version data of BioNetAcsDLL.dll. If received in the character string, you will find three types of version data. The first one is the version of BioNetAcsDLL.dll, the second is the Image Capture algorithm version being used and the third is the Matching Algorithm version in use.
Return Returns the character-string BioNetAcsDLL.dll version data and algorithm version data related to fingerprint acquisition and authorization included in this DLL.
Example Return String: IBISDK ver 2.2.0 (20110317)
![Page 18: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/18.jpg)
IBSDK Programmer’s Guide for Windows
Page 18
PutSecurityLevel404vs404
Prototype void PutSecurityLevel404vs404(short newLevel)
Description This function is used to set up the security level when matching two 404-byte fingerprint template data.
Parameter newLevel – specify the value of the level shown in Table 3 above.
References 5.7 Security Level Setting
PutSecurityLevel404vs9052
Prototype void PutSecurityLevel404vs9052(short newLevel)
Description This function is used to set up the security level when matching one 404-byte template data with another 9,052-byte fingerprint template data.
Parameter newLevel – specify the value of the level shown in Table 3 above.
References 5.7 Security Level Setting
PutSecurityLevel9052vs9052
Prototype void PutSecurityLevel9052vs9052(short newLevel)
Description This function is used to set up the security level when matching two 9,052-byte fingerprint template data.
Parameter newLevel – specify the value of the level shown in Table 3 above.
References 5.7 Security Level Setting
GetSecurityLevel404vs404
Prototype short GetSecurityLevel404vs404()
Description Returns the value of the security level set using PutSecurityLevel404vs404 function (or the default value – currently 4)
Return The returned value becomes one of the level values illustrated in Table 3 above.
References 5.7 Security Level Setting
![Page 19: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/19.jpg)
IBSDK Programmer’s Guide for Windows
Page 19
GetSecurityLevel404vs9052
Prototype short GetSecurityLevel404vs9052()
Description Returns the value of the security level set using PutSecurityLevel404vs9052 function (or the default value – currently 4)
Return The returned value becomes one of the level values illustrated in Table 3 above.
References 5.7 Security Level Setting
GetSecurityLevel9052vs9052
Prototype short GetSecurityLevel9052vs9052()
Description Returns the value of the security level set up using PutSecurityLevel9052vs9052 Function
Return The returned value becomes one of the level values illustrated in Table 3 above.
References 5.7 Security Level Setting
PutIndexingLevel
Prototype void PutIndexingLevel(short nLevel)
Description When you have a match with the #2 fingerprint template, the indexing level should be used.
Parameter nLevel – specify the value of the level shown in Table 5 above.
References 5.7.1 Index Level Setting
GetIndexingLevel
Prototype short GetIndexingLevel()
Description Returns the indexing level value that is set by PutIndexing Level function.
Return The returned value becomes one of the level values illustrated in Table 5 above.
References 5.7.1 Index Level Setting
![Page 20: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/20.jpg)
IBSDK Programmer’s Guide for Windows
Page 20
2.1.3. Example of Internal Algorithm Setting Functions
CString CCOMSampleDlg::ExcuteOtherFunctions()
{ CString szInfo; char szVersion[1024]; char szUSBkey[20];
short nImgWsize,nImgHsize,nFeatureSize;
short SecurityLevel9052 = 4,SecurityLevel404 = 4;
long lImgSize;
unsigned long lUSBkey;
unsigned char USBkey[4]={0};
nImgWsize=ImageWidth(); // Get Image Width
nImgHsize=ImageHeight(); // Get Image Height
lImgSize=ImageSize(); // Get Image Size
nFeatureSize=GetFeatureSize(); // Get Feature Size
strcpy (szVersion, GetSDKVersion()); // Get SDK Version Info
lUSBkey=GetUSBKey(); // Get USB Key Value
PutSecurityLevel9052vs9052(SecurityLevel9052);
// Set 9052 Security Level
PutSecurityLevel404vs404(SecurityLevel404);
// Set 404 Security Level
SecurityLevel9052 = GetSecurityLevel9052vs9052();
// View 9052 Security Level
SecurityLevel404 = GetSecurityLevel404vs404();
// View 404 Security Level
memcpy(USBkey,&lUSBkey,4);
sprintf(szUSBkey,"%x,%x,%x,%x",USBkey[0],
USBkey[1],USBkey[2],USBkey[3]);
szInfo.Format("W:%dxH:%d=%d\nFeature:%d\nUSBKey:%s=%u\Version:\n%s
\n\nSecurityLevel9052=%d\nSecurityLevel404=%d\nSecurityLevel9052=%d\nSecurityLevel404=%d", nImgWsize, nImgHsize, lImgSize, nFeatureSize, szUSBkey, lUSBkey, szVersion, SecurityLevel9052,
SecurityLevel404); return szInfo;
}
![Page 21: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/21.jpg)
IBSDK Programmer’s Guide for Windows
Page 21
Figure 4
2.1.4. Fingerprint Acquisition Order
If you want to acquire fingerprints through DLL Interface, you must call upon the aforementioned functions in the following order:
Return > 0 Device Online
Return > 1 (Good Print)
Return > 0 Device Online
Return > 1 (Good Print)
GetDeviceStatus()
PutSecurityLevel()
START
Return <= 1 (No/Bad Scan)
Return <= 0 (Device not ready)
OpenNetAccessDevice() or OpenNetAccessDeviceByUSN()
CloseNetAccessDevice()
END
ControlTOUCH() (Auto On feature)
GetNetAccessImage
()
ControlLED() – Prompt to scan finger.
ControlLED() – Prompt to remove finger.
![Page 22: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/22.jpg)
IBSDK Programmer’s Guide for Windows
Page 22
2.1.5. Size of Fingerprint Image (Width & Height)
NOTE: The following is left in place for instructional purposes, but functionality is now available through the DLL as the functions InvertImage() and RotateImage().
The Fingerprint USB Scanner produces an image size of 352 ⅹ 288 pixels, having a width of 352 pixels and length of 288 pixels. Note: the original image output is has an orientation that is 90º clockwise from finger placement in the scanner platen (see Figure 5).
The sample program above will produce a fingerprint image 288 pixels wide and 352 pixels in height. Please refer to the Make288x352ImgFunction as follows.
Figure 5
![Page 23: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/23.jpg)
IBSDK Programmer’s Guide for Windows
Page 23
Example
The following code example will display an image vertically, such that you do not have to rotate the image every time. Keep in mind that, when extracting a feature template of the fingerprint, you must insert the raw image produced by the GetNetAccessImage() function into ExtractFeature() function as a parameter.
The next function rotates the raw image with a width of 352 pixels and length of 288 pixels counterclockwise to make a 24-bit bitmap image (excluding the bitmap header) with a width of 288 pixels and length of 352 pixels. However, the image has been flipped horizontally once to have a Device Independent Bitmap (DIB) structure (not included in BioNetAcsCOM.dll or BioNetAcsDLL.dll).
BOOL Make288x352Img(unsigned char *p352x288Img, LPSTR lp288x352Img)
{
int x, y;
BYTE result;
if(!lp288x352Img) return(FALSE);
for(x=0; x<352 ; x++)
{ for(y=287 ; y>=0 ; y--)
{result = *(p352x288Img + 352*y +x);
//result = ~result; // background color is white.
* lp288x352Img ++ = result;
* lp288x352Img ++ = result;
* lp288x352Img ++ = result;
}
}
return(TRUE);
}
![Page 24: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/24.jpg)
IBSDK Programmer’s Guide for Windows
Page 24
2.1.6. Fingerprint Acquisition Related Functions
Here is a table enumerating all of the Get and Set functions:
Functions
short OpenNetAccessDevice() short OpenNetAccessDeviceByUSN(char *pUSN) short CloseNetAccessDevice() short GetNetAccessImage(unsigned char *pSourceImg)
short GetDeviceStatus()
short ControlLED(unsigned char R, unsigned char G, unsigned char B)
short ControlTOUCH(unsigned char OnOff)
int IB_comp_nfiq(char *pSourceImg, char *pOnfiq)
int IB_WSQCompressImage(char *pSourceImg, char *pCompressed)
int IB_WSQExpandImage( [in] char *pCompressed, [in] int ImgLength, [out] char *pExpandedImg)
void Extract404From9456Template([in] char *p9456, [out] char *p404)
void InvertImage(char *pImage)
void RotateImage(char *pInImage, char *pOutImage, char invert)
void EnhanceImage(char *pInImage, char *pOutImage)
Table 7 Below we provide a description of each function.
OpenNetAccessDevice
Prototype short OpenNetAccessDevice()
Description This is an initialization function for starting the default USB fingerprint scanner
Return Returns 1 for success, 0 for fail.
OpenNetAccessDeviceByUSN
Prototype short OpenNetAccessDeviceByUSN(char *pUSN)
![Page 25: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/25.jpg)
IBSDK Programmer’s Guide for Windows
Page 25
Description This is an initialization function for starting a particular USB fingerprint scanner that is specified by serial number (USN).
Return Returns 1 for success, 0 for fail.
CloseNetAccessDevice
Prototype short CloseNetAccessDevice()
Description If not using the device handle opened by OpenNetAccessDevice()Function any longer, you should remove the device handle using this function. ALWAYS run this function when all programming related to the device is concluded.
Return Returns 1 for success, 0 for fail.
GetNetAccessImage
Prototype short GetNetAccessImage(unsigned char *pSourceImg)
Description This is the function used to obtain fingerprints at the Fingerprint USB Scanner. If you insert the pointer of the image data (352x288) to become a parameter, this function will return the value of the image status.
Parameter pSourceImg - To obtain fingerprint image data. An image data pointer with a size of 352x288 bytes and black background color. A feature must be extracted with the pSourceImg data after running this function. Example: GetImageStatus(pImgData) ExtractFeature(pImgData , pFeatData)
Return -1 The Fingerprint USB Scanner is not connected (disconnected). 0 The finger is not touching the sensor. 1 The finger is touching the sensor, but the image is not good (do not
use this image). 2, 3, or 4 The finger is touching the sensor, and the image is good. The higher
the value, the better the quality.
GetDeviceStatus
Prototype short GetDeviceStatus()
Description Returns the connection status between the Fingerprint USB Scanner and host system.
Return Returns 1 if the Fingerprint USB Scanner is connected; returns 0 otherwise.
![Page 26: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/26.jpg)
IBSDK Programmer’s Guide for Windows
Page 26
ControlLED
Prototype short ControlLED (unsigned char R, unsigned char G, unsigned char B)
Description You can control LED to ON or OFF on the Fingerprint USB Scanner.
Parameter R = 1 RED LED turns on. R = 0 RED LED turns off. G = 1 GREEN LED turns on. G = 0 GREEN LED turns off. B = 1 BLUE LED turns on. B = 0 BLUE LED turns off.
Return Returns 1 for success, 0 for fail.
ControlTOUCH
Prototype short ControlTOUCH(unsigned char TOUCH_ONOFF)
Description You can control touch sensor to ON or OFF on the Fingerprint USB Scanner.
Parameter TOUCH_ONOFF = 1 Touch sensor on. TOUCH_ONOFF = 0 Touch sensor off.
Return Returns 1 for success, 0 for fail.
IB_comp_nfiq
Prototype int IB_comp_nfiq(char *pSourceImg, char *pOnfiq)
Description Calculates an NFIQ image quality score for a given image.
Parameter pSourceImg A data pointer to the fingerprint image to be evaluated. Onfiq A secondary scoring value using an alternate calculation.
Return Returns 1, 2, 3, 4, or 5 for a successfully calculated NFIQ Quality Score. Returns 0 for failure to evaluate image. But a secondary scoring may be available in pOnfig.
IB_WSQCompressImage
Prototype int IB_WSQCompressImage(char *pSourceImg, char *pCompressed)
![Page 27: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/27.jpg)
IBSDK Programmer’s Guide for Windows
Page 27
Description Performs WSQ compression on an image.
Parameter pSourceImg A data pointer to the fingerprint image to be compressed. pCompressed A pointer to the WSQ compressed byte array.
Return Returns a non-zero integer for the length of the compressed value; returns 0 for failure.
IB_WSQExpandImage
Prototype int IB_WSQExpandImage([in] char *pCompressed, [in] int ImgLength, [out] char *pExpandedImg)
Description Uncompresses an image in WSQ format.
Parameter pCompressed A data pointer to the WSQ compressed image to be expanded. ImgLength Length of the WSQ byte array to be expanded. pExpandedImg A pointer to the newly expanded image array.
Return Returns a non-zero integer for the length of the expanded image.; returns 0 for failure.
Extract404From9456Template
Prototype void Extract404From9456Template([in] char *p9456, [out] char *p404)
Description Extracts the 404 byte array (making up the 404 template) from a full-sized template.
Parameter p9456 A data pointer to the full-sized template. p404 A pointer to the newly extracted 404-byte template.
InvertImage
Prototype void InvertImage(char *pImage)
Description Built-in helper function to turn the black background image into a more standard white background image.
Parameter pImage A data pointer to the image to be inverted.
![Page 28: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/28.jpg)
IBSDK Programmer’s Guide for Windows
Page 28
RotateImage
Prototype void RotateImage([in] char *pInImage, [out] char *pOutImage, char invert)
Description Built-in helper function to rotate (and invert) an image into a more standard orientation (and with a white background). The rotation is 90 degrees counter-clockwise.
Parameter pInImage A data pointer to the original image to be modified. pOutImage A data pointer to the returned rotated (and inverted) image.
invert 0 value does not change original colors, 1 inverts.
EnhanceImage
Prototype void EnhanceImage(char *pInImage, char *pOutImage)
Description Helper function that calls an IB enhanced image function. It typically makes light images darker, but also increases the contrast between the light and dark areas.
Parameter pInImage A data pointer to the original image to be modified. pOutImage A data pointer to the returned rotated (and inverted) image.
![Page 29: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/29.jpg)
IBSDK Programmer’s Guide for Windows
Page 29
Figure 6
2.1.7. Fingerprint Matching Process Flow
START
End (Match)
AlgoInit()
ExtractFt(Image1,
Feature1)
Return > 0 ; Extraction Success
1
ExtractFt(Image2, Feature2) or pull enrolled feature template from a data
CompareFt9052vs9052 (Feature1, Feature2)
Return > 0; Extraction Success
End (No Match) End (Image Error)
Return > Matching Score Threshold
Return <= Matching Score Threshold
Return <= 0 (Extraction Error)
2
source.
![Page 30: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/30.jpg)
IBSDK Programmer’s Guide for Windows
Page 30
2.1.8. Fingerprint Enrollment Process Flow
Figure 7
START
End (Success)
AlgoInit()
ExtractFt(Image,
Feature)
Return > 0 Extraction Success In
EnrollSingleTemplate (Image1,Image2,Image3,
Feat1,Feat2,Feat3,
ResultFeatureTemplate)
Good Image Count = 3 Extraction Success
End (Failure)
Capture 3 Good Images (see Fingerprint Acquisition Order Flowchart)
Increment Good Image Count
Return <= 0 (Extraction Error)
Good Image Count < 3
Return > 0 Extraction Success In
Return <= 0 (Extraction Error)
![Page 31: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/31.jpg)
IBSDK Programmer’s Guide for Windows
Page 31
2.2 Fingerprint Template Generation and Matching
Here is a table enumerating all of the Get and Set functions:
C dll Function
short AlgoInit() short ExtractFt(unsigned char * pImg, unsigned char *pFp) long CompareFt404vs404( unsigned char* pOne404 , unsigned char* pTwo404) long CompareFt404vs9052( unsigned char* pOne404 , unsigned char* pTwo9052) long CompareFt9052vs9052( unsigned char* pOne9052 , unsigned char* pTwo9052) short Enroll_SingleTemplate( unsigned char Img1[], unsigned char Img2[], unsigned char Img3[], unsigned char Fea1[], unsigned char Fea2[], unsigned char Fea3[], unsigned char ResultTemplate[])
Table 8 Below we provide a description of each function.
AlgoInit
Prototype short AlgoInit()
Description The AlgoInit function allocates memory necessary for the live image template feature data extraction and matching process. This function call is only required at the beginning of the fingerprint extracting & matching process.
Parameter pCompressed A data pointer to the WSQ compressed image to be expanded. ImgLength Length of the WSQ byte array to be expanded. pExpandedImg A pointer to the newly expanded image array.
Return Returns 1 for success, 0 for fail.
![Page 32: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/32.jpg)
IBSDK Programmer’s Guide for Windows
Page 32
ExtractFt
Prototype short ExtractFt(unsigned char * pImg, unsigned char *pFp)
Description This is the function that extracts the feature data using our fingerprint matching algorithm on the 352x288 fingerprint image.
Parameter pImg A fingerprint image data pointer with a 352ⅹ288 size and black background color to extract the feature data (see 2.3.5 GetImageStatus Parameter)
pFp Buffer with 9,456-byte memory
Return Returns 1 for success, 0 for fail, < 0 for access violation at address
CompareFt404vs404
Prototype long CompareFt404vs404(unsigned char* pOne404 , unsigned char* pTwo404)
Description This is a function that performs the matching between two 404-byte fingerprint feature data, and returns the matching score value afterwards.
Parameter pOne404 404-byte Fingerprint Feature Data pTwo404 404-byte Fingerprint Feature Data
Return Returns 1 for successful authorization, 0 for failure, -1 for access violation at address, -2 for minimum feature num error, -3 for invalid feature, -4 for other failure
CompareFt404vs9052
Prototype long CompareFt404vs9052(unsigned char* pOne404 , unsigned char* pTwo9052)
Description This is a function that performs the matching between one 404-byte fingerprint feature data and another 9,052-byte fingerprint feature data, and returns the matching score value afterwards.
Parameter pOne404 404-byte Fingerprint Feature Data pTwo9052 9052- or 9456-byte Fingerprint Feature Data
Return Returns > 0 for successful authorization, 0 for failure, -1 for access violation at address, -2 for minimum feature num error, -3 for invalid feature, -4 for other failure
![Page 33: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/33.jpg)
IBSDK Programmer’s Guide for Windows
Page 33
CompareFt9052vs9052
Prototype long CompareFt9052vs9052(unsigned char* pOne9052, unsigned char* pTwo9052)
Description This is a function that performs the matching between one 404-byte fingerprint feature data and another 9,052-byte fingerprint feature data, and returns the matching score value afterwards.
Parameter pOne404 404-byte Fingerprint Feature Data pTwo9052 9052- or 9456-byte Fingerprint Feature Data
Return Returns > 0 for successful authorization, 0 for failure, -1 for access violation at address, -2 for minimum feature num error, -3 for invalid feature, -4 for other failure
![Page 34: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/34.jpg)
IBSDK Programmer’s Guide for Windows
Page 34
Enroll_SingleTemplate
Prototype short Enroll_SingleTemplate(unsigned char Img1[], unsigned char Img2[], unsigned char Img3[], unsigned char Fea1[], unsigned char Fea2[], unsigned char Fea3[], unsigned char ResultTemplate[])
Description This is a function is used for template generation during enrollment. It requires three fingerprint images (byte array), and four 9,456-byte fingerprint feature data arrays (three for each individual image template and one for a composite template). The function returns three types of values: successful registration, failed registration, and bifurcation caused by multiple feature registrations. If the registration was successful, the fingerprint feature data 1, 2 and 3 are integrated to produce an optimal feature dataset returned through the ResultTemplate parameter. Individual templates are captured in Fea1, Fea2 and Fea3, but are rarely kept as permanent data.
Parameter Img1 The 1st fingerprint image data pointer is 352x288 in size and has a black background color to extract the feature data (see 2.3.5 GetImageStatus Parameter)
Img2 The 2nd fingerprint image data pointer is 352x288 in size and has a black background color to extract the feature data (see 2.3.5 GetImageStatus Parameter)
Img3 The 3rd fingerprint image data pointer is 352x288 in size and has a black background color to extract the feature data (see 2.3.5 GetImageStatus Parameter)
Fea1 Buffer with 9,456-byte memory making pImage1 and Img1 a pair Fea2 Buffer with 9,456-byte memory making pImage1 and Img2 a pair Fea3 Buffer with 9,456-byte memory making pImage1 and Img3 a pair
ResultTemplate Buffer with 9,456-byte memory to save the registration results
Return 1 Successfully registered by supplementing the information on the 2nd and 3rd fingerprints based on the 1st fingerprint image.
2 Successfully registered by supplementing the information on the 1st and 3rd fingerprints based on the 2nd fingerprint image.
3 Successfully registered by supplementing the information on the 1st and 2nd fingerprints based on the 3rd fingerprint image.
0 Failed to register -1 Error condition. No template made (retry).
References See 6.1.8 Fingerprint Registration Algorithm Execution Order
![Page 35: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/35.jpg)
IBSDK Programmer’s Guide for Windows
Page 35
3 Programming
3.1 Visual C++ 6.0
To do Visuall C++ developerment, start by copying the BioNetAcsDLL.lib and BioNetAcsDLL.dll inside the Lib of IBISDK, and paste them to the working path. Statically load the algorithm library as shown in Figure 8.
Also, copy BioNetAcsDll.h inside the Lib of IBISDK, and paste it to the working path. Include the BioNetAcsDll.h file, which is the prototype of the functions declared in BioNetAcsDll.lib.
#include “BioNetAcsDll.h”
Example of Function Application m_nImageSize = GetImgSize(); m_nImageYsize = GetImgHeight(); m_nImageXsize = GetImgWidth();
Figure 8
![Page 36: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/36.jpg)
IBSDK Programmer’s Guide for Windows
Page 36
![Page 37: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/37.jpg)
IBSDK Programmer’s Guide for Windows
Page 37
3.2 64-Bit application development for Visual C++
3.2.1. 64-Bit development overview
32-bit Biometric applications run properly on an AMD 64-bit Windows computer that has WOW64 enabled. We recommend this method because the installation procedures are simpler, and the 32-bit executables are smaller and faster. However, special cases require 64 bit software development:
• Running on systems without WOW64
• Very large application memory requirements
3.2.2. 64-Bit development procedure
Copy the files BioNetAcsDLL.lib and BioNetAcsDLL.dll from the Lib\Lib64 folder of IBISDK, and paste them to the working path. Reference the algorithm library from project settings as shown in Figure 8.
Figure 9
![Page 38: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/38.jpg)
IBSDK Programmer’s Guide for Windows
Page 38
Copy BioNetAcsDll.h from the Lib\Lib64 folder of IBISDK and paste it to the working path. Include the BioNetAcsDll.h, which is the prototype of the functions declared in BioNetAcsDll.lib. Figure 9 shows the project properties page once the reference has been added.
Note: The header file BioNetAcsDll.h is the same for both 32-bit and 64-bit development.
![Page 39: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/39.jpg)
IBSDK Programmer’s Guide for Windows
Page 39
Microsoft Visual Basic 6.0
3.2.3. DLL Declaration
DLL file : BioNetAcsDll.dll
File path : Locate DLL file in Visual Basic folder or system file folder.
Declare at common module (Global Module):
Public Declare Function GetSDKVersion Lib "BioNetAcsDll.dll" (ByRef lbyte_ver As Byte) As Integer Public Declare Function GetImgWidth Lib "BioNetAcsDll.dll" () As Integer … Public Declare Function GetNetAccessImage Lib "BioNetAcsDll.dll" (ByRef lbyte_img As Byte) As Integer
3.2.4. Utilizing DLL function
Here’s an example:
On Error GoTo err_label
Dim ls_str As String
Dim lbyte_usn() As Byte
ReDim lbyte_usn(0 To 100) As Byte
Dim ii_ret As Integer
ii_ret = GetUSN(lbyte_usn(0)) ‘ DLL function
For i = 0 To 100
If lbyte_usn(i) = 0 Then Exit For
ls_str = ls_str + Chr(lbyte_usn(i))
Next
Text2.Text = Trim(ls_str)
Exit Sub
err_label:
MsgBox Str(Err.Number) + vbCrLf + Err.Description
![Page 40: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/40.jpg)
IBSDK Programmer’s Guide for Windows
Page 40
Microsoft .NET (Both C# and Visual Basic .NET)
3.2.5. DLL Declaration
DLL file : BioNetAcsDll.dll
Procedure: simply copy the DLL file to the BIN \ Debug and Release folders in the solution.
3.2.6. Calling the SDK functions
Add the file BioNetACSDLL.cs from the sample C# project, then call the public functions. Optionally, also use the component iBioNetACS.cs from the C# sample program. This component implements the multiple-finger enrollment template.
3.2.7. Developing .NET applications for 64-bit Windows
Change the file BioNetACSDLL.cs from the sample C# project to reference BioNetACS64.dll, then call the public functions. Be sure to set a target CPU of x64 from Build / Configuration manager, and select ‘x64’ as the target platform.
Using WOW64
Applications developed with the BioNetAcs.Dll interface will run on 64-bit Windows under .NET as 32-bit runtimes under WOW64, but with the restriction that the module that calls the BioNetAcs.Dll functions must be designated for 32-bit code. The default setting of “Any CPU” for .NET projects will result in a “Just In Time” compile of 64-bit code at run time. This will fail to load the 32-bit DLL. However, if the .NET code targets the ‘x86’ CPU, the resulting 32-bit “Just In Time” runtime code will correctly load the BionetAcs.Dll code.
Set the ‘x86’ target from Build / Configuration manager, and select ‘x86’ as the target platform.
Applications developed with these settings will run on both 32-bit systems and AMD64 systems with WOW64 enabled.
![Page 41: IBSDK Programmers Guide for Windowsjournoportfolio.s3-website-eu-west-1.amazonaws.com/... · IBSDK&Programmer’s&Guide&for&Windows& Page 4 1 Introduction 1.1 Overview The IBISDK](https://reader030.fdocuments.in/reader030/viewer/2022040608/5ec938a2fa05e1222e4a3f33/html5/thumbnails/41.jpg)
© 2012 Integrated Biometrics LLC.
Integrated Biometrics LLC.
121 Broadcast Drive
Spartanburg SC 29303
phone: (864) 990-3711
toll free: (888) 840-8034
fax: (864) 631-1719
http://www.integratedbiometrics.com