UniFinger Engine SFR300 SDK Reference Manual

Similar documents
UniFinger SFM series. Application Notes [ Fingerprint enrollment using SFR SDK ] Version by Suprema Inc.

UniFinger Engine SDK Reference Manual Version 3.0.0

AET60 BioCARDKey. Application Programming Interface. Subject to change without prior notice

AET60 API version 1.4 February Introduction...3 Features...3 Application Programming Interface...4

int fnvgetconfig(handle h, UINT32 id, const void *cfg, size_t sz);... 4

BioLite Net. Firmware Revision Notes EN BLN V1.43. Biometrics & Security. Version 1.43

BioMini Installation Guide (Version 1.4)

IDKit - Fingerprint Identification SDK

PusleIR Multitouch Screen Software SDK Specification. Revision 4.0

a data type is Types

IBSDK Quick Start Tutorial for C# 2010

Common Misunderstandings from Exam 1 Material

Pointers (1A) Young Won Lim 11/1/17

ACCEasy SDK Programmer's Guide. Version July 2013

UniFinger SFM5060-OH

CS 261 Fall C Introduction. Variables, Memory Model, Pointers, and Debugging. Mike Lam, Professor

Understanding Pointers

SYSC 2006 C Winter 2012

Applications of Pointers (1A) Young Won Lim 12/26/17

Final CSE 131B Spring 2004

Lumidigm Frequently Asked Questions

Welcome to Lab! Feel free to get started until we start talking! The lab document is located on the course website:

(6) The specification of a name with its type in a program. (7) Some memory that holds a value of a given type.

SpiNNaker Application Programming Interface (API)

11 'e' 'x' 'e' 'm' 'p' 'l' 'i' 'f' 'i' 'e' 'd' bool equal(const unsigned char pstr[], const char *cstr) {

BioStar Integration for Nedap SETUP GUIDE. Version 1.10 English

QUIZ. 1. Explain the meaning of the angle brackets in the declaration of v below:

EL2310 Scientific Programming

Airence C Library v1.2 for Windows

Tokens, Expressions and Control Structures

COP 3223 Introduction to Programming with C - Study Union - Fall 2017

COP 3223 Introduction to Programming with C - Study Union - Fall 2017

6Using the Install and. Licensing APIs 6CHAPTER

CSCI 2212: Intermediate Programming / C Review, Chapters 10 and 11

CYSE 411/AIT681 Secure Software Engineering Topic #10. Secure Coding: Integer Security

OptimiData. JPEG2000 Software Development Kit for C/C++ Reference Manual. Version 1.6. from

2/9/18. Readings. CYSE 411/AIT681 Secure Software Engineering. Introductory Example. Secure Coding. Vulnerability. Introductory Example.

2/9/18. CYSE 411/AIT681 Secure Software Engineering. Readings. Secure Coding. This lecture: String management Pointer Subterfuge

a) Write the signed (two s complement) binary number in decimal: b) Write the unsigned binary number in hexadecimal:

CSE 12 Spring 2016 Week One, Lecture Two

Call-back API. Polyhedra Ltd

AMS0805-WAH Utility Software Guide

2017/10/11 16:45 / Quick Guide

16F Parkview Tower, Jeongja, Seongnam, Gyeonggi, , Korea T F E

HikVision Mpeg4 linux Player SDK

C Introduction. Comparison w/ Java, Memory Model, and Pointers

This is CS50. Harvard University Fall Quiz 0 Answer Key

CS16 Exam #1 7/17/ Minutes 100 Points total

Stanford University Computer Science Department CS 295 midterm. May 14, (45 points) (30 points) total

Ricardo Rocha. Department of Computer Science Faculty of Sciences University of Porto

Variables Data types Variable I/O. C introduction. Variables. Variables 1 / 14

de facto standard C library Contains a bunch of header files and APIs to do various tasks

C strings. (Reek, Ch. 9) 1 CS 3090: Safety Critical Programming in C

CpSc 101, Fall 2015 Lab7: Image File Creation

Announcements. assign0 due tonight. Labs start this week. No late submissions. Very helpful for assign1

Topic 7: Algebraic Data Types

Basic program The following is a basic program in C++; Basic C++ Source Code Compiler Object Code Linker (with libraries) Executable

Hands-On Lab. Multi-Touch WMTouch - Native. Lab version: Last updated: 12/3/2010

High Performance Computing in C and C++

Total Biometric Solution Provider

UniFinger SFM3050-TC2

Programming Fundamentals (CS 302 ) Dr. Ihsan Ullah. Lecturer Department of Computer Science & IT University of Balochistan

Assist. Prof. Dr. Caner ÖZCAN

NITGEN FIM40 Series. Datasheet FIM40N. Version Stand-Alone Fingerprint Identification Device with Built-in CPU. Standalone with built-in CPU

Crit-bit Trees. Adam Langley (Version )

Advanced Pointer Topics

Developer Documentation

Taintscope: A Checksum-Aware Directed Fuzzing Tool for Automatic Software Vulnerability Detection

Memory Allocation. General Questions

Introduction to C++ Systems Programming

Short Notes of CS201

CSC 1600 Memory Layout for Unix Processes"

CS11001/CS11002 Programming and Data Structures (PDS) (Theory: 3-1-0) Allocating Space

Pass-by-Pointer. Advanced Pointer Ideas. Pointers are also used in C to enable a function to modify a variable held by the caller:

SA30228 / CVE

NITGEN Biometric Service Provider SDK. SDK version 4.30

CS201 - Introduction to Programming Glossary By

C++ Undefined Behavior What is it, and why should I care?

CS201 Some Important Definitions

SFM6020-OP6. Datasheet. Ver Copyright 2016 by Suprema, Inc.

C++ Undefined Behavior

AVT PvAPI Programmers Reference Manual

Structures. Basics of Structures (6.1) EECS l Now struct point is a valid type. l Defining struct variables: struct point { int x; int y; };

PDF Document structure, that need for managing of PDF file. It uses in all functions from EMF2PDF SDK.

Solution printed. Do not start the test until instructed to do so! CS 2604 Data Structures Midterm Spring Instructions:

BioConnect User Enrollment Guide. Brivo OnAir Version

Dynamic Memory Allocation

Static Analysis in Practice

To specify the dimensions of the drawing canvas use the size statement: ! size( 300, 400 );

DEBUGGING: STATIC ANALYSIS

CPSC 427: Object-Oriented Programming

Developer s Guide. BlackBerry. Address Book API. Version 2.0

Barcode Scanner Library

NITGEN FIM5360. Datasheet FIM5360. Version Supported Firmware Version: 1.11 or above

CS 33. Data Representation, Part 1. CS33 Intro to Computer Systems VII 1 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Crit-bit Trees. Adam Langley (Version )

BioStation. Firmware Revision Notes EN BST V1.93. Biometrics & Security. Version 1.93

C++ Basics. Data Processing Course, I. Hrivnacova, IPN Orsay

CANopen Library User Manual

ECE551 Midterm Version 2

Transcription:

UniFinger Engine SFR300 SDK Reference Manual Version 2.5 2005 by Suprema Inc.

Contents SF_Initialize...3 SF_Uninitialize...4 SF_SetFastMode...5 SF_GetDeviceNumber...6 SF_GetDevice...7 SF_SetDevice...8 SF_GetSerial...9 SF_GetTimeout...10 SF_SetTimeout... 11 SF_GetBrightness...12 SF_SetBrightness...13 SF_GetSensitivity...14 SF_SetSensitivity...15 SF_IsSensorOn...16 SF_IsFingerOn...17 SF_Capture...18 SF_AbortCapturing...19 SF_GetImageWidth...20 SF_GetImageHeight...21 SF_GetImageBuffer...22.Reference Manual 2005 by Suprema Inc 1

SF_Clear...23 SF_Draw...24 SF_Enroll...25 SF_EnrollWithVerify...27 SF_Verify...30 SF_Identify...33 SF_IdentifyMT...36 SF_GetEnrollQuality...38 SF_AbortMatching...39 SF_RotateTemplate...40 Constant List...41 Revision Notes...42 Contact...42.Reference Manual 2005 by Suprema Inc 2

SF_Initialize The SF_Initialize function initializes the SFR300 scanner or SFR200 scanner. int SF_Initialize( void ) This function has no parameters. Nonzero if the initialization succeeds; otherwise 0..Reference Manual 2005 by Suprema Inc 3

SF_Uninitialize The SF_Uninitialize function uninitialize the SFR300 scanner or SFR200 scanner. void SF_Uninitialize( void ) This function has no parameters. This function has no return values..reference Manual 2005 by Suprema Inc 4

SF_SetFastMode The SF_SetFatMode function is to enable or disable the fast mode. The fast mode is used to accelerate the speed of 1:N matching in a little sacrifice of recognition accuracy. int SF_SetFastMode(int Mode) Mode SF_NORMAL_MODE : set normal mode (default mode) SF_FAST_MODE : set fast mode If error is occurred, return -1..Reference Manual 2005 by Suprema Inc 5

SF_GetDeviceNumber The SF_GetDeviceNumber function returns the number of SFR300 scanner or SFR200 scanner attached to the system. int SF_GetDeviceNumber( void ) This function has no parameters. Number of SFR300 scanner or SFR200 scanner attached to the system..reference Manual 2005 by Suprema Inc 6

SF_GetDevice The SF_GetDevice function gets index of SFR300 scanner or SFR200 scanner which is currently selected. int SF_GetDevice( void ) This function has no parameters. Zero-based index of SFR300 scanner or SFR200 scanner which is currently selected..reference Manual 2005 by Suprema Inc 7

SF_SetDevice The SF_SetDevice function selects SFR300 scanner or SFR200 scanner. int SF_SetDevice( int Device ) Device Index of SFR300 scanner or SFR200 scanner being selected. It can be from 0 to number of SFR300 scanner or SFR200 scanner 1. Nonzero if selection of SFR300 scanner or SFR200 scanner succeeds; otherwise 0..Reference Manual 2005 by Suprema Inc 8

SF_GetSerial The SF_GetSerial function gets serial number of SFR300 scanner or SFR200 scanner which is currently selected. int SF_GetSerial( unsigned char* Serial ) Serial 32 bytes-long buffer where serial number is returned. Nonzero if serial number is read successfully; otherwise 0..Reference Manual 2005 by Suprema Inc 9

SF_GetTimeout The SF_GetTimeout function gets timeout for SFR300 scanner or SFR200 scanner to wait finger. int SF_GetTimeout( void ) This function has no parameters. Timeout value in milli-second.reference Manual 2005 by Suprema Inc 10

SF_SetTimeout The SF_SetTimeout function sets timeout for SFR300 scanner or SFR200 scanner to wait finger. int SF_SetTimeout( int Timeout ) Timeout Timeout value in milli-second. In case timeout is not needed, it can be 0. Nonzero if setting of timeout succeeds; otherwise 0..Reference Manual 2005 by Suprema Inc 11

SF_GetBrightness The SF_GetBrightness function gets brightness for SFR300 scanner or SFR200 scanner device. int SF_GetTimeout( void ) This function has no parameters. Brightness value which is from 0 to 255. Higher value means darker image. Default value is 100..Reference Manual 2005 by Suprema Inc 12

SF_SetBrightness The SF_SetBrightness function sets brightness for SFR300 scanner or SFR200 scanner. int SF_SetBritheness( int Brightness ) Brightness Brightness value which is from 0 to 255. Higher value means darker image. Default value is 100. Nonzero if setting of brightness succeeds; otherwise 0..Reference Manual 2005 by Suprema Inc 13

SF_GetSensitivity The SF_GetSensitivity function gets sensitivity for SFR300 scanner or SFR200 scanner. int SF_GetSensitivity( void ) This function has no parameters. Sensitivity value which is from 0 to 7. Higher value means more sensitive. Default value is 4..Reference Manual 2005 by Suprema Inc 14

SF_SetSensitivity The SF_SetSensitivity function sets sensitivity for SFR300 scanner or SFR200 scanner. int SF_SetSensitivity( int Sensitivity ) Sensitivity Sensitivity value which is from 0 to 7. Higher value means more sensitive. Default value is 4. Nonzero if setting of sensitivity succeeds; otherwise 0..Reference Manual 2005 by Suprema Inc 15

SF_IsSensorOn The SF_IsSensorOn function determines whether a SFR300 scanner or SFR200 scanner is attached or not. int SF_IsSensorOn( void ) This function has no parameters. Nonzero if a SFR300 scanner or SFR200 scanner is attached; otherwise 0..Reference Manual 2005 by Suprema Inc 16

SF_IsFingerOn The SF_IsFingerOn function determines whether a finger is on the SFR300 scanner or SFR200 scanner or not. int SF_IsFingerOn( void ) This function has no parameters. Nonzero if a finger is on the SFR300 scanner or SFR200 scanner; otherwise 0..Reference Manual 2005 by Suprema Inc 17

SF_Capture The SF_Capture function acquires an image from the SFR300 scanner or SFR200 scanner. int SF_Capture( void ) This function has no parameters. Nonzero if the acquisition of an image succeeds; otherwise 0..Reference Manual 2005 by Suprema Inc 18

SF_AbortCapturing The SF_AbortCapturing function aborts SFR300 scanner or SFR200 scanner to wait for finger. void SF_AbortCapturing( void ) This function has no parameters. This function has no return values..reference Manual 2005 by Suprema Inc 19

SF_GetImageWidth The SF_GetImageWidth function returns width of fingerprint image. int SF_GetImageWidth( void ) This function has no parameters. Width of fingerprint image. Remarks Before the SF_GetImageWidth function is called, the SF_Capture function should be called to acquire a fingerprint image..reference Manual 2005 by Suprema Inc 20

SF_GetImageHeight The SF_GetImageHeight function returns height of fingerprint image. int SF_GetImageHeight( void ) This function has no parameters. Height of fingerprint image. Remarks Before the SF_GetImageHeight function is called, the SF_Capture function should be called to acquire a fingerprint image..reference Manual 2005 by Suprema Inc 21

SF_GetImageBuffer The SF_GetImageBuffer function returns a pointer to the buffer for fingerprint image. unsigned char* SF_GetImageBuffer( void ) This function has no parameters. A pointer to the buffer for fingerprint image. Remarks Before the SF_GetImageBuffer function is called, the SF_Capture function should be called to acquire a fingerprint image. Example int Width, Height; unsigned char* Buffer; if (!SF_Capture() ) { return; // Error: The acquisition of an image fails. Width = SF_GetImageWidth(); Height = SF_GetImageHeight(); Buffer = ( unsigned char* ) malloc( Width * Height ); memcpy( Buffer, SF_GetImageBuffer(), Width * Height );.Reference Manual 2005 by Suprema Inc 22

SF_Clear The SF_Clear function clears the fingerprint image. void SF_Clear( void ) This function has no parameters. This function has no return values..reference Manual 2005 by Suprema Inc 23

SF_Draw The SF_Draw function draws the fingerprint image which is acquired using the SF_Capture function. void SF_Draw( HWND hwnd, int l, int t, int r, int b, int bcore ) hwnd Handle to the window where the fingerprint image is drawn. l Specifies the logical x-coordinate of the upper-left corner of the rectangle. t Specifies the logical y-coordinate of the upper-left corner of the rectangle. r Specifies the logical x-coordinate of the lower-right corner of the rectangle. b Specifies the logical y-coordinate of the lower-right corner of the rectangle. bcore Specifies whether the core of fingerprint is drawn of not. This function has no return values. Remarks The core of fingerprint can be drawn in proper position, only after the SF_Enroll, SF_EnrollWithVerify, SF_Verify, or SF_Identify function is called..reference Manual 2005 by Suprema Inc 24

SF_Enroll The SF_Enroll function yields the template of fingerprint from the fingerprint image which is acquired using the SF_Capture function. int SF_Enroll( unsigned char* Template, int* TemplateSize, int bcoredetect ) Template A pointer to the buffer that stores the template of fingerprint. SF_TEMPLATESIZE bytes should be allocated to this buffer at least. TemplateSize A pointer to the integer variable that contains the size of template. If the exact size of template is not needed, TemplateSize can be NULL. bcoredetect Specifies whether the core of fingerprint is detected for enrollment. If bcoredetect is TRUE, the enrollment succeeds only when the core of fingerprint is detected in the center of SFR300 scanner or SFR200 scanner. If bcoredetect is FALSE, the enrollment succeeds as long as the fingerprint image is good enough. SF_SUCCESS The enrollment succeeds. SF_NOTGOODIMAGE The fingerprint image is not good enough for enrollment. The following return values are available only if bcoredetect is TRUE. SF_CORETOCENTER The core of fingerprint is not detected. SF_CORETOLEFT SF_CORETORIGHT SF_CORETOTOP SF_CORETOBOTTOM The core of fingerprint is detected, but should be placed in the center of SFR300 scanner or.reference Manual 2005 by Suprema Inc 25

SFR200 scanner. The return values can be two combinations of these 4 values. Remarks Before the SF_Enroll function is called, the SF_Capture function should be called to acquire a fingerprint image to be enrolled. Example int ret; unsigned char m_enrolltemplate[ SF_TEMPLATESIZE ]; while ( 1 ) { if (!SF_Capture() ) { return; // Error: The acquisition of an image fails. ret = SF_Enroll( m_enrolltemplate, NULL, TRUE ); if ( ret == SF_SUCCESS ) { break; // Enrollment succeeds. if ( ret == SF_NOTGOODIMAGE ) { // Warning: The fingerprint image is not good enough for enrollment. else { // Warning: The core of fingerprint should be placed in the center of SFR300 scanner or SFR200 scanner..reference Manual 2005 by Suprema Inc 26

SF_EnrollWithVerify The SF_EnrollWithVerify function yields the template of fingerprint using both the fingerprint image which is acquired using the SF_Capture function and the template of fingerprint enrolled formerly using the SF_Enroll function. int SF_EnrollWithVerify( unsigned char* Template, int* TemplateSize, int bcoredetect ) Template A pointer to the buffer that stores the template of fingerprint enrolled formerly. The new template of fingerprint is also stored in this buffer. SF_TEMPLATESIZE bytes should be allocated to this buffer at least. TemplateSize A pointer to the integer variable that contains the size of template. If the exact size of template is not needed, TemplateSize can be NULL. bcoredetect Specifies whether the core of fingerprint is detected for enrollment. If bcoredetect is TRUE, the enrollment succeeds only when the core of fingerprint is detected in the center of SFR300 scanner or SFR200 scanner. If bcoredetect is FALSE, the enrollment succeeds as long as the fingerprint image is good enough. SF_SUCCESS The enrollment succeeds. SF_VERIFYFAIL Two fingerprints are not matched with each other. SF_NOTGOODIMAGE The fingerprint image is not good enough for enrollment. The following return values are available only if bcoredetect is TRUE. SF_CORETOCENTER The core of fingerprint is not detected. SF_CORETOLEFT.Reference Manual 2005 by Suprema Inc 27

SF_CORETORIGHT SF_CORETOTOP SF_CORETOBOTTOM The core of fingerprint is detected, but should be placed in the center of SFR300 scanner or SFR200 scanner. The return values can be two combinations of these 4 values. Remarks This function can be used to improve the quality of an enrolled fingerprint. It is recommended that two fingerprints are acquired for enrollment. A finger should be removed on the SFR300 scanner or SFR200 scanner in between two acquisitions. If these two fingerprints match with each other, better fingerprint is finally enrolled. Before the SF_EnrollWithVerify function is called, the SF_Capture function should be called to acquire a fingerprint image to be enrolled. Example int ret; unsigned char m_enrolltemplate[ SF_TEMPLATESIZE ]; while ( 1 ) { if (!SF_Capture() ) { return; // Error: The acquisition of an image fails. ret = SF_Enroll( m_enrolltemplate, NULL, TRUE ); if ( ret == SF_SUCCESS ) { break; // 1 st enrollment succeeds. if ( ret == SF_NOTGOODIMAGE ) { // Warning: The fingerprint image is not good enough for enrollment. else { // Warning: The core of fingerprint should be placed in the center of SFR300 scanner or SFR200 scanner. while ( SF_IsFingerOn() );// Wait until a finger is removed on the SFR300 scanner or SFR200 scanner while ( 1 ) { if (!SF_Capture() ) { return; // Error: The acquisition of an image fails. ret = SF_EnrollWithVerify( m_enrolltemplate, NULL, TRUE );.Reference Manual 2005 by Suprema Inc 28

if ( ret == SF_SUCCESS ) { break; // Enrollment succeeds. if ( ret == SF_VERIFYFAIL ) { return; // Error: Two fingerprints are not matched with each other. if ( ret == SF_NOTGOODIMAGE ) { // Warning: The fingerprint image is not good enough for enrollment. else { // Warning: The core of fingerprint should be placed in the center of SFR300 scanner or SFR200 scanner..reference Manual 2005 by Suprema Inc 29

SF_Verify The SF_Verify function verifies the fingerprint image acquired using the SF_Capture function with the template of fingerprint enrolled formerly. int SF_Verify( unsigned char* Template, int SecurityLevel, int bcoredetect ) Template A pointer to the buffer that stores the template of fingerprint enrolled formerly. SecurityLevel Specifies the level of security. This is in the range 1 to 7. If SecurityLevel is 7, the most secure verification is guaranteed. The value 4 is suitable in general case. Physical meaning of SecurityLevel is as follows. SecurityLevel False Accept Rate (FAR) 1 Below 1 % ( 1e-2 ) 2 Below 0.1 % ( 1e-3 ) 3 Below 0.01 % ( 1e-4 ) 4 Below 0.001 % ( 1e-5 ) 5 Below 0.0001 % ( 1e-6 ) 6 Below 0.00001 % ( 1e-7 ) 7 Below 0.000001 % ( 1e-8 ) bcoredetect Specifies whether the core of fingerprint is detected for verification. If bcoredetect is TRUE, the verification fails only when the core of fingerprint is not detected in the center of SFR300 scanner or SFR200 scanner. If bcoredetect is FALSE, the verification may fail as long as the fingerprint image is good enough. SF_SUCCESS The verification succeeds. SF_VERIFYFAIL The verification fails..reference Manual 2005 by Suprema Inc 30

SF_NOTGOODIMAGE The fingerprint image is not good enough for verification. The following return values are available only if bcoredetect is TRUE. SF_CORETOCENTER The core of fingerprint is not detected. SF_CORETOLEFT SF_CORETORIGHT SF_CORETOTOP SF_CORETOBOTTOM The core of fingerprint is detected, but should be placed in the center of SFR300 scanner or SFR200 scanner. The return values can be two combinations of these 4 values. Remarks Before the SF_Verify function is called, the SF_Capture function should be called to acquire a fingerprint image to be verified. This function can be used for 1:N matching as well as 1:1 matching. Example For 1:1 matching int ret; unsigned char m_enrolltemplate[ SF_TEMPLATESIZE ]; while ( 1 ) { if (!SF_Capture() ) { return; // Error: The acquisition of an image fails. ret = SF_Verify( m_enrolltemplate, 3, TRUE ); if ( ret == SF_SUCCESS ) { return; // Verification succeeds. if ( ret == SF_VERIFYFAIL ) { return; // Verification fails. if ( ret == SF_NOTGOODIMAGE ) { // Warning: The fingerprint image is not good enough for verification. else { // Warning: The core of fingerprint should be placed in the center of SFR300 scanner or.reference Manual 2005 by Suprema Inc 31

SFR200 scanner. For 1:N matching int i, ret; unsigned char m_enrolltemplatedb[ 10 ][ SF_TEMPLATESIZE ]; while ( 1 ) { if (!SF_Capture() ) { return; // Error: The acquisition of an image fails. for ( i = 0 ; i < 10 ; i++ ) { ret = SF_Verify( m_enrolltemplatedb[ i ], 3, TRUE ); if ( ret == SF_SUCCESS ) { return; // Verification succeeds. if ( ret == SF_NOTGOODIMAGE ) { break; if ( ret == SF_VERIFYFAIL ) { return; // Verification fails. if ( ret == SF_NOTGOODIMAGE ) { // Warning: The fingerprint image is not good enough for verification. else { // Warning: The core of fingerprint should be placed in the center of SFR300 scanner or SFR200 scanner..reference Manual 2005 by Suprema Inc 32

SF_Identify The SF_Identify function identifies the fingerprint image acquired using the SF_Capture function with the fingerprint templates enrolled formerly. int SF_Idenify( unsigned char** Templates, int Count, int* Match, int SecurityLevel, int bcoredetect, int Timeout ) Templates A 2-d pointer to the buffer that stores the fingerprint templates enrolled formerly. Count Specifies a number of the fingerprint templates enrolled formerly. Match A pointer to the value that stores the order of templates matched. SecurityLevel Specifies the level of security. This is in the range 1 to 7. If SecurityLevel is 7, the most secure verification is guaranteed. The value 4 is suitable in general case. Physical meaning of SecurityLevel is as follows. SecurityLevel False Accept Rate (FAR) 1 Below 1 % ( 1e-2 ) 2 Below 0.1 % ( 1e-3 ) 3 Below 0.01 % ( 1e-4 ) 4 Below 0.001 % ( 1e-5 ) 5 Below 0.0001 % ( 1e-6 ) 6 Below 0.00001 % ( 1e-7 ) 7 Below 0.000001 % ( 1e-8 ) bcoredetect Specifies whether the core of fingerprint is detected for identification. If bcoredetect is TRUE, the identification fails only when the core of fingerprint is not detected in the center of SFR300 scanner or SFR200 scanner. If bcoredetect is FALSE, the identification may fail as long as the fingerprint image is good enough. Timeout.Reference Manual 2005 by Suprema Inc 33

Specifies maximum time for matching in milliseconds. If elapsed time for matching exceeds timeout, function stops further matching and returns error code. This time is only for matching, not for extraction. If Timeout is 0, no timeout occurs. SF_SUCCESS The identification succeeds. SF_MATCHFAIL The identification fails. SF_NOTGOODIMAGE The fingerprint image is not good enough for identification. SF_MATCHTIMEOUT The elapsed time for matching exceeds specified timeout. The following return values are available only if bcoredetect is TRUE. SF_CORETOCENTER The core of fingerprint is not detected. SF_CORETOLEFT SF_CORETORIGHT SF_CORETOTOP SF_CORETOBOTTOM The core of fingerprint is detected, but should be placed in the center of SFR300 scanner or SFR200 scanner. The return values can be two combinations of these 4 values. Remarks Before the SF_Identify function is called, the SF_Capture function should be called to acquire a fingerprint image to be identified. This function can be used for fast 1:N matching. Example const int DB_SIZE = 10; unsigned char m_enrolltemplatedb[ DB_SIZE ][ SF_TEMPLATESIZE ]; int i, ret; unsigned char* Template[ DB_SIZE ]; for ( i = 0 ; i < DB_SIZE ; i++ ) { Template[ i ] = m_enrolltemplatedb[ i ]; // copy the pointer to templates.reference Manual 2005 by Suprema Inc 34

while ( 1 ) { if (!SF_Capture() ) { return; // Error: The acquisition of an image fails. if ( ( ret = SF_Identify( Template, DB_SIZE, &i, 3, TRUE, 1000 ) ) == SF_SUCCESS ) { return; // Identification succeeds at i-th template. else if ( ret == SF_MATCHFAIL ) { return; // Identification fails. else if ( ret == SF_MATCHTIMEOUT ) { return; // Identification fails within 1 second ( Timeout parameter 1000 milliseconds ). if ( ret == SF_NOTGOODIMAGE ) { // Warning: The fingerprint image is not good enough for verification. else { // Warning: The core of fingerprint should be placed in the center of SFR300 scanner or SFR200 scanner..reference Manual 2005 by Suprema Inc 35

SF_IdentifyMT The SF_IdentifyMT function identifies the fingerprint image acquired using the SF_Capture function with the fingerprint templates enrolled formerly. This function is a multi thread version of the SF_Identify int SF_IdenifyMT( unsigned char** Templates, int Count, int* Match, int SecurityLevel, int bcoredetect, int Timeout ) Templates A 2-d pointer to the buffer that stores the fingerprint templates enrolled formerly. Count Specifies a number of the fingerprint templates enrolled formerly. Match A pointer to the value that stores the order of templates matched. SecurityLevel Specifies the level of security. This is in the range 1 to 7. If SecurityLevel is 7, the most secure verification is guaranteed. The value 4 is suitable in general case. Physical meaning of SecurityLevel is as follows. SecurityLevel False Accept Rate (FAR) 1 Below 1 % ( 1e-2 ) 2 Below 0.1 % ( 1e-3 ) 3 Below 0.01 % ( 1e-4 ) 4 Below 0.001 % ( 1e-5 ) 5 Below 0.0001 % ( 1e-6 ) 6 Below 0.00001 % ( 1e-7 ) 7 Below 0.000001 % ( 1e-8 ) bcoredetect Specifies whether the core of fingerprint is detected for identification. If bcoredetect is TRUE, the identification fails only when the core of fingerprint is not detected in the center of SFR300 scanner or SFR200 scanner. If bcoredetect is FALSE, the identification may fail as long as the fingerprint image is good enough..reference Manual 2005 by Suprema Inc 36

Timeout Specifies maximum time for matching in milliseconds. If elapsed time for matching exceeds timeout, function stops further matching and returns error code. This time is only for matching, not for extraction. If Timeout is 0, no timeout occurs. SF_SUCCESS The identification succeeds. SF_MATCHFAIL The identification fails. SF_NOTGOODIMAGE The fingerprint image is not good enough for identification. SF_MATCHTIMEOUT The elapsed time for matching exceeds specified timeout. The following return values are available only if bcoredetect is TRUE. SF_CORETOCENTER The core of fingerprint is not detected. SF_CORETOLEFT SF_CORETORIGHT SF_CORETOTOP SF_CORETOBOTTOM The core of fingerprint is detected, but should be placed in the center of SFR300 scanner or SFR200 scanner. The return values can be two combinations of these 4 values. Remarks Before the SF_IdentifyMT function is called, the SF_Capture function should be called to acquire a fingerprint image to be identified. This function can be used for fast 1:N matching..reference Manual 2005 by Suprema Inc 37

SF_GetEnrollQuality The SF_GetEnrollQuality function returns quality of processed image. int SF_GetEnrollQuality( void ) This function has no parameters. Quality value which is from 1 to 100. Typically this value should be above 30 for further processing such as enroll and matching. Especially in case of enrollment, the use of good quality image ( above 50 ) is highly recommended. Remarks This function returns valid value, only after the SF_Enroll, SF_EnrollWithVerify, SF_Verify, or SF_Identify function is called..reference Manual 2005 by Suprema Inc 38

SF_AbortMatching The SF_AbortMatching function aborts matching process of The SF_Identify function. void SF_AbortMatching( void ) This function has no parameters. This function has no return values..reference Manual 2005 by Suprema Inc 39

SF_RotateTemplate The SF_RotateTemplate function rotates the template of fingerprint enrolled formerly to the amount of 180 degrees. void SF_RotateTemplate( unsigned char* Template ) Template A pointer to the buffer that stores the template of fingerprint extracted formerly. This function has no return values. Remarks The SF_RotateTemplate function can be used to support 360 degree rotational invariant matching. The SF_Verify and SF_Identify function permits 180 degree ( -90 ~ +90 degree ) rotation. Example unsigned char m_enrolltemplate[ SF_TEMPLATESIZE ]; // original enrolled template unsigned char m_rotatedtemplate[ SF_TEMPLATESIZE ]; memcpy( m_rotatedtemplate, m_enrolltemplate, SF_TEMPLATESIZE ); RotateTemplate( m_rotatedtemplate ); // For the SF_Verify function call, both m_enrolltemplate and m_rotatedtemplate should be used..reference Manual 2005 by Suprema Inc 40

Constant List Constant Name Value SF_TEMPLATESIZE 384 SF_VERIFYFAIL 0 SF_MATCHFAIL 0 SF_SUCCESS 1 SF_MATCHTIMEOUT 128 SF_MATCHABORT 129 SF_NOTGOODIMAGE 2 SF_CORETOCENTER 4 SF_CORETOLEFT 8 SF_CORETORIGHT 16 SF_CORETOTOP 32 SF_CORETOBOTTOM 64 SF_NORMAL_MODE 0 SF_FAST_MODE 1 SF_INVALID_MODE -1.Reference Manual 2005 by Suprema Inc 41

Revision Notes V2.0 2005-2-5 Created. V2.5 2006-5-3 SF_SetFastMode function is added. SF_IdentifyMT function is added. SF_GetDeviceNumber function is added. SF_GetDevice function is added. SF_SetDevice function is added. SF_GetSerial function is added. Constant List is updated. Contact Suprema Inc. Dongcheon Bldg., 13-21 Yangjae-dong, Seocho-gu, Seoul, 137-130, Korea TEL: +82-2-571-9305 FAX: +82-2-571-9306 E-mail: support@supremainc.com, sales@supremainc.com Web: www.supremainc.com.reference Manual 2005 by Suprema Inc 42