版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、FP-200指紋識別算法使用手冊4. ActiveX控件參考SDK分為1:1和1:N兩個控件,其中接口屬性和方法基本相同,而接口方法只有涉及1:N比對部分不同,因此以下綜合說明兩個控件,不同之處將分別標(biāo)出和說明。以下是語法說明,其中指紋模板Variant變量代表一維字節(jié)數(shù)組。4.1屬性4.1.1 Active as BooleanRead only當(dāng)前SensorIndex設(shè)定的指紋采集器是否準(zhǔn)備就緒。4.1.2 EngineValid as BooleanRead only指紋識別系統(tǒng)是否正常工作。調(diào)用過函數(shù)initEngine后會返回有效結(jié)果4.1.3 EnrollIndex As Lon
2、gRead only登記指紋時取樣的序號,即表示當(dāng)前手指登記已經(jīng)取到的有效次數(shù)。4.1.4 EnrollCount As Long登記指紋時取樣的次數(shù),取值范圍為1-4次4.1.5 FPEngineVersion AS Stringread only指紋識別系統(tǒng)版本號4.1.6 ImageHeight AS integerRead only指紋圖像的高度4.1.7 ImageWidth AS integerRead only指紋圖像的寬度4.1.8 IsRegister As BooleanRead only是否正登記指紋4.1.9 OneToOneThreshold As Boolean設(shè)定
3、Biokey低速指紋1:1比對的識別閥值分?jǐn)?shù)(1-100),默認(rèn)為10,值越大,誤判率越低同時拒絕率變大注意:1:1控件沒有這個屬性4.1.10 RegTplFileName As String設(shè)置當(dāng)事件OnEnrollToFile發(fā)生時,保存指紋登記模板的文件名稱。4.1.11 SensorCount As LongRead only當(dāng)前連接到計算機的指紋采集器的個數(shù),當(dāng)EngineValid無效時,返回04.1.12 SensorIndex AS Long連接多個指紋采集器時,選擇指紋頭的序號,從0開始;小于零時指紋采集器不工作。4.1.13 SensorSN As String指紋采集器
4、的硬件序列號4.1.14 TemplateLen As LongRead only指紋登記模板的字節(jié)長度。4.1.15 Threshold As Long設(shè)定指紋識別系統(tǒng)比對識別閥值分?jǐn)?shù)(1-100),默認(rèn)為10,值越大,誤判率越低同時拒絕率變大4.1.16 VerTplFileName As String設(shè)置當(dāng)事件OnCaptureToFile發(fā)生時,保存指紋驗證模板的文件名稱。4.2 方法1:1和1:N控件接口相同的方法:4.2.1 Sub BeginEnroll()開始登記指紋,登記結(jié)束后發(fā)生OnEnroll事件。4.2.2 Sub CancelEnroll()取消當(dāng)前的指紋登記狀態(tài),即
5、由 BeginEnroll開始的操作可由此函數(shù)中斷。4.2.3 Function DongleIsExist As Boolean檢查加密狗是否存在。4.2.4 Function DongleSeed(Byval lp2 As Long, Byval p1, p2, p3, p4 As Integer) As Boolean得到種子碼lp2的四個16位整數(shù)(p1,p2,p3,p4)返回值,加密狗可以通過內(nèi)部算法計算一個種子碼,得到四個返回碼。種子碼算法是不公開的,可以通過檢查返回碼是否是期望的值來檢查加密狗是否存在。4.2.5 Function DongleUserID As Long讀出加密
6、狗中的用戶ID,用戶ID不會重復(fù)相同。保存在加密狗內(nèi)部特定位置。4.2.6 Function DongleMemRead(Byval p1, p2 As Integer, buf) As Boolean讀出加密狗內(nèi)存區(qū)位置p1開始的p2個字節(jié)到Variant變量buf(一維字節(jié)數(shù)組)。內(nèi)存區(qū)共有24個字節(jié),位置為0-234.2.7 Function DongleMemWrite(Byval p1, p2 As Integer, buf) As Boolean寫入Variant變量buf(一維字節(jié)數(shù)組)到加密狗內(nèi)存區(qū)位置p1開始的p2個字節(jié)內(nèi)。內(nèi)存區(qū)共有24個字節(jié),位置為0-234.2.8 Fu
7、nction GetTemplate()得到最近一次獲得的指紋模板。4.2.9 Function GetFingerImage(Byval AFingerImage) As Boolean得到最近一次獲得的指紋圖像(BMP 格式)。4.2.10 Function InitEngine() As Long初始化指紋識別系統(tǒng)。SensorCount、SensorSN、EngineValid、ImageHeight、ImageWidth等屬性需在該函數(shù)被調(diào)用后才能返回正確結(jié)果。返回值:0 初始化成功1 指紋識別驅(qū)動程序加載失敗2 沒有連接指紋識別儀3 屬性SensorIndex指定的指紋采集器不存在
8、(注意:在調(diào)用之前設(shè)置屬性SensorIndex)可以使用方法EndEngine釋放指紋設(shè)備系統(tǒng)4.2. 11 Function VerFinger(byval regTemplate, verTemplate, AdoLearning As Boolean, byval AregFeatureChanged As Boolean) As Boolean比對兩枚指紋的特征模板是否匹配。其中regTemplate表示指紋登記特征模板,verTemplate表示現(xiàn)場采集的指紋驗證特征模板,AdoLearning表示是否進行指紋特征模板學(xué)習(xí)更新。AregFeatureChanged表示登記模板reg
9、Template是否改變,兩枚指紋匹配時返回 True,不匹配時返回 False說明: 手指特征隨時間可能會發(fā)生一定程度的變化,通常不會影響指紋的比對,但通過進行指紋特征模板學(xué)習(xí)更新,系統(tǒng)會綜合得到新的模板,從而可以降低拒絕率。4.2.12 Function VerFingerFromFile(regTemplateFile As String, verTemplateFile As String,AdoLearning As Boolean, byval AregFeatureChanged As Boolean) As Boolean比對兩枚指紋的特征模板文件是否匹配。其中regTempl
10、ateFile表示指紋登記特征模板文件,verTemplateFile表示現(xiàn)場采集的指紋驗證特征模板文件,AdoLearning表示是否進行指紋特征模板學(xué)習(xí)更新。AregFeatureChanged表示登記模板文件regTemplateFile是否改變。兩枚指紋匹配時返回 True,不匹配時返回 False4.2.13 Function VerRegFingerFile(RegTemplateFile As String, verTemplate,AdoLearning As Boolean, byval AregFeatureChanged As Boolean) As Boolean比對兩
11、枚指紋的特征模板是否匹配。其中regTemplate表示由 FileName 指定文件中的以前登記指紋特征模板,verTemplate表示現(xiàn)場采集的指紋的特征模板,AdoLearning表示是否進行指紋特征模板學(xué)習(xí)更新。AregFeatureChanged表示登記模板文件regTemplateFile是否改變。兩枚指紋匹配時返回 True,不匹配時返回 False4.2.14 Sub PrintImageAt(HDC As OLE_HANDLE, X As Long, Y As Long, aWidth As Long, aHeight As Long)在由(x,y)指定的位置上按照(aWid
12、th, aHeight)指定的大小顯示指紋圖像,HDC表示要顯示指紋的窗口的設(shè)備描述表句柄4.2.15 Sub PrintImageEllipseAt(HDC As OLE_HANDLE, X As Long, Y As Long, aWidth As Long, aHeight As Long, bkColor As OLE_COLOR)在由(x,y)指定的位置上按照(aWidth, aHeight)指定的大小顯示指紋圖像,HDC表示要顯示指紋的窗口的設(shè)備描述表句柄。這里的指紋圖像被一橢圓形包圍。4.2.16 Sub SaveBitmap(FileName As String)保存最后一次采
13、集到的指紋的圖像到 FileName 指定的位圖文件中。4.2.17 Sub SaveJPG(FileName As String)保存最后一次采集到的指紋的圖像到 FileName 指定的Jpeg文件中。4.2.18 Function SaveTemplate(FileName As String, Template) As Boolean保存Template指紋的特征模板到 FileName 指定的文件中。4.2.19 function EncodeTemplate(ASour, var ADest As String) As Boolean將控件使用的Variant模板ASour轉(zhuǎn)換為B
14、ASE64格式的模板字符串ADest。4.2.20 function DecodeTemplate(const ASour As String, ADest) As Boolean將BASE64格式的模板字符串ASour轉(zhuǎn)換為控件使用的Variant類型ADset模板。 以上兩個方法主要用于模板的數(shù)據(jù)庫保存,Variant類型模板是以二進制格式數(shù)組方式存放,在PB, VB等語言中操作比較困難,方法EncodeTemplate可以將Variant類型編碼轉(zhuǎn)換為字符串類型,方法DecodeTemplate可以將字符串類型編碼轉(zhuǎn)換為Variant類型,需要注意的是,模板變量BASE64編碼為字符串后
15、,模板長度將變長。4.2.21 Sub BeginCapture()設(shè)置當(dāng)前指紋設(shè)備開始取像,可以使用方法CanncelCapture禁止當(dāng)前指紋設(shè)備取像。4.2.22 Sub EndEngine()釋放由方法InitEngine初始化的指紋設(shè)備,可以使用方法InitEngine重新初始化指紋設(shè)備。1:N控件接口方法:4.2.23 Function AddRegTemplateToFPCacheDB(fpcHandle As Long, FPID As Long, pRegTemplate) As Long添加指紋登記模板pRegTemplate到指紋識別高速緩沖空間fpcHandle,F(xiàn)PI
16、D是要添加登記模板的標(biāo)識。4.2.24 Function AddRegTemplateFileToFPCacheDB(fpcHandle As Long, FPID As Long, pRegTemplateFile As String) As Long添加由 pRegTemplateFile指定文件中的以前指紋登記特征模板到指紋識別高速緩沖空間fpcHandle,F(xiàn)PID是要添加登記模板的標(biāo)識,必須>=0。返回值為1表示成功,0表示失敗4.2.25 Function CreateFPCacheDB As Long創(chuàng)建指紋識別高速緩沖空間,進行1:N識別時必須首先調(diào)用該函數(shù)得到指紋識別緩
17、沖空間句柄。說明:由于Biokey 1:1低速比對速度比較慢(在PII 233大約30ms),所以使用AddRegTemplateToFPCache 函數(shù)加入到緩沖中的1:1指紋不能太多,否則影響比對速度。通過IsOneToOneTemplate可以判斷是否屬于1:1指紋 可以同時創(chuàng)建多個緩沖區(qū),用于分組比對等。4.2.26 Sub FlushFPImages ()清空當(dāng)前指紋設(shè)備中的緩沖圖像。4.2.27 Sub FreeFPCacheDB( fpcHandle As Long)釋放指紋識別高速緩沖空間,fpcHandle是調(diào)用該函數(shù)CreateFPCacheDB得到指紋識別緩沖空間句柄。4
18、.2.28 Function IdentificationFromFileInFPCacheDB (fpcHandle As Long, pVerTemplateFile As String, Byval Score As Long, Byval ProcessedFPNumber As Long) As Long將指紋驗證模板文件pVerTemplateFile和指紋識別高速緩沖空間fpcHandle中所有登記模板進行比對,Score傳出ProcessedFPNumber次比對中的最高分?jǐn)?shù),ProcessedFPNumber傳出比對的次數(shù),當(dāng)識別成功時返回值指紋標(biāo)識,失敗返回-1。注意:在識
19、別過程中如果比對分?jǐn)?shù)大于等于屬性Threshold,則認(rèn)為比對成功,不再和緩沖空間中剩余的指紋登記模板進行比對,函數(shù)返回匹配成功的指紋登記模板的指紋標(biāo)識;當(dāng)指紋驗證模板和指紋識別高速緩沖空間中所有指紋登記模板進行比對的分?jǐn)?shù)都沒有超過設(shè)定的Threshold,但同時比對的最高分?jǐn)?shù)大于等于Score,則認(rèn)為比對也是匹配成功,函數(shù)返回比對最高分?jǐn)?shù)的指紋登記模板的標(biāo)識,推薦設(shè)定為9;4.2.29 Function IdentificationInFPCacheDB (fpcHandle As Long, pVerTemplate, Byval Score As Long, Byval Processe
20、dFPNumber As Long) As Long將指紋驗證模板pVerTemplate和指紋識別高速緩沖空間fpcHandle中所有登記模板進行比對,Score傳出ProcessedFPNumber次比對中的最高分?jǐn)?shù),ProcessedFPNumber傳出比對的次數(shù),當(dāng)識別成功時返回值指紋標(biāo)識,失敗返回-1。注意:在識別過程中如果比對分?jǐn)?shù)大于等于屬性Threshold,則認(rèn)為比對成功,不再和緩沖空間中剩余的指紋登記模板進行比對,函數(shù)返回匹配成功的指紋登記模板的指紋標(biāo)識;當(dāng)指紋驗證模板和指紋識別高速緩沖空間中所有指紋登記模板進行比對的分?jǐn)?shù)都沒有超過設(shè)定的Threshold,但同時比對的最高分
21、數(shù)大于等于Score,則認(rèn)為比對也是匹配成功,函數(shù)返回比對最高分?jǐn)?shù)的指紋登記模板的標(biāo)識,推薦設(shè)定為9;4.2.30 Function IsOneToOneTemplate (ATemplate) As Boolean判斷當(dāng)前指紋特征模板Atemplate是否為Biokey 1:1低速比對特征模板。4.2.31 Function ModifyTemplate(byval Atemplate, AOneToOne As Boolean) As Boolean根據(jù)AOneToOne修改指紋特征模板Atemplate為Biokey 1:1低速比對特征模板或者高速比對特征模板。4.2.32 Functi
22、on RemoveRegTemplateFromFPCacheDB (fpcHandle As Long, FPID As Long) As Long刪除指紋識別高速緩沖空間fpcHandle中,指紋標(biāo)識為FPID的指紋登記模板。返回值為1表示成功,0表示失敗4.2.33 Sub CancelCapture()禁止當(dāng)前指紋設(shè)備取像,可以使用方法BeginCapture使指紋設(shè)備開始取像。1:1控件接口方法:4.2.34 Function AddBitmap(BitmapHandle As OLE_HANDLE, ValidRectX1 As Long, ValidRectY1 As Long,
23、 ValidRectX2 As Long, ValidRectY2 As Long, DPI As Long) As Boolean使用由BitmapHandle指定的位圖進行登記或比對。ValidRectX1、ValidRectY1、 ValidRectX2、ValidRectY2四個參數(shù)指定了圖像的有效區(qū)域,如果指定的圖像區(qū)域無效,將取圖像取全部區(qū)域,DPI指定了圖像的分辨率大小。4.2.35 Function AddImageFile(FileName As String, DPI As Long) As Boolean使用由FileName指定的指紋圖像文件(支持BMP,TIFF,JP
24、G,GIF等格式)進行登記或比對。DPI指定了圖像的分辨率大小。4.3 事件4.3.1 OnCapture(ActionResult AS Boolean, ATemplate)取到用于比對的指紋驗證模板ATemplate, ActionResult =true 表示成功取到指紋模板;False 表示失敗。4.3.2 OnCaptureToFile(ActionResult AS Boolean)取到用于比對的指紋驗證模板,模板保存到文件中,文件名稱為屬性VerTplFileName設(shè)置, ActionResult =true 表示成功取到指紋模板;False 表示失敗。4.3.3 OnEnr
25、oll(ActionResult AS Boolean, ATemplate)用戶登記指紋結(jié)束時調(diào)用該事件, ActionResult =true 表示成功登記,用pTemplate屬性可取得指紋特征模板;False 表示失敗。4.3.4 OnEnrollToFile(ActionResult AS Boolean)用戶登記指紋結(jié)束時調(diào)用該事件, ActionResult =true 表示成功登記,指紋特征模板保存到文件中,文件名稱為屬性RegTplFileName設(shè)置;False 表示失敗。4.3.5 OnFeatureInfo(AQuality As Long) 取得指紋初始特征,Qual
26、ity表示該指紋特征的質(zhì)量,有如下可能值:0: 好的指紋特征1: 特征點不夠2: 其它原因?qū)е虏荒苋〉街讣y特征4.3.6 OnImageReceived(byval AImageValid As Boolean)設(shè)備取到指紋圖像或者通過AddImageFile和AddBitmap加入指紋圖像時調(diào)用該事件,AImageValid表示是否進行模板提取,設(shè)置為False后,系統(tǒng)在取到指紋圖像后返回,不進行模板提取。5工作流程說明OnImageReceivedOnFeatureInfoOnEnrollOnEnrollToFileTemplateImageIsRegister = True1-4次否是B
27、eginEnroll 登錄流程如下: 比對流程如下:OnImageReceivedOnFeatureInfoOnCaptureOnCaptureToFileTemplateImageIsRegister = FalseBeginCapture指紋采集器初始化進入工作狀態(tài)后,調(diào)用BeginEnroll處于登記指紋狀態(tài),調(diào)用BeginCapture處于指紋驗證狀態(tài)??丶墓ぷ鞣绞绞腔谑录?qū)動,觸發(fā)事件的順序參考上面示意圖。指紋登記一般需要按同一手指1-4次,然后由識別系統(tǒng)綜合處理得到一個指紋登記模板,按壓登記指紋次數(shù)由控件屬性EnrollCount設(shè)置,達到設(shè)定次數(shù)后會觸發(fā)OnEnroll和On
28、EnrollToFile事件。指紋驗證時,按壓手指后會觸發(fā)OnCapture和OnCaptureToFile事件,此時可以調(diào)用VerFinger或者IdentificationInFPCacheDB進行1:1或者1:N比對。需要注意每次按壓手指都會觸發(fā)OnFeatureInfo事件,如果按壓手指的指紋模板質(zhì)量不合格,則本次取像無效,需要重新按壓手指。6常見問題說明6.1 1:1和1:N控件區(qū)別1:1控件主要用于需要進行1:1驗證的開發(fā)項目,一般需要預(yù)先輸入當(dāng)前驗證客戶的標(biāo)識,然后得到他已經(jīng)登記的一個或幾個模板進行驗證;而1:N控件主要用于不輸入客戶標(biāo)識,直接通過客戶指紋從已經(jīng)登記的指紋模板中找
29、出自己。1:1控件主要目標(biāo)是高的通過率和相對高的準(zhǔn)確率;1:N控件主要目標(biāo)是高的比對速度和相對高的準(zhǔn)確率.。1:1控件的最大模板長度只有310字節(jié),而1:N控件的最大模板長度是1152字節(jié),由于1:N需要進行高速比對,而且要求對誤判率要求很高,所以需要保存較多的模板特征信息。6.2 數(shù)據(jù)庫中指紋模板寫入和讀出SDK中指紋模板是以Vairant變量的方式保存和傳遞,其存儲的是一維二進制字節(jié)數(shù)組,不能像字符串一樣直接用SQL語句寫入和讀出,有兩種處理方法:1、 EncodeTemplate和DecodeTemplate方法可以在Variant變量和字符串變量之間互相進行BASE64編碼轉(zhuǎn)換,缺點是
30、轉(zhuǎn)換為字符串后,模板長度會增加大約1/3。2、直接操作Variant變量,下面是操作示例:Delphi, CB:procedure TFPProcess.SaveFPData(AQuery: TADOQuery; AFingerID: Integer; AFPData: OleVariant);var pData: PChar;begin with AQuery do begin Close; SQL.Clear; SQL.Add('SELECT * FR
31、OM zkFingerPrint WHERE FingerID = ' + IntToStr(AFingerID); Open; if IsEmpty then Append else Edit; FieldByName('FingerID').Value := AFingerID;
32、160; /保存指紋模板 with TBlobStream(CreateBlobStream(FieldByName('Template'), bmWrite) do begin pData := VarArrayLock(AFPData); try Write(pData, VarArrayHighBound(AFPData, 1) - V
33、arArrayLowBound(AFPData, 1) + 1); finally VarArrayUnlock(AFPData); end; Free; end; Post; Close; end;end;proc
34、edure TFPProcess.GetFPData(AQuery: TADOQuery; AFingerID: Integer; var AFPData: OleVariant);var pData: PChar;begin with AQuery do begin Close; SQL.Clear; SQL.Add('SELECT * FROM zkFingerPrint WHERE FingerID = ' + IntToStr(AFinge
35、rID); Open; /讀取數(shù)據(jù) if not IsEmpty then with TBlobStream(CreateBlobStream(FieldByName('Template'), bmRead) do begin AFPData := VarArrayCreate(0, Size + 1, v
36、arByte); pData := VarArrayLock(AFPData); try Read(pData, Size); finally VarArrayUnlock(AFPData); end; Free; end; Close; end;end;6.
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年氣體分離及液化設(shè)備項目申請報告模板
- 2025年壓縮式垃圾車項目提案報告范文
- 企業(yè)員工辭職信范文(15篇)
- 2024年未實繳出資股權(quán)投資退出與轉(zhuǎn)讓服務(wù)合同3篇
- 2025年抗蛇毒血清項目提案報告模范
- 2025年柔性樹脂版項目申請報告模式
- 教師綜合培訓(xùn)的心得體會5篇
- 我的大學(xué)生活演講稿
- 我的未來不是夢演講稿(15篇)
- 學(xué)校學(xué)生實習(xí)自我鑒定(集合5篇)
- 衛(wèi)生監(jiān)督協(xié)管醫(yī)療監(jiān)督檢查培訓(xùn)課件
- 長江引航中心公開招聘45人【共500題附答案解析】模擬試卷
- 簡約企業(yè)報刊報紙設(shè)計排版word模板
- 大班科學(xué)活動 有害的噪音
- 魚骨圖PPT模板精品教案0002
- 話劇《林黛玉進賈府》
- 油墨組成和分類
- 人音版初中音樂七年級下冊 第四單元 美洲樂聲 《化裝舞會》課件(共8張PPT)
- 北師大版三年級數(shù)學(xué)上冊認(rèn)識小數(shù)復(fù)習(xí)課件ppt
- 2019版外研社高中英語必修二單詞默寫表
- 美的分權(quán)規(guī)范手冊
評論
0/150
提交評論