版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
BBiokeySDK4.0程序開發(fā)手冊BiokeySDKBiokeySDK開發(fā)手冊目 錄BIOKEY算法描述 1BIOKEYSDK架構(gòu) 3軟件安裝 5光盤文件及名目 5軟件的安裝 64、ACTIVEX控件參考 9屬性 9ActiveasBoolean. 9EngineValidasBoolean 9EnrollIndexAsLong 9EnrollCountAsLong 10FPEngineVersionASString 10ImageHeightASinteger 10ImageWidthASinteger 10IsRegisterAsBoolean 10OneToOneThresholdAsBoolean 10RegTplFileNameAsString 11SensorCountAsLong. 11SensorIndexASLong 11SensorSNAsString 11TemplateLenAsLong .1ThresholdAsLong 12VerTplFileNameAsString 124.2方法 12SubBeginEnroll 12SubCancelEnroll 12FunctionDongleIsExistAsBoolean 12FunctionDongleSeed(Byvallp2AsLong,Byvalp1,p2,p3,p4AsInteger)AsBoolean 12FunctionDongleUserIDAsLong 13FunctionDongleMemRead(Byvalp1,p2AsInteger,buf)AsBoolean 13FunctionDongleMemWrite(Byvalp1,p2AsInteger,buf)AsBoolean 13FunctionGetTemplate 13FunctionGetFingerImage(ByvalAFingerImage)AsBoolean 13FunctionInitEngineAsLong 13FunctionVerFinger(byvalregTemplate,verTemplate,AdoLearningAsBoolean,byvalAregFeatureChangedAsBoolean)AsBoolean 14FunctionVerFingerFromFile(regTemplateFileAsString,verTemplateFileAsString,AdoLearningAsBoolean,byvalAregFeatureChangedAsBoolean)AsBoolean .FunctionVerRegFingerFile(RegTemplateFileAsString,verTemplate,AdoLearningAsBoolean,byvalAregFeatureChangedAsBoolean)AsBoolean 14SubPrintImageAt(HDCAsOLE_HANDLE,XAsLong,YAsLong,aWidthAsLong,aHeightAsLong) 15SubPrintImageEllipseAt(HDCAsOLE_HANDLE,XAsLong,YAsLong,aWidthAsLong,aHeightAsLong,bkColorAsOLE_COLOR)154.2.16SubSaveBitmap(FileNameAsString) 15SubSaveJPG(FileNameAsString) 15FunctionSaveTemplate(FileNameAsString,Template)AsBoolean15\l“_TOC_250034“functionEncodeTemplate(ASour,varADestAsString)AsBoolean 15\l“_TOC_250033“functionDecodeTemplate(constASourAsString,ADest)AsBoolean 16\l“_TOC_250032“function EncodeTemplate1(ASour)AsString 16function DecodeTemplate1(constASourAsString)AsVarian.t16\l“_TOC_250031“SubBeginCapture 16\l“_TOC_250030“SubEndEngine 16functionVerFingerFromStr(regTemplateStrAsString,verTemplateStrAsString,AdoLearningAsBoolean,byvalAregFeatureChangedAsBoolean)AsBoolean .\l“_TOC_250029“functionGetTemplateAsStringAsString .7\l“_TOC_250028“1:N控件接口方法: 17\l“_TOC_250027“FunctionAddRegTemplateToFPCacheDB(fpcHandleAsLong,FPIDAsLong,pRegTemplate)AsLong .FunctionAddRegTemplateFileToFPCacheDB(fpcHandleAsLong,FPIDAsLong,pRegTemplateFileAsString)AsLong \l“_TOC_250026“FunctionCreateFPCacheDBAsLong 18\l“_TOC_250025“SubFlushFPImages 18\l“_TOC_250024“SubFreeFPCacheDB(fpcHandleAsLong) 18\l“_TOC_250023“FunctionIdentificationFromFileInFPCacheDB(fpcHandleAsLong,pVerTemplateFileAsString, ByvalScoreAsLong,ByvalProcessedFPNumberAsLong)AsLong 18FunctionIdentificationInFPCacheDB(fpcHandleAsLong,pVerTemplate,ByvalScoreAsLong,ByvalProcessedFPNumberAsLong)AsLong 19FunctionIsOneToOneTemplate(ATemplate)AsBoolean............19FunctionModifyTemplate(byvalAtemplate,AOneToOneAsBoolean)AsBoolean 20FunctionRemoveRegTemplateFromFPCacheDB(fpcHandleAsLong,FPIDAsLong)AsLong 20\l“_TOC_250022“SubCancelCapture 20FunctionAddRegTemplateStrToFPCacheDB(fpcHandleAsLong,FPIDAsLong,ARegTemplateStrAsString)AsLong...........................0\l“_TOC_250021“FunctionIdentificationFromStrInFPCacheDB(fpcHandleAsLong,AVerTemplateStrAsString, ByvalScoreAsLong,ByvalProcessedFPNumberAsLong)AsLong 20\l“_TOC_250020“SubSetAutoIdentifyPara(AutoIdentifyAsBoolean,fpcHandleAsLong,ScoreAsLong) 21\l“_TOC_250019“外部圖象文件接口方法: 22FunctionAddBitmap(BitmapHandleAsOLE_HANDLE,ValidRectX1AsLong,ValidRectY1AsLong,ValidRectX2AsLong,ValidRectY2AsLong,DPIAsLong)AsBoolean. \l“_TOC_250018“FunctionAddImageFile(FileNameAsString,DPIAsLong)AsBoolean 22\l“_TOC_250017“4.3大事 22OnCapture(ActionResultASBoolean,ATemplate) 2.2\l“_TOC_250016“OnCaptureToFile(ActionResultASBoolean) 23\l“_TOC_250015“OnEnroll(ActionResultASBoolean,ATemplate) 23\l“_TOC_250014“OnEnrollToFile(ActionResultASBoolean) 24\l“_TOC_250013“4.4.0OnFeatureInfo(AQualityAsLong) 24\l“_TOC_250012“OnImageReceived(byvalAImageValidAsBoolean) 24\l“_TOC_250011“OnFingerTouching 244.4.0OnFingerLeaving 25\l“_TOC_250010“5、工作流程說明 26\l“_TOC_250009“6、常見問題說明 29\l“_TOC_250008“6.1 1:1和1:N的應(yīng)用 29\l“_TOC_250007“數(shù)據(jù)庫中指紋模板寫入和讀出 29\l“_TOC_250006“軟件加密狗和授權(quán)許可文件 32\l“_TOC_250005“1:N高速緩沖空間的使用 32\l“_TOC_250004“使用平面指紋圖像 32\l“_TOC_250003“指紋識別閥值的設(shè)定 32\l“_TOC_250002“1:N識別中低質(zhì)量指紋模板的處理方法 33\l“_TOC_250001“連接多個指紋儀 36\l“_TOC_250000“模板操作的文件/字符串/變體變量方法 36BiokeySDKBiokeySDK開發(fā)手冊10Biokey算法描述Biokey1:11:N指紋識別算法,面對軟件開Biokey進(jìn)展指紋識別時(2023-6000枚指紋)PIN1-5秒(以下測試都在PentiumIII900MHz+128MB內(nèi)存環(huán)境下進(jìn)展)內(nèi)輕松完成。Biokey算法具有以下特點(diǎn):1、Biokey軟件開發(fā)包能夠快速集成到客戶系統(tǒng)中,通過開放圖像處理接口,可以支持任何掃描設(shè)備和指紋Sensor(圖像質(zhì)量>=300DPI)。2、 Biokey算法通過自適應(yīng)的、適合匹配的濾鏡和恰當(dāng)?shù)拈y值,減弱噪音增加脊和谷的比照度甚至能夠從質(zhì)量很差的指紋(臟、刀傷、疤、痕、枯燥、潮濕或撕破)中獵取適當(dāng)?shù)娜趾途植刻卣鼽c(diǎn)。3、Biokey算法比對時支持指紋平移(>=35%)360度旋360度旋轉(zhuǎn)時的快速比對〔平均速度3000枚秒(<=1手指的特征點(diǎn))=15),也可以實(shí)現(xiàn)上述功能。4、 Biokey算法不需要指紋必需有全局特征點(diǎn)(核心點(diǎn)、三角點(diǎn)等),通過局部特征點(diǎn)就可以完成識別。5、 Biokey通過分類算法(指紋被分成五大類型:拱類、左環(huán)類、右環(huán)類、尖拱類、旋渦類“斗”),預(yù)先使用全局特征排序,從而大大的加速指紋匹配過程。6、 Biokey算法代碼相當(dāng)簡潔數(shù)據(jù)空間僅需要350K內(nèi)存因此可以簡潔的移植到嵌入式系統(tǒng)中。通過從四種Sensor(YLC,DFR200,U.ARE.U,Authentec)采集到2023枚指Biokey做測試(每種Sensor500枚)2023枚指4,000,000次比對,得到下面的測試比對結(jié)果:模板大小模板大小旋轉(zhuǎn)FARFRR登記時間平均比對速度圖像質(zhì)量310or1152Byte0–360度<=0.001%<=2.0%0.5秒2500枚/秒>=300DPIBiokeySDK架構(gòu)BiokeySDK4.0(SoftwareDevelopmentKit)ActiveX的方式存在,使用者可以使用各種開發(fā)語言〔例如VC++,C++Builder,Delphi,VB,VisualFoxpro,PB等〕來開發(fā)相對于指紋儀的應(yīng)用程序。FilesIncludedOperatingSystemWindows98WinodwsMEWindows2023WindowsXPWindows2023WindowsVista
FilesSetup.exeLicense.rtfManual_SDK.doc\SDK\Sample\Sdk\Biokey.ocx
Description指紋儀驅(qū)動安裝程序開發(fā)許可協(xié)議程序開發(fā)手冊Sample開發(fā)例程BiokeyActiveXControlSDKArchitecture應(yīng)用程序應(yīng)用程序ApplicationProgramActiveX控件OCX驅(qū)動程序DeviceDriver其它指紋采集器OtherfingerprintReader指紋采集器URU4000BorZK平面圖像FingerprintImage軟件安裝光盤文件及名目翻開BiokeySDK光盤,名目和文件信息如以以下圖所示:Setup.exe:指紋采集器驅(qū)動和加密狗驅(qū)動的安裝程序;License.rtf:開發(fā)許可協(xié)議;SDK名目,名目和文件信息如以以下圖所示:Samples:多種開發(fā)語言的例程;Biokey.ocx:指紋識別算法核心控件庫文件。Manual_SDK.doc:SDK說明手冊;軟件的安裝BiokeySDK之前,請確定您的操作系統(tǒng)和計(jì)算機(jī)的配置符合軟件運(yùn)行的要求。在進(jìn)展安裝之前假設(shè)您的計(jì)算機(jī)接上了指紋采集器最好將它拔下來。假設(shè)您的計(jì)算機(jī)已經(jīng)安裝過 URU2.0x驅(qū)動程序,請首先卸載。WindowsXP系統(tǒng)下具體的卸載步驟如下:a:運(yùn)行把握面板中的‘添加/刪除’程序,卸載指紋采集設(shè)備的驅(qū)動程序;b:在開頭菜單中的‘運(yùn)行’中運(yùn)行注冊表,將HKEY_LOCAL_MACHINE\Software\DigitalPersona鍵值刪除;c:將Windows\system32名目下的DP*.dll全部刪除;d:將Programfiles\DigitalPersona名目整個刪除。1、將安裝光盤放入計(jì)算機(jī)的光驅(qū)之中,安裝軟件將自動運(yùn)行。彈出窗口如以以下圖所示:點(diǎn)擊下一步按鈕,可以進(jìn)入如下操作步驟:點(diǎn)下一步可以完成安裝指紋儀驅(qū)動。2、拷貝光盤SDK名目下面文件到用戶指定名目,建議拷貝到Windows系統(tǒng)名目(win98:c:\windows\system;win2023:c:\winnt\system;winXP/VISTA:c:\windows\system32)。Biokey.ocx 控件庫文件3、注冊控件Biokey.ocx:c:\windows\system32\regsvr32.exe c:\windows\system32\Biokey.ocx(winXP/VISTA)c:\winnt\system32\regsvr32.exe c:\ winnt\system32\Biokey.ocx(win2023)留意:安裝程序安裝的只是指紋采集器的驅(qū)動程序,其它開發(fā)所需的文件需要用戶手動拷貝至相應(yīng)的名目下。4、ActiveX控件參考BiokeySDK4.01:11:N兩種功能,以下都承受VB語法說明,其中指紋模板Variant變量代表一維字節(jié)數(shù)組。屬性ActiveasBooleanReadonly當(dāng)前SensorIndex設(shè)定的指紋采集器是否預(yù)備就緒。EngineValidasBooleanReadonly指紋識別系統(tǒng)是否正常工作。調(diào)用過函數(shù)initEngine后會返回有效結(jié)果EnrollIndexAsLongReadonly登記指紋時取樣的序號,即表示當(dāng)前手指登記已經(jīng)取到的有效次數(shù)。EnrollCountAsLong登記指紋時取樣的次數(shù),取值范圍為1-4次FPEngineVersionASStringreadonly指紋識別系統(tǒng)版本號ImageHeightASintegerReadonly指紋圖像的高度ImageWidthASintegerReadonly指紋圖像的寬度IsRegisterAsBooleanReadonly是否正登記指紋OneToOneThresholdAsBoolean設(shè)定Biokey1:1比對的識別閥值分?jǐn)?shù)(1-100)10,值越大,誤判率越低同時拒絕率變大RegTplFileNameAsString設(shè)置當(dāng)大事OnEnrollToFile發(fā)生時,保存指紋登記模版的文件名稱。SensorCountAsLongReadonly當(dāng)前連接到計(jì)算記得指紋采集器的個數(shù),當(dāng)EngineValid無效時,返回0SensorIndexASLong連接多個指紋采集器時,選擇指紋頭的序號,從0開頭;小于零時指紋采集器不工作。SensorSNAsString指紋采集器的硬件序列號TemplateLenAsLongReadonly指紋登記模版的字節(jié)長度。該屬性為兼容舊版本保存,該版本放棄使用,在程序設(shè)計(jì)時依據(jù)如下規(guī)Base64格式字符串方式操作指紋模版時不用考慮如下長度:1152字節(jié),當(dāng)UsingXTFTemplateTrue時,2288字節(jié)。ThresholdAsLong設(shè)定指紋識別系統(tǒng)比對識別閥值分?jǐn)?shù)(1-100),默認(rèn)為10,值越大,誤判率越低同時拒絕率變大VerTplFileNameAsString設(shè)置當(dāng)大事OnCaptureToFile發(fā)生時,保存指紋驗(yàn)證模版的文件名稱。方法SubBeginEnroll開頭登記指紋,登記完畢后發(fā)生OnEnroll大事。SubCancelEnroll取消當(dāng)前的指紋登記狀態(tài),即由BeginEnroll開頭的操作可由此函數(shù)中斷。FunctionDongleIsExistAsBoolean檢查加密狗是否存在*4.0版本中已取消此函數(shù)的功能,為了兼容,暫保存了此函數(shù)。FunctionDongleSeed(Byvallp2AsLong,Byvalp1,p2,p3,p4AsInteger)AsBooleanlp216位整數(shù)(p1,p2,p3,p4)返回值,加密狗可以通過內(nèi)部算法計(jì)算一個種子碼,得到四個返回碼。種子碼算法是不公開的,可以通過檢查返回碼是否是期望的值來檢查加密狗是否存在。*4.0版本中已取消此函數(shù)的功能,為了兼容,暫保存了此函數(shù)FunctionDongleUserIDAsLongIDID不會重復(fù)一樣。保存在加密狗內(nèi)部特定位置。*4.0版本中已取消此函數(shù)的功能,為了兼容,暫保存了此函數(shù)FunctionDongleMemRead(Byvalp1,p2AsInteger,buf)AsBoolean讀出加密狗內(nèi)存區(qū)位置p1開頭的p2個字節(jié)到Variant變量buf(一維字節(jié)數(shù)組)240-23*4.0版本中已取消此函數(shù)的功能,為了兼容,暫保存了此函數(shù)FunctionDongleMemWrite(Byvalp1,p2AsInteger,buf)AsBooleanVariantbuf(一維字節(jié)數(shù)組)p1p2240-23*4.0版本中已取消此函數(shù)的功能,為了兼容,暫保存了此函數(shù)FunctionGetTemplate得到最近一次獲得的指紋模板。FunctionGetFingerImage(ByvalAFingerImage)AsBoolean得到最近一次獲得的指紋圖像(BMP格式)。FunctionInitEngineAsLongSensorCountSensorSNEngineValidImageHeight、ImageWidth等屬性需在該函數(shù)被調(diào)用后才能返回正確結(jié)果。返回值:初始化成功指紋識別驅(qū)動程序加載失敗沒有連接指紋識別儀屬性SensorIndex指定的指紋儀不存在〔留意:在調(diào)用之前設(shè)置屬性SensorIndex〕可以使用方法EndEngine釋放指紋設(shè)備系統(tǒng)FunctionVerFinger(byvalregTemplate,verTemplate,AdoLearningAsBoolean,byvalAregFeatureChangedAsBoolean)AsBoolean比對兩枚指紋的特征模版是否匹配regTemplate表示指紋登記特征模版,verTemplate表示現(xiàn)場采集的指紋驗(yàn)證特征模版,AdoLearning表示是否進(jìn)展指紋特征模版學(xué)習(xí)更。AregFeatureChanged表示登記模版regTemplate是否轉(zhuǎn)變,兩枚指紋匹配時返回True,不匹配時返回False說明:手指特征隨時間可能會發(fā)生確定程度的變化,通常不會影響指紋的比對,但通過進(jìn)展指紋特征模版學(xué)習(xí)更,系統(tǒng)會綜合得到的模版,從而可以降低拒絕率。FunctionVerFingerFromFile(regTemplateFileAsString,verTemplateFileAsString,AdoLearningAsBoolean,byvalAregFeatureChangedAsBoolean)AsBoolean比對兩枚指紋的特征模版文件是否匹配。其中regTemplateFile表示指紋登記特征模版文件,verTemplateFile表示現(xiàn)場采集的指紋驗(yàn)證特征模版文件,AdoLearningAregFeatureChanged表示登記模版文件regTemplateFileTrue,不匹配時FalseFunctionVerRegFingerFile(RegTemplateFileAsString,verTemplate,AdoLearningAsBoolean,byvalAregFeatureChangedAsBoolean)AsBoolean比對兩枚指紋的特征模版是否匹配。其中regTemplate表示由FileName指定文件中的以前登記指紋特征模版,verTemplate表示現(xiàn)場采集的指紋的特AdoLearningAregFeatureChangedregTemplateFile是否轉(zhuǎn)變。兩枚指紋TrueFalseSubPrintImageAt(HDCAsOLE_HANDLE,XAsLong,YAsLong,aWidthAsLong,aHeightAsLong)在由〔x,y〕指定的位置上依據(jù)〔aWidth,aHeight〕指定的大小顯示指紋圖像,HDC表示要顯示指紋的窗口的設(shè)備描述表句柄SubPrintImageEllipseAt(HDCAsOLE_HANDLE,XAsLong,YAsLong,aWidthAsLong,aHeightAsLong,bkColorAsOLE_COLOR)在由〔x,y〕指定的位置上依據(jù)〔aWidth,aHeight〕指定的大小顯示指紋圖像,HDC橢圓形包圍。SubSaveBitmap(FileNameAsString)保存最終一次采集到的指紋的圖像到FileName指定的位圖文件中。SubSaveJPG(FileNameAsString)保存最終一次采集到的指紋的圖像到FileName指定的Jpeg文件中。FunctionSaveTemplate(FileNameAsString,Template)AsBoolean保存Template指紋的特征模版到FileName指定的文件中。function EncodeTemplate(ASour,varADestAsString)AsBoolean將控件使用的Variant模板ASour轉(zhuǎn)換為BASE64格式的模板字符串ADest。function DecodeTemplate(constASourAsString,ADest)AsBoolean將BASE64格式的模板字符串ASour轉(zhuǎn)換為控件使用的Variant類型ADset模板。以上兩個方法主要用于模板的數(shù)據(jù)庫保存,Variant類型模板是以二進(jìn)制PB,VBEncodeTemplate可以將VariantDecodeTemplate可以將字符串類型編碼轉(zhuǎn)換為VariantBASE64編碼為字符串后,模板長度將變長。function EncodeTemplate1(ASour)AsStringVariantASourBASE64格式的模板字符串。參考EncodeTemplatePB,VC中調(diào)用function DecodeTemplate1(constASourAsString)AsVariantBASE64ASourVariant類型模板。參考DecodeTemplatePB,VC中調(diào)用SubBeginCapture設(shè)置當(dāng)前指紋設(shè)備開頭取像,可以使用方法CanncelCapture制止當(dāng)前指紋設(shè)備取像。SubEndEngine釋放由方法InitEngineInitEngine重初始化指紋設(shè)備,在退出系統(tǒng)時,推舉不要調(diào)用。functionVerFingerFromStr(regTemplateStrAsString,verTemplateStrAsString,AdoLearningAsBoolean,byvalAregFeatureChangedAsBoolean)AsBoolean比對兩枚指紋的特征模版是否匹配。其中regTemplateStr表示指紋登記特征模版(BASE64格式的字符串),verTemplateStr表示現(xiàn)場采集的指紋驗(yàn)證特征模版(BASE64格式的字符串),AdoLearning表示是否進(jìn)展指紋特征模版AregFeatureChanged表示登記模版文件regTemplateFile是否轉(zhuǎn)變。TrueFalsefunctionGetTemplateAsStringAsString得到最近一次獲得的指紋驗(yàn)證或者登記模板,可以在OnCapture,OnEnroll,OnCaptureToFile,OnEnrollToFile大事中調(diào)用,和GetTemplate方法功能類似,區(qū)分在于本方法返回為轉(zhuǎn)換為BASE64格式的模板字符串。1:N控件接口方法:FunctionAddRegTemplateToFPCacheDB(fpcHandleAsLong,FPIDAsLong,pRegTemplate)AsLong添加指紋登記模板pRegTemplate到指紋識別高速緩沖空間fpcHandle,F(xiàn)PID是要添加登記模板的標(biāo)識。說明:fpcHandle 是創(chuàng)立高速緩沖空間的返回值,參見函數(shù)CreateFPCacheDB;fpcHandle=CreateFPCacheDB;FPID=IdentificationInFPCacheDB(…);當(dāng)比對成功后返回FPID;Function AddRegTemplateFileToFPCacheDB(fpcHandleAs Long,FPIDAsLong,pRegTemplateFileAsString)AsLong添加由pRegTemplateFile指定文件中的以前指紋登記特征模版到指紋識別高速緩沖空間fpcHandle,F(xiàn)PID>=0。返回1表示成功,0表示失敗FunctionCreateFPCacheDBAsLong創(chuàng)立指紋識別高速緩沖空間,進(jìn)展1:N識別時必需首先調(diào)用該函數(shù)得到指紋識別緩沖空間句柄。說明:由于Biokey1:1低速比對速度比較慢〔在PII23330ms〕,所以使AddRegTemplateToFPCache1:1指紋(質(zhì)量較差的指紋)不能太多,否則影響比對速度。IsOneToOneTemplate1:1指紋可以同時創(chuàng)立多個緩沖區(qū),用于分組比對等。SubFlushFPImages清空當(dāng)前指紋設(shè)備中的緩沖圖像。SubFreeFPCacheDB(fpcHandleAsLong)釋放指紋識別高速緩沖空間,fpcHandle是調(diào)用該函數(shù)CreateFPCacheDB得到指紋識別緩沖空間句柄。FunctionIdentificationFromFileInFPCacheDB(fpcHandleAsLong,pVerTemplateFileAsString, ByvalScoreAsLong,ByvalProcessedFPNumberAsLong)AsLong將指紋驗(yàn)證模板文件pVerTemplateFile和指紋識別高速緩沖空間fpcHandle中全部登記模板進(jìn)展比對,ScoreProcessedFPNumber次比對中的最高分?jǐn)?shù),ProcessedFPNumber傳出比對的次數(shù),當(dāng)識別成功時返回值指紋標(biāo)識,失敗返回-1。留意:在識別過程中假設(shè)比對分?jǐn)?shù)大于等于屬性Threshold,則認(rèn)為比對成功,不再和緩沖空間中剩余的指紋登記模板進(jìn)展比對,函數(shù)返回匹配成功的指紋登記模板的指紋標(biāo)識;當(dāng)指紋驗(yàn)證模板和指紋識別高速緩沖空間中全部指紋登記模板進(jìn)展比對的分?jǐn)?shù)都沒有超過設(shè)定的Threshold,但同時比對的最高分?jǐn)?shù)大于等于Score,則認(rèn)為比對也是匹配成功,函數(shù)返回比對最高分?jǐn)?shù)的指紋登記模板的標(biāo)識,8;Function IdentificationInFPCacheDB (fpcHandle As Long,pVerTemplate, ByvalScoreAsLong,ByvalProcessedFPNumberAsLong)AsLongpVerTemplatefpcHandle中全部登記模板進(jìn)展比對,Score傳出ProcessedFPNumber次比對中的最高分?jǐn)?shù),ProcessedFPNumber傳出比對的次數(shù),當(dāng)識別成功時返回值指紋標(biāo)識,失敗返回-1。留意:在識別過程中假設(shè)比對分?jǐn)?shù)大于等于屬性Threshold,則認(rèn)為比對成功,不再和緩沖空間中剩余的指紋登記模板進(jìn)展比對,函數(shù)返回匹配成功的指紋登記模板的指紋標(biāo)識;當(dāng)指紋驗(yàn)證模板和指紋識別高速緩沖空間中全部指紋登記模板進(jìn)展比對的分?jǐn)?shù)都沒有超過設(shè)定的Threshold,但同時比對的最高分?jǐn)?shù)大于等于Score,則認(rèn)為比對也是匹配成功,函數(shù)返回比對最高分?jǐn)?shù)的指紋登記模板的標(biāo)識,8;FunctionIsOneToOneTemplate(ATemplate)AsBoolean推斷當(dāng)前指紋特征模版Atemplate是否為Biokey1低速比對特征模版。FunctionModifyTemplate(byvalAtemplate,AOneToOneAsBoolean)AsBoolean依據(jù)AOneToOne修改指紋特征模版AtemplateBiokey1:1低速比對特征模版或者高速比對特征模版。FunctionRemoveRegTemplateFromFPCacheDB(fpcHandleAsLong,FPIDAsLong)AsLong刪除指紋識別高速緩沖空間fpcHandleFPID的指紋登記1表示成功,0表示失敗SubCancelCapture制止當(dāng)前指紋設(shè)備取像,可以使用方法BeginCapture使指紋設(shè)備開頭取像。Function AddRegTemplateStrToFPCacheDB(fpcHandleAs Long,FPIDAsLong,ARegTemplateStrAsString)AsLongBASE64ARegTemplateStr指紋登記特征模版到指紋識別高速緩沖空間fpcHandle,F(xiàn)PID>=01表示成功,0表示失敗FunctionIdentificationFromStrInFPCacheDB(fpcHandleAsLong,AVerTemplateStrAsString, ByvalScoreAsLong,ByvalProcessedFPNumberAsLong)AsLong將指紋驗(yàn)證模板AverTemplateStr(BASE64格式的字符串)和指紋識別高fpcHandleScoreProcessedFPNumber次比對中的最高分?jǐn)?shù),ProcessedFPNumber傳出比對的次數(shù),當(dāng)識別成功時返回值指紋標(biāo)識,失敗返回-1。留意:在識別過程中假設(shè)比對分?jǐn)?shù)大于等于屬性Threshold,則認(rèn)為比對成功,不再和緩沖空間中剩余的指紋登記模板進(jìn)展比對,函數(shù)返回匹配成功的指紋登記模板的指紋標(biāo)識;當(dāng)指紋驗(yàn)證模板和指紋識別高速緩沖空間中全部指紋登記模板進(jìn)展比對的分?jǐn)?shù)都沒有超過設(shè)定的Threshold,但同時比對的最高分?jǐn)?shù)大于等于Score,則認(rèn)為比對也是匹配成功,函數(shù)返回比對最高分?jǐn)?shù)的指紋登記模板的標(biāo)識,9;SubSetAutoIdentifyPara(AutoIdentifyAsBoolean,fpcHandleAsLong,ScoreAsLong)設(shè)置內(nèi)部高速比對需要的比對方式AutoIdentify、高速緩沖句柄fpcHandle和最低閥值分?jǐn)?shù)Score,Score可以參考方法IdentificationFromInFPCacheDBAutoIdentify=True時,按壓指紋激活OnCapture大事,提取到指紋比對模板后,控件內(nèi)部直接調(diào)用優(yōu)化的高速比對功能進(jìn)展比對,比對結(jié)果可以通過OnCapture的參數(shù)ATemplate或者GetTemplateIdentificationINFPCahceDB函數(shù)進(jìn)展比對。請參考OnCapture大事。外部圖象文件接口方法:FunctionAddBitmap(BitmapHandleAsOLE_HANDLE,ValidRectX1AsLong,ValidRectY1AsLong,ValidRectX2AsLong,ValidRectY2AsLong,DPIAsLong)AsBoolean使用由BitmapHandle指定的位圖進(jìn)展登記或比對。ValidRectX1、ValidRectY1、ValidRectX2、ValidRectY2四個參數(shù)指定了圖像的有效區(qū)域,假設(shè)指定的圖像區(qū)域無效,將取圖像取全部區(qū)域,DPI指定了圖像的區(qū)分率大小。FunctionAddImageFile(FileNameAsString,DPIAsLong)AsBoolean使用由FileName指定的指紋圖像文件(支持BMP,JPG格式)進(jìn)展登記或比對。DPI指定了圖像的區(qū)分率大小。以上兩個函數(shù)在使用前,假設(shè)是將圖象文件用于指紋登記,首先使用BeginEnroll,并設(shè)定EnrollCount,假設(shè)是用于比對,使用BeginCapture,然后使用AddImageFileAddBitmap,系統(tǒng)觸發(fā)OnEnrollOnCapture大事。以上外部圖象接口函數(shù)在Biokey4.0LiteVersion中不供給支持。大事OnCapture(ActionResultASBoolean,ATemplate)AutoIdentify=False時,取到用于比對的指紋驗(yàn)證模板ATemplate,ActionResult=true表示成功取到指紋模版;False表示失敗。AutoIdentify= True時,返回指紋比對結(jié)果(一維數(shù)組),請參考下面定義:ATemplate[0] 代表ID值-1代表查找失敗ATemplate[1] 1:NIdentificationScore參數(shù)ATemplate[2] 1:N指紋比對數(shù)ATemplate[3] 1:1指紋比對數(shù)請參考SetAutoIdentifyPara方法。OnCaptureToFile(ActionResultASBoolean)取到用于比對的指紋驗(yàn)證模板,模版保存到文件中,文件名稱為屬性VerTplFileName設(shè)置,ActionResult=true表示成功取到指紋模版;False表示失敗,VerTplFileName沒有設(shè)置或者為空,則不產(chǎn)生保存文件,但本大事照舊會觸發(fā)。OnEnroll(ActionResultASBoolean,ATemplate)用戶登記指紋完畢時調(diào)用該大事,ActionResult=true表示成功登記,pTemplate屬性可取得指紋特征模版;False表示失敗。OnEnrollToFile(ActionResultASBoolean)用戶登記指紋完畢時調(diào)用該大事,ActionResult=true表示成功登記,指紋特征模板保存到文件中RegTplFileNameFalseRegTplFileName4.4.0OnFeatureInfo(AQualityAsLong)取得指紋初始特征,Quality表示該指紋特征的質(zhì)量,有如下可能值:0:好的指紋特征1:特征點(diǎn)不夠2:其它緣由導(dǎo)致不能取到指紋特征OnImageReceived(byvalAImageValidAsBoolean)設(shè)備取到指紋圖像或者通過AddImageFile和AddBitmap參與指紋圖像時調(diào)用該大事,AImageValid表示是否進(jìn)展模板提取,設(shè)置為False后,系統(tǒng)在取到指紋圖像后返回,不進(jìn)展模板提取。OnFingerTouching當(dāng)手指按壓指紋取像設(shè)備時調(diào)用該大事。4.4.0OnFingerLeaving當(dāng)手指移開指紋取像設(shè)備時調(diào)用該大事。5、工作流程說明IsRegBeginEnrollOnImageReceivedOnFeatureInfo否OnImageReceivedOnFeatureInfo否1-4次是OnEnrollOnEnrollToFileTemplateImage26ImageIsRegOnImageReceivedOnFeatureInfoOnImageReceivedOnFeatureInfoOnCaptureOnCaptureToFileTemplateImageTemplateImage27BiokeySDKBiokeySDK開發(fā)手冊28工作流程說明:BeginEnroll用BeginCapture處于指紋驗(yàn)證狀態(tài)??丶墓ぷ鞣绞绞腔诖笫买?qū)動,觸發(fā)大事的挨次參考上面示意圖。指紋登記一般需要按同一手指1-4次,然后由識別系統(tǒng)綜合處理得到一EnrollCount次數(shù)后會觸發(fā)OnEnroll和OnEnrollToFile大事。OnCapture和OnCaptureToFile時可以調(diào)用VerFinger或者IdentificationInFPCacheDB1:11:N比對。需要留意每次按壓手指都會觸發(fā)OnFeatureInfo紋模板質(zhì)量不合格,則本次取像無效,需要重按壓手指6、常見問題說明1:11:N的應(yīng)用1:11:1驗(yàn)證的開發(fā)工程,一般需要預(yù)先輸入當(dāng)前驗(yàn)證客戶的標(biāo)識,然后得到他已經(jīng)登記的一個或幾個模板與現(xiàn)場采集的模版進(jìn)展驗(yàn)證;而1:N函數(shù)主要用于不輸入客戶標(biāo)識,直接通過客戶指紋從已經(jīng)登記的指紋模板中找出自己。1:1主要目標(biāo)是高的通過率和相對高的準(zhǔn)確率;1:N主要目標(biāo)是高的比對速度和相對高的準(zhǔn)確率.。數(shù)據(jù)庫中指紋模板寫入和讀出SDK中指紋模板是以Vairant變量的方式保存和傳遞,其存儲的是一維SQL理方法:1、EncodeTemplate和DecodeTemplate方法可以在Variant變量和字符串變量之間相互進(jìn)展BASE64編碼轉(zhuǎn)換,轉(zhuǎn)換為字符串后,模板長度會增加大1/3。2、在OnEnroll大事和OnCapture大事中直接調(diào)用GetTemplateAsString方法得到相應(yīng)字符串形式的登記模板和比對模板。3、直接操作Variant變量,下面是操作例如:Delphi,CB:procedureTFPProcess.SaveFPData(AQuery:TADOQuery;AFingerID:Integer;AFPData:OleVariant);varpData:PChar;beginwithAQuerydobeginClose;SQL.Clear;SQL.Add(”SELECT*FROMzkFingerPrintWHEREFingerID=”+IntToStr(AFingerID));Open;ifIsEmptythenAppendelseEdit;FieldByName(”FingerID”).Value:=AFingerID;//保存指紋模板withTBlobStream(CreateBlobStream(FieldByName(”Template”),bmWrite))dobeginpData:=VarArrayLock(AFPData);tryWrite(pData^,VarArrayHighBound(AFPData,1)-VarArrayLowBound(AFPData,1)+1);finallyVarArrayUnlock(AFPData);end;Free;end;Post;Close;end;end;procedureTFPProcess.GetFPData(AQuery:TADOQuery;AFingerID:Integer;varAFPData:OleVariant);varpData:PChar;beginwithAQuerydobeginClose;SQL.Clear;SQL.Add(”SELECT*FROMzkFingerPrintWHEREFingerID=”+IntToStr(AFingerID));Open;//讀取數(shù)據(jù)ifnotIsEmptythenwithTBlobStream(CreateBlobStream(FieldByName(”Template”),bmRead))dobeginAFPData:=VarArrayCreate([0,Size+1],varByte);pData:=VarArrayLock(AFPData);tryRead(pData^,Size);finallyVarArrayUnlock(AFPData);end;Free;end;Close;end;end;其它語言請參考“://zksoftware/“zksoftware上技術(shù)爭論論壇。軟件加密狗和授權(quán)許可文件已取消1:N高速緩沖空間的使用在1:N比對時,需要比照對模板進(jìn)展分類,同時為了得到最高速度,SDK實(shí)際上是內(nèi)存空間,使用時需要首先用方法CreateFPCahceDB創(chuàng)立,然后用方法AddRegTemplateToFPCahceDB,RemoveRegTemplateFromFPCacheDB等FreeFPCacheDB釋放內(nèi)存空間。可以同時創(chuàng)立多個高速緩沖空間以用于實(shí)現(xiàn)分組查詢等功能。使用平面指紋圖像在一些工程工程中,很多時候要求保存指紋圖像,或者從掃描儀直接掃描得到平面指紋圖像,因此SDK4.0StarndardVersion或SDK4.0ProjectVersioin供給方法AddImageFile等可以直接從平面指紋圖像得到指紋登記模板或比對模版的方法,但需要留意必需將圖像的區(qū)分率則正確傳入此方法,350DPI。留意,在一般版中SDK4.0LiteVersion不供給此方法。指紋識別閥值的設(shè)定屬性Threshold推舉值為10.0011.5-2%之間。屬性O(shè)neToOneThreshold8。Score81:N識別中低質(zhì)量指紋模板的處理方法在1:N驗(yàn)證時,在指紋登記時系統(tǒng)自動將指紋模板依據(jù)質(zhì)量的好壞分類標(biāo)識和保存在模板中,質(zhì)量差的登記模板稱為Biokey1:1低速比對特征模版,質(zhì)量好的登記模板稱為Biokey高速比對特征模版。在一般的應(yīng)用環(huán)境中,大約有5%的登記指紋模板會被標(biāo)識為低速比對特征模板,可以用方法IsOneToOneTemplate推斷是否是低速比對特征模版,用方法ModifyTemplate可以人為強(qiáng)行轉(zhuǎn)變質(zhì)量的好壞分類標(biāo)識。由于Biokey1:1低速比對速度比較慢〔在PII23330ms〕,所以使用方法AddRegTemplateToFPCache參與到高速緩沖空間中的低速比對特征模版不能太多,否則影響比對速度。1:NIdentificationInFPCacheDB進(jìn)展指紋識別的流程如以以下圖:IdentificationFromFileInFPCacheDB (fpcHandle As Long, pVerTemplateFileAs ByvalScoreAsLong,ByvalProcessedFPNumberAsLong)AsLong比對模板比對模板模板分類依據(jù)分類查找高速緩沖中指紋比對指紋是比對分?jǐn)?shù)>=Threshold否比對分?jǐn)?shù)>=3是否保存到全部比對列表是是可疑指紋最高分>=Score否1:1低速比對TRUE比對結(jié)果FALSE否全部比對是1:1比對比對結(jié)果TRUEFALSE否全部比對是識別失敗返回結(jié)果識別成功連接多個指紋儀SensorIndex紋儀個數(shù)通過屬性SensorCount得到,假設(shè)需要區(qū)分各個指紋儀,使用屬性SensorSN,每個指紋儀的SensorSN是唯一的。模板操作的文件/字符串/變體變量方法為了在不同開發(fā)語言中,便利操作模板的登記,比對等,可以選擇文件方式、字符串和變體變量等三種方式進(jìn)展。以下分別列出,請參考:模板VariantString之間的轉(zhuǎn)換EncodeTemplate,EncodeTemplate1:Variant->StringDecodeTemplate,DecodeTemplate1:String->Variant添加模板到高速緩沖區(qū)AddRegTemplateToFPCacheDB VariantAddRegTemplateStrToFPCacheDB StringAddRegTemplateFileToFPCacheDB File在高速緩沖識別指紋IdentificationFromInFPCacheDB VariantIdentificationFromStrInFPCacheDB StringIdentificationFromFileCacheDB File1:1比對模板VerFinger VariantVerFingerFromStr StringVerFingerFromFile File7、DEMO程序說明1:N控件的VB例子程序進(jìn)展說明〔1:1控件使用根本相像。首先確認(rèn)已經(jīng)注冊1:N控件,加密狗插入到并行口或者授權(quán)文件已經(jīng)拷貝到當(dāng)前應(yīng)用程序路徑下,已經(jīng)安裝指紋儀驅(qū)動程序。運(yùn)行VB的Demo顯示如下界面:窗口指紋控件名稱為ZKFPEngX1。初始化代碼如下:IfZKFPEngX1.InitEngine=0ThenMessageBox0,“初始化成功!“,“提示信息“,0StatusBar.Caption=“指紋儀連接“TextSensorCount.Text=ZKFPEngX1.SensorCount&““TextSensorIndex.Text=ZK
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 年春節(jié)放假通知
- 幽默婚禮致辭(15篇)
- 海水的運(yùn)動+導(dǎo)學(xué)案 高一上學(xué)期+地理+人教版(2019)必修一
- 論歐龍馬滴劑治療小兒慢性鼻竇炎的療效研究
- 二零二五年度企業(yè)形象宣傳品定制采購協(xié)議書3篇
- 育齡期女性乳腺癌患者生育憂慮的混合研究
- 二零二五版新型城鎮(zhèn)化建設(shè)項(xiàng)目物業(yè)管理合同范本3篇
- 三自由度波浪補(bǔ)償風(fēng)電過橋裝置系統(tǒng)研究
- 2023-2024學(xué)年高一秋學(xué)期期末語文模擬測試(二)試題講評課件 上課課件
- 復(fù)雜環(huán)境下的智能挖掘機(jī)目標(biāo)檢測研究
- IT系統(tǒng)災(zāi)備和容災(zāi)解決方案項(xiàng)目設(shè)計(jì)方案
- 青島版二年級數(shù)學(xué)下冊(六三制)全冊課件【完整版】
- 主要負(fù)責(zé)人重大隱患帶隊(duì)檢查表
- 魯濱遜漂流記人物形象分析
- 危險廢物貯存?zhèn)}庫建設(shè)標(biāo)準(zhǔn)
- 新加坡小學(xué)二年級英語試卷practice 2
- 多層工業(yè)廠房主體結(jié)構(gòu)施工方案鋼筋混凝土結(jié)構(gòu)
- 救生艇筏、救助艇基本知識課件
- 阻燃壁紙匯報
- 梁若瑜著-十二宮六七二象書增注版
- 企業(yè)年會盛典元旦頒獎晚會通用PPT模板
評論
0/150
提交評論