sdk程序开发手册详解_第1页
sdk程序开发手册详解_第2页
sdk程序开发手册详解_第3页
sdk程序开发手册详解_第4页
sdk程序开发手册详解_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单位电话 单位人数[[单位电话 单位人数[[[[]]]]]<1001012002015005011000互联网站 电子邮件 4、您是否愿意接收我们网站更新通[[[[]]]]请传真:0755-Email目录ZKFINGERSDK5.0程序开发手目录ZKFINGERSDK5.0程序开发手 ZKFINGER算法描 ZKFINGERSDK架 软件安 ACTIVEX控件参 属 Activeas EnrollIndexAs EnrollCountAs FPEngineVersionAS ImageHeightAS IsRegisterAs OneToOneThresholdAs RegTplFileNameAs SensorCountAs SensorIndexAS SensorSNAs ThresholdAsThresholdAs VerTplFileNameAs LastQualityAs LowestQualityAs 方 Sub Sub FunctionDongleIsExistAs FunctionDongleSeed(Byvallp2AsLong,Byvalp1,p2,p3,p4AsInteger)As FunctionDongleUserIDAs FunctionDongleMemRead(Byvalp1,p2AsInteger,buf)As FunctionDongleMemWrite(Byvalp1,p2AsInteger,buf)As Function FunctionGetFingerImage(ByvalAFingerImage)As FunctionInitEngine()As FunctionVerFinger(byvalregTemplate,verTemplate,AdoLearningAsBoolean,byvalAregFeatureChangedAsBoolean)As FunctionVerFingerFromFile(regTemplateFileAsString,verTemplateFileAsString,AdoLearningAsBoolean,byvalAregFeatureChangedAsBoolean)AsBoolean FunctionVerRegFingerFile(RegTemplateFileAsString,verTemplate,AdoLearningAsBoolean,byvalAregFeatureChangedAsBoolean)AsBoolean SubPrintImageAt(HDCAsOLE_HANDLE,XAsLong,YAsLong,aWidthAsLong,aHeightAsLong) SubPrintImageEllipseAt(HDCAsOLE_HANDLE,XAsLong,AsLong,aWidthAsLong,aHeightAsLong,bkColorAs functionEncodeTemplate(ASour,varADestAsString)As functionDecodeTemplate(constASourAsString,ADest)As EncodeTemplate1(ASour)As DecodeTemplate1(constASourAsString)As Sub Sub functionVerFingerFromStr(regTemplateStrAsString,verTemplateStrAsString,AdoLearningAsBoolean,byvalAregFeatureChangedAsBoolean)As 42.27functionControlSensor(ACodeAsLong;AValueAsLong)AsLong151:N控件接口方法 FunctionAddRegTemplateToFPCacheDB(fpcHandleAsLong,FPIDAsLong,pRegTemplate)AsLong FunctionAddRegTemplateFileToFPCacheDB(fpcHandleAsLong,FPIDAsLong,pRegTemplateFileAsString)As FunctionCreateFPCacheDBAs SubFlushFPImages FunctionIdentificationFromFileInFPCacheDB(fpcHandleAsLong,pVerTemplateFileAsString,ByvalScoreAsLong,ByvalProcessedFPNumberAsLong)AsLong FunctionIdentificationInFPCacheDB(fpcHandleAspVerTemplate,ByvalScoreAsLong,ByvalProcessedFPNumberAsLong)AsLong FunctionModifyTemplate(byvalAtemplate,AOneToOneAsBoolean)AsBoolean FunctionRemoveRegTemplateFromFPCacheDB(fpcHandleAsLong,FPIDAsLong)As Sub FunctionAddRegTemplateStrToFPCacheDB(fpcHandleAsLong,FPIDAsLong,ARegTemplateStrAsString)As FunctionIdentificationFromStrInFPCacheDB(fpcHandleAsLong,AVerTemplateStrAsString,ByvalScoreAsLong,ByvalProcessedFPNumberAsLong)As SubSetAutoIdentifyPara(AutoIdentifyAsBoolean,fpcHandleAsLong,ScoreAs 外部图象文件接口方法 FunctionAddBitmap(BitmapHandleAsOLE_HANDLE,ValidRectX1AsLong,ValidRectY1AsLong,ValidRectX2AsLong,ValidRectY2AsLong,DPIAsLong)As FunctionAddImageFile(FileNameAsString,DPIAsLong)As 扩展接口方法 FunctionCreateFPCacheDBExAs SubFreeFPCacheDBEx(fpcHandleAs FunctionAddRegTemplateStrToFPCacheDBEx(fpcHandleAsInteger,FPIDAsInteger,ARegTemplateStrAsStirng,ARegTemplate10StrAsString)AsLong FunctionAddRegTemplateToFPCacheDBEx(fpcHandleAsInteger,FPIDAsInteger,pRegTemplate,pRegTemplate10)As FunctionAddRegTemplateFileToFPCacheDBEx(fpcHandleInteger,FPIDAsInteger,pRegTemplateFileAsString,pRegTemplateFile10AsString)AsLong 4.2.49FunctionRemoveRegTemplateFromFPCacheDBEx(fpcHandleAsLong,FPIDAsLong)AsLong 4.2.49FunctionRemoveRegTemplateFromFPCacheDBEx(fpcHandleAsLong,FPIDAsLong)AsLong FunctionGetTemplateAsStringEx(AFPEngineVersionAsAs EM/Mifare卡操作方法 FunctionMF_GET_SNR(commHandleAsLong,deviceAddressAsLong,modeAsByte,rDM_haltAsByte,ByRefsnrAsByte,ByRefvalueAsByte)As Long,ByRefbufferAsByte)As FunctionMF_SetSerNum(commHandleAsLong,deviceAddressLong,ByRefnewValueAsByte,ByRefbufferAsByte)AsBoolean.4.2.55deviceAddressAsLong,ByRefversionNumAsByte)AsFunctionMF_PCDRead(commHandleAsLong,deviceAddressAsLong,modeAsByte,blkIndexAsByte,blkNumAsByte,ByRefkeyAsByte,ByRefbufferAsByte)AsBoolean FunctionMF_PCDWrite(commHandleAsLong,deviceAddressAsLong,modeAsByte,blkIndexAsByte,blkNumAsByte,ByRefkeyAsByte,ByRefbufferAsByte)As 4.3事 OnCapture(ActionResultASBoolean, OnCaptureToFile(ActionResultAS OnEnroll(ActionResultASBoolean, OnEnrollToFile(ActionResultAS 4.3.8OnFeatureInfo(AQualityAs OnImageReceived(byvalAImageValidAs 5.工作流程5.工作流程说 常见问题说 6.11:1和1:N的应 数据库中指纹模板写入和读 软件加密狗和授权许可文 1:N高速缓冲空间的使 使用平面指纹图 指纹识别阀值的设 识别中低质量指纹模板的处理方 模板操作的文件/字符串/变体变量方 ZKFINGERSDK开发许可协 8.软件售后服 1.ZKFinger算法描中控科技一直专注于指纹识别算法的研究和产业化推广,已将指纹识别系统应用到各种行业中。随着指纹识别系统越来越广泛的应用,市场对指纹识别算法的精确性,适用性和运算速度等多方面提出更高的要求。为满足这些需求,我们从低质量指纹图像的增强、指纹的特征提取、指纹图像的分类1.ZKFinger算法描中控科技一直专注于指纹识别算法的研究和产业化推广,已将指纹识别系统应用到各种行业中。随着指纹识别系统越来越广泛的应用,市场对指纹识别算法的精确性,适用性和运算速度等多方面提出更高的要求。为满足这些需求,我们从低质量指纹图像的增强、指纹的特征提取、指纹图像的分类Kiner100版高速算法。该算法在大规模的数据库上进行了严格的测试,误识率(asecceptae,R、拒识率(aeeectae,R、拒登率(oretatonae,RR10的指纹模板也同时进行了优化存储,与以前算法版本的指纹模板不兼容。您选择iner100ZKFinger算法是一种快速、准确1:11:N指纹识别算法,面向软件ZKFinger10.0/9.0算法引擎;在使ZKFinger10.0引擎进行指纹识别时,不需要对指纹通过姓名、PIN等预先分类就可以500000枚/秒(以下CPU2.6GHz+枚/秒;ZKFinger算法具有以下特点1ZKFinger像处理接口,可以支持任何扫描设备和指纹>=300DPI)Sensor(图像质2ZKFinger算法通过自适应的、适合匹配的滤镜和恰当的阀值,13360度旋转。通过使用特殊技术实现在指纹平移和360度旋转时的快速比对(3000枚/秒)ZKFingr10.0算法引擎为速度考虑,目前不支持3360度旋转。通过使用特殊技术实现在指纹平移和360度旋转时的快速比对(3000枚/秒)ZKFingr10.0算法引擎为速度考虑,目前不支持360度旋转比对功能,但支持±30度旋转4算法不需要指纹必须有全局特征点(核心点、三角等),通过局部特征点就可以完成识别5通过分类算法(指纹被分成五大类型:拱类、左环),6ZKFinger9.0350K内通过从四种Sensor(YLC,DFR200,U.ARE.U,Authentec)采集它全部2000枚指纹做比对,共进行4,000,000次比对,得到下面的测ZKFinger10.0算法引擎需要2M以上内存,模板大小在2k2模板大310or1152旋0360<=<=登记时0.5平均比对速2500枚/图像质33ZKFingerZKFingerSDK5.0(SoftwareDevelopmentKit主要ActiveX的方式存在,使用者可以使用各种开发语言(VCC++BuilderDelphi,等)来开发相对于指纹仪的应用程4SDK5FingerprintURUorZK其SDK5FingerprintURUorZK其它指纹采集OtherfingerprintDeviceActiveX控OCApplication3.在安装ZKFinger3.在安装ZKFingerSDK之前,请确定您的操作系统和计算机的软件运行的要求在进行安装之前,如果您的计算机接上了指纹采集器,最好将它拔下来1、运setup.exe。按照提示点下一步可以完成安装指纹仪驱64.ActiveX控件参ZKFingerSDK5.01:14.ActiveX控件参ZKFingerSDK5.01:11:NVB说明,其中指纹模板Variant变量代表一维字节数4.1属4.1.1Activeas当前设定的指纹采集器是否准备就4.1.2EngineValidas指纹识别系统是否正常工作。调用过函数4.1.3EnrollIndexAs后会返回有效结登记指纹时取样的序号,即表示当前手指登记已经取到的有效次数4.1.4EnrollCountAs登记指纹时取样的次数,取值范围为1、3、474.1.5FPEngineVersionAS指纹识别系统算法4.1.5FPEngineVersionAS指纹识别系统算法引擎版本号,默认为ZKFinger9.0算法引擎,其值为9”,若使用10.0算法引擎,则在调用其他函数之前首先将该属性设置为10”,然后调用InitEngine、CreateFPDBCache等函数。4.1.6ImageHeightAS指纹图像的4.1.7ImageWidthAS指纹图像的4.1.8IsRegisterAs是否正登记ZKFinger低速指1:1比对的识别阀值分数(1-100),默认值越大,误判率越低同时拒4.1.10RegTplFileNameAs设置当事件OnEnrollToFile发生时,保存指纹登记模版的文件名84.1.11SensorCountAs当前连接到计算记得4.1.11SensorCountAs当前连接到计算记得指纹采集器的个数,当EngineValid无效时,返回4.1.12SensorIndexAS连接多个指纹采集器时,选择指纹头的序号,采集器不工0开始;小于零时指4.1.13SensorSNAs指纹采集器的硬件序指纹登记模版的最大字节长注意:ZKFinger9.01152字节,ZKFinger4.1.15ThresholdAs算设定指纹识别系统比对识别阀值分数(1-100),默认率越低同时拒10,值越大设置当事件OnCaptureToFile发生时,保存指纹验证模版的文件名94.1.17LastQualityAs最新一次指纹的4.1.17LastQualityAs最新一次指纹的质量,在事件OnFeatureInfo可以获取。当小于 时,指纹质量不合格4.1.18LowestQualityAs时,指纹质量4.2方4.2.1Sub开始登记指纹,登记结束后发生事件4.2.2SubBeginEnroll4.2.3FunctionDongleIsExistAs检查加密狗是否存以后版本已取消此函数的功能,为了兼容,暂保留了此函4.2.4FunctionDongleSeed(Byvallp2AsLong,Byvalp1,p2,p3,p4AsInteger)AsBoolean得到种子码lp2的四个16位整数(p1,p2,p3,p4)返回值,加密狗可以通内部算法计算一个种子码,得到四个返回码。种子码算法是不公开的通过检查返回内部算法计算一个种子码,得到四个返回码。种子码算法是不公开的通过检查返回码是否是期望的值来检查加密狗是否存在以后版本已取消此函数的功能,为了兼容,暂保留了此函读出加密狗中的用ID,用ID不会重复相同。保存在加密狗内部特以后版本已取消此函数的功能,为了兼容,暂保留了此函读出加密狗内存区位置p1开始p2个字节到Variant变量buf(一维字节数组)。内存区共有24个字节,位置为0-23以后版本已取消此函数的功能,为了兼容,暂保留了此函Variantbuf(一维字节数组)到加密狗内存区位置p1开始的个字节内。内存区共有24个字节,位0-以后版本中已取消此函数的功能,为了兼容,暂保留了此4.2.8Function得到最近一次获得的指纹模4.2.9FunctionGetFingerImage(ByvalAFingerImage)As得到最近一次获得的指纹图像格式)4.2.10FunctionInitEngine()As初始化指纹识别系统。SensorCountSensorSNEngineValidImageHeight等属性需在该函数被调用后才能返回正确结果。返回值0123初始化成SensorIndex指定的指纹仪不存在(注意:在调用之前设置可以使用方法 释放指纹设备系4.2.11可以使用方法 释放指纹设备系4.2.11FunctionVerFinger(byvalregTemplate,verTemplate,AdoLearningAsBoolean,byvalAregFeatureChangedAsBoolean)AsBoolean比对两枚指纹的特征模版是否匹配。其中regTemplate表示指纹登记特征模版,verTemplate表示现场采集的指纹验证特征模版,AdoLearning表示是否进行指纹特征模版学习更新。AregFeatureChanged表示登记模版regTemplate是否改变,两枚指纹匹配时返回True,不匹配时返回False说明手指特征随时间可能会发生一定程度的变化,通常不会影响指纹的比对 AregFeatureChangedAsBoolean)As比对两枚指纹的特征模版文件是否匹配。其中regTemplateFile表示指纹登记特征模版文件,verTemplateFile表示现场采集的指纹验证特征模版文件,登记模版文件regTemplateFile是否改变。两枚指纹匹配时返回True,不匹配4.2.13FunctionVerRegFingerFile(RegTemplateFileAsString,verTemplate,AdoLearningAsBoolean,byvalAregFeatureChangedAsBooleanAsBoolean比对两枚指纹的特征模版是否匹配。其regTemplate表示由FileName指定文件中的以前登记指纹特征模版,verTemplate表示现场采集的指纹AdoLearningAregFeatureChanged表示登记模版文件regTemplateFile是否改变。两枚指纹匹配时返回True,不匹配时返回False4.2.14SubPrintImageAt(HDCAsOLE_HANDLE,XAsLong,YAs4.2.14SubPrintImageAt(HDCAsOLE_HANDLE,XAsLong,YAsaWidthAsLong,aHeightAs在由(x,y)指定的位置上按照aHeight)指定的大小显示指图像表示要显示指纹的窗口的设备描述表句4.2.15SubPrintImageEllipseAt(HDCAsOLE_HANDLE,XAsLong,YLong,aWidthAsLong,aHeightAsLong,bkColorAs在由(x,y)指定的位置上按照aHeight)指定的大小显示指图像,HDC表示要显示指纹的窗口的设备描述表句柄。这里的指纹图像被椭圆形包围4.2.16SubSaveBitmap(FileNameAsFileNameFileNameJpeg保存TemplateFileName4.2.19 EncodeTemplate(ASour,varADestAsString)As将控件使用的VariantASourBASE64ADest4.2.20 DecodeTemplate(constASourAsString,ADest)AsBASE64格式的模板字符串ASour转换为控件使用的VariantADset模板以上两个方法主要用于模板的数据库保类型模板是以二进Variant类型编码转换为字符串类型,方法DecodeTemplate可以将字符串类型编码转换为Variant类型,需要注意的是,模板变量BASE64编码为字符串后,模板长度将变4.2.21 EncodeTemplate1(ASour)AsVariantASourBASE64格式的模板字符串。参考EncodeTemplate,主要方便PB,VC中调用4.2.22 DecodeTemplate1(constASourAsString)AsBASE64ASourVariant类型模板。参考DecodeTemplate,主要方便PB,VC中调用4.2.23Sub设置当前指纹设备开始取像,可以使用方法CanncelCapture禁止当前指4.2.24Sub4.2.25functionVerFingerFromStr(regTemplateStrAsString,verTemplateStrAsString,AdoLearningAsBoolean,byvalAregFeatureChangedAsBoolean)As比对两枚指纹的特征模版是否匹配。其regTemplateStr表示指纹登记特征模版(BASE64格式的字符串),verTemplateStr表示现场采集的指纹验证特征模版(BASE64格式的字符串),AdoLearning表示是否进行指纹特征模版学习更新。AregFeatureChanged表示登记模版文件regTemplateFile是否改变。True得到最近一次获得的指纹验证或者登记模板,可以在OnCapture,OnEnroll,得到最近一次获得的指纹验证或者登记模板,可以在OnCapture,OnEnroll,OnCaptureToFile,OnEnrollToFile事件中调用,和GetTemplate方法功能类似,区别在于本方法返回为转换为格式的模板字符串4.2.27functionControlSensor(ACodeAsLong;AValueAsLong)AsACode11时控制绿灯,12时控制红灯,13时控制目前只有ZK4000指纹仪及ZK8000指纹仪支持此方法4.2.28FunctionAddRegTemplateToFPCacheDB(fpcHandleAsLong,FPIDAsLong,pRegTemplate)AsLong添加指纹登记模板pRegTemplate到指纹识别高速缓冲空间fpcHandle,FPID是要添加登记模板的标识。说明fpcHandle是创建高速缓冲空间的返回值,参CreateFPCacheDB;fpcHandle=CreateFPCacheDB();FPID=IdentificationInFPCacheDB(…);当比对成功后返4.2.29FunctionAddRegTemplateFileToFPCacheDB(fpcHandleAsFPIDAsLong,pRegTemplateFileAsString)As添加由pRegTemplateFile指定文件中的以前指纹登记特征模版到指纹识别高速缓冲空间fpcHandle,FPID是要添加登记模板的标识,必须>=0。返回值1表示成功,04.2.30FunctionCreateFPCacheDBAs创建指纹识别高速缓冲4.2.30FunctionCreateFPCacheDBAs创建指纹识别高速缓冲空间,进行1:N识别时必须首先调用该函数得说明ZKFinger1:1低速比对速度比较慢(在PII23330ms),所以使用AddRegTemplateToFPCache函数加入到缓冲中的1:1指纹(质量较差的IsOneToOneTemplate可以判断是否1:1指可以同时创建多个缓冲区,用于分组比对4.2.31SubFlushFPImages清空当前指纹设备中的缓4.2.32SubFreeFPCacheDB(fpcHandleAs释放指纹识别高速缓冲空间,fpcHandle是调用该函数得到指纹识别缓冲空间句4.2.33FunctionIdentificationFromFileInFPCacheDB(fpcHandleAs ProcessedFPNumberAsLong)As将指纹验证模板文件pVerTemplateFile和指纹识别高速缓冲空间fpcHandle中所有登记模板进行比对,ScoreProcessedFPNumber次比对中的最高分数,ProcessedFPNumber传出比对的次数,当识别成功时返回值注意在识别过程中如果比对分数大于等于属Threshold,则认为比对成不再和缓冲空间中剩余的指纹登记模板进行比对,函数返回匹配成功登记模板的指纹标识当指纹验证模板和指纹识别高速缓冲空间中所有指纹登记模板进行比对的分数都没有超过设定的hrehodco当指纹验证模板和指纹识别高速缓冲空间中所有指纹登记模板进行比对的分数都没有超过设定的hrehodcoe,推荐设定为AsByvalScoreAsLong,ByvalProcessedFPNumberAs将指纹验证pVerTemplate和指纹识别高速缓冲fpcHandle中所有登记模板进行比对,Score传出ProcessedFPNumber次比对中的最高分数,ProcessedFPNumber传出比对的次数,当识别成功时返回值指纹标识,失败注意在识别过程中如果比对分数大于等于属性hreshod,则认为比对成功不再和缓冲空间中剩余的指纹登记模板进行比对,函数返回匹配成功的指纹当指纹验证模板和指纹识别高速缓冲空间中所有指纹登记模板进行比对的分数都没有超过设定的hrehodcoe,推荐设定为4.2.35FunctionIsOneToOneTemplate(ATemplate)As4.2.36FunctionModifyTemplate(byvalAtemplate,AOneToOneAsAs4.2.37FunctionRemoveRegTemplateFromFPCacheDB(fpcHandleAsFPIDAsLong)4.2.37FunctionRemoveRegTemplateFromFPCacheDB(fpcHandleAsFPIDAsLong)As模板。返回值为1表示成功,0表示失败4.2.38Sub禁止当前指纹设备取像,可以使用方法BeginCapture使指纹设备开始像4.2.39FunctionAddRegTemplateStrToFPCacheDB(fpcHandleAs添加BASE64格式的字符串ARegTemplateStr指纹登记特征模版到指识别高速缓fpcHandle,FPID是要添加登记模板的标识,必须>=0。返1表示成功,0表示失败4.2.40FunctionIdentificationFromStrInFPCacheDB(fpcHandleAs ProcessedFPNumberAsLong)As将指纹验证模AverTemplateStr(BASE64格式的字符串)和指纹识别高fpcHandleScore注意在识别过程中如果比对分数大于等于属性hreshod,则认为比对成功不再和缓冲空间中剩余的指纹登记模板进行比对,函数返回匹配成功的指纹当指纹验证模板和指纹识别高速缓冲空间中所有指纹登记模板进行比对的分数都没有超过设定的hrehodcoe,推荐设定为4.2.41SubSetAutoIdentifyPara(AutoIdentifyAsBoolean,fpcHandle4.2.41SubSetAutoIdentifyPara(AutoIdentifyAsBoolean,fpcHandleAsLong,ScoreAsLong)设置内部高速比对需要的比对方式AutoIdentify、高速缓冲句柄fpcHandle和最低阀值分数ScoreScoreIdentificationFromInFPCacheDBAutoIdentify=True时,按压指纹激活OnCapture事件,提取到指纹比对模板后,控件内部直接调用优化的高速比对功能进行比对,比对结果可以通过OnCapture的参数ATemplate或者GetTemplate得到,此时不需要再调用IdentificationINFPCahceDB函数进行比对请参OnCapture事件4.2.42FunctionAddBitmap(BitmapHandleAsOLE_HANDLE,ValidRectX1AsLong,ValidRectY1AsLong,ValidRectX2AsLong,ValidRectY2AsDPIAsLong)As使用BitmapHandle指定的位图进行登记或比对ValidRectX1、ValidRectY1、ValidRectX2、ValidRectY2四个参数指定了图像的有效区域,如果指定的图像区域无效,将取图像取全部区域,DPI指定了图像的分辨4.2.43FunctionAddImageFile(FileNameAsString,DPIAsLong)AsFileName指定的指纹图像文件(BMP,JPG格式)进行登记或比对。DPI指定了图像的分辨率大小。以上两个函数在使用前,如果是将图象文件用于指纹登记,首先使BeginEnroll,并设定EnrollCount,如果是用于比对,使用BeginCapture,然后使AddImageFileAddBitmap,系统触OnEnrollOnCaptureAddImageFileAddBitmap,系统触OnEnrollOnCapture事件以上外部图象接口函数在ZKFinger5.0LiteVersion中不提供支4.2.44FunctionCreateFPCacheDBExAsCreateFPCacheDB9.010.0指纹识别高速4.2.45SubFreeFPCacheDBEx(fpcHandleAs4.2.46FunctionAddRegTemplateStrToFPCacheDBEx(fpcHandleAsInteger,As功能AddRegTemplateStrToFPCacheDB,区别在于同时添加9.0模板到指纹识别高速缓冲空4.2.47FunctionAddRegTemplateToFPCacheDBEx(fpcHandleAs功能同AddRegemplateStroFPCacheDBExaatFPIDAsInteger,pRegTemplateFileAsString,pRegTemplateFile10AsAs功能AddRegTemplateStrToFPCacheDBEx,区别在于指纹模中加载 中加载 Long,FPIDAsLong)AsLong功能同RemoveRegTemplateFromFPCacheDB,区别在于同时清空9.010.04.2.50FunctionGetTemplateEx(AFPEngineVersionAsString)As功能GetTemplate,区别在于可以传AFPEngineVersion参数取9.010.0AFPEngineVersion99.0模板,为1010.0模4.2.51FunctionGetTemplateAsStringEx(AFPEngineVersionAsString)As功能同GetTemplateEx,区别在于返回为转换为BASE64格式的模板符串4.2.52FunctionMF_GET_SNR(commHandleAsLong,deviceAddressAsLong,modeAsByte,rDM_haltAsByte,ByRefsnrAsByte,ByRefvalueAsByte)AsBoolean返回1个字节的单卡或多卡标识,4个字节的卡号deviceAddress:设备地址mode:模式控制0x26一次只对一张卡操作,0x52一次可对多张卡操API_halt:是否需要halt卡,00不需要,01需snr:返回1个字节的单卡或多卡标识(读卡失败snr[0]错误代码)value:返回的4个字节的卡号说明目前此方法只支持ZK8000目前此方法只支持ZK8000指纹4.2.53FunctionMF_GetSerNum(commHandleAsLong,deviceAddressAsLong,ByRefbufferAsByte)AsBoolean1个字节的读卡器地址和8个字节读卡器序列号buffer:buffer[0]读写器地址,buffer[1...8]8个字节的读写器序列号目前此方法只支持ZK8000指纹4.2.54FunctionMF_SetSerNum(commHandleAsLong,deviceAddressAsLong,ByRefnewValueAsByte,ByRefbufferAsByte)AsBoolean设置8个字节的读卡器序列号说明目前此方法只支持ZK8000指纹4.2.55FunctionMF_GetVersionNum(commHandleAsLong,deviceAddressAsLong,ByRefversionNumAsByte)AsBoolean目前此方法只支持ZK8000指纹4.2.56FunctionMF_PCDRead(commHandle4.2.56FunctionMF_PCDRead(commHandleAsLong,deviceAddressAsLong,modeAsByte,blkIndexAsByte,blkNumAsByte,ByRefkeyAsByte,ByRefbufferAsByte)AsBooleanblkNum:块数key:六个字节的密钥,4bue:失败时bufer0目前此方法只支持ZK8000指纹错误代码0x80:0x81:参数设置失0x82:通讯0x83:卡不0x84:接收卡数0x87:未知的错0x85:输入参数或者输入命令格式0x8A:在对于卡块初始化命令中出现0x8B:在防冲突过程中得到错误的序0x8C:密码认证没通0x90:卡不支持这个命0x91:命令格式有错0x92:在命FLAG参数中,不支持0x93:要操BLOCK不存0x94:操作的对象已经被锁定,不能进行修模0x95:锁定操作不成0x96:写操作不0x95:锁定操作不成0x96:写操作不4.2.57FunctionMF_PCDWrite(commHandleAsLong,deviceAddressAsLong,modeAsByte,blkIndexAsByte,blkNumAsByte,ByRefkeyAsByte,ByRefbufferAsByte)AsBooleanblkNum:块数key:六个字节的密钥,成功时返回4字节卡buffer:待写入数据,失败时buffer[0]为错误代码(见目前此方法只支持ZK8000指纹4.3事4.3.1OnCapture(ActionResultASBoolean,AutoIdentifyFalse时,取到用于比对的指纹验证模板ActionResult=true表示成功取到指纹模版;FalseAutoIdentify 时,返回指纹比对结果(一维数组),请参考下义ATemplate[0]ID-1 1:NIdentification1:N 1:NIdentification1:N 1:1请参考SetAutoIdentifyParaVerTplFileName设置,ActionResult=true表示成功取到指纹模版;False表 如果VerTplFileName没有设置或者为空,则不产生保存文件,但本4.3.3OnEnroll(ActionResultASBoolean,用户登记指纹结束时调用该事件,ActionResult=true表示成功登记,pTemplate属性可取得指纹特征模版;False表示失败。用户登记指纹结束时调用该事件,ActionResult=true表示成功登记,示失败,如果RegTplFileName没有设置或者为空,则不产生保存文件,但本4.3.8OnFeatureInfo(AQualityAs取得指纹初始特4.3.8OnFeatureInfo(AQualityAs取得指纹初始特征表示该指纹特征的质量,有如下可能其它原因导致不能取到指纹4.3.6OnImageReceived(byvalAImageValidAs设备取到指纹图像或者通过AddImageFile和AddBitmap加入指纹图像调用该事件,AImageValid表示是否进行模板提取,设False后,系统在4.3.7当手指按压指纹取像设备时调用该事件4.3.8当手指移开指纹取像设备时调用该事件5.IsRegister=TruBegin否是TImag5.IsRegister=TruBegin否是TImagIsRegister=IsRegister=工作流程工作流程说指纹仪初始化进入工作状态后,调BeginEnroll处于登记指纹状态,调用BeginCapture处于指纹验证状态。14noountnnol和nnoie指纹验证时,按压手指后会触发OnCaptureOnCaptureToFile事件,此时可以调用VerFingerIdentificationInFPCacheDB1:11:N比对6.6.11:11:6.6.11:11:N的应:111记的一个或几个模板与现场采集的模版进行验证;而1:N函数主要用于不输入客户标识,直接通过客户指纹从已经登记的指纹模板中找出自己主要目标是高的通过率和相对高的准确率主要目标是高的比对速度和相对高的准确率.6.2数据库中指纹模板写入和DK中指纹模板是以iantL1EncodeTemplateDecodeTemplate方法可以在Variant变量和字符串变量之间互相进行BASE64编码转换,换为字符换为字符串后,模板长度会增加大约1/32OnEnrollOnCaptureGetTemplateAsString方法得到相应字符串形式的登记模板和比3、直接操作Variant变量,下面是操作示例Delphi,pData:SQL.Add('SELECT*FROMzkFingerPrintWHEREFingerID='+IntToStr(AFingerID));ifIsEmptypData:SQL.Add('SELECT*FROMzkFingerPrintWHEREFingerID='+IntToStr(AFingerID));ifnotIsEmptyAFPData:=VarArrayCreate([0,Size+1],varByte);其它语言请参考其它语言请参考上技术讨论论坛6.3软件加密狗和授权许可4.0以后版本已取6.41:N在1:N比对时,需要对比对模板进行分类,同时为了得到最高速度,K需要创建内存空间,然后将已登CreaePCahceB方法ddepaePCahceBRoeRepaeroPCacheDB等加入或者删除指纹登记模板,最后可以使用方法reePCacheDB可以同时创建多个高速缓冲空间以用于实现分组查询6.5使用平面指纹在一些工6.5使用平面指纹在一些工程项目中,很多时候要求保存指纹图像,或者从扫描仪直接扫描得到平面指纹图像,因此SDK5.0StarndardVersion或SDK5.0ProjectVersioin提供方法AddImageFile等可以直接从平面指纹图像得到指纹登记模板或比对模版的方法,但需要注意必须将图像的分辨率则正确传入此方法,要求不能低于350DPI。注意,在普通版中SDK5.0LiteVersion不提供此方6.6指纹识别阀值的属性Threshold10,此时误判率大约0.001%,拒绝率大约1.5-2%之间。属性OneToOneThreshold的推荐值为10。Score的推荐值为6.71:N在验证时,在指纹登记时系统自动将指纹模板按照质量的好坏分类标识和保存在模板中,质量差记模板称为ZKFinger1:1低速比对特征模版,质量好的登记模板称为高速比对特征模版在一般的应用环境中,大约在一般的应用环境中,大约5的登记指纹模板会被标识为低速比对特征模板以用方法IsOneToOneTemplate判断是否是低速比对特征模版,用方ModifyTemplate可以人为强行改变质量的好坏分类标在1:N验证时,使用IdentificationInFPCacheDB进行指纹识别的流程如下IdentificationFromFileInFPCacheDB(fpcHandleAsLong,pVerTemplateFileAsAsLong)AsByvalScoreAsLong,Byval是比对分数否是比对分数比对指是比对分数否是比对分数比对指根据分类查找高速缓冲中模板分比对模否是是可疑指纹最高分否比对结否否是是可疑指纹最高分否比对结否对可疑指1:1低速是比对结否是识别成返回是比对结否是识别成返回结识别失对高速缓冲

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论