最近有個項目須要使用指紋採集器Live 20R,買來這個小玩意後不知道怎麼用,看了一些教程和本身摸索了一下,才初步掌握了用的方法。html
環境:c++
首先插上Live 20R後,電腦沒什麼反應,能夠在「設備和打印機」中看到Live 20R是已經鏈接到了電腦上來,可是因爲缺乏驅動程序,所以當你雙擊Live 20R的圖標時,電腦會提醒你該設備沒有驅動程序,這個驅動程序須要咱們本身去官網上進行安裝。windows
接着須要去官網上下載開發包,連接以下:安全
https://www.zkteco.com/cn/download_catgory.htmlui
能夠看到下面的SDK開發包,分爲Windows和Android,因爲個人環境是Win 10,所以下載紅框圈主的windows開發包。操作系統
下載下來後首先運行setup.exe安裝驅動程序3d
當安裝完畢後,咱們再次打開「設備與打印機」。code
發現已經不提示缺乏驅動程序了,而是該設備運轉正常。htm
以後再次進入官網下載的開發包裏面,這裏面提供了幾種不一樣語言寫的demo程序和一些依賴庫文件,咱們打開C語言的示例程序,能夠看到是MFC程序,很是老了(爲了運行,我又在本身的VS2019裏面從新裝了一下對MFC的支持),能夠看到大概運行起來就是下圖這個樣子,手指按上去,能夠得到手指的灰度圖(出於安全考慮打了一部分碼 🤣)。同時Demo還提供了驗證指紋圖像是否一致等功能,裏面代碼仍是值得好好研究的😀。blog
在代碼中將include的頭文件都包含進來
#include "libzkfp/include/zkinterface.h" #include "libzkfp/include/libzkfperrdef.h" #include "libzkfp/include/libzkfptype.h" #include "libzkfp/include/libzkfp.h"
能夠看到庫文件有兩個x64爲64位的庫文件,x86爲32位的庫文件,所以咱們經過添加下面這句,來添加庫文件
#ifdef _WIN64 #pragma comment(lib, "libzkfp/x64lib/libzkfp.lib") #else #pragma comment(lib, "libzkfp/x86lib/libzkfp.lib") #endif
定義設備句柄
HANDLE device_handle;
初始化設備
if (ZKFP_ERR_OK != ZKFPM_Init()) { //initialize resource cout << "error in zkfpm_init\n"; }
打開設備
if ((device_handle = ZKFPM_OpenDevice(0)) == NULL) {//open the device cout << "error in zkfpm_openDevice\n"; ZKFPM_Terminate(); return 0; }
獲取參數:指紋圖像的寬和高
int m_imgFPWidth; int m_imgFPHeight; unsigned char szTemplate[MAX_TEMPLATE_SIZE]; unsigned int tempLen = MAX_TEMPLATE_SIZE; unsigned int size = 4; ZKFPM_GetParameters(device_handle, 1, (unsigned char*)&m_imgFPWidth, &size); size = 4; ZKFPM_GetParameters(device_handle, 2, (unsigned char*)&m_imgFPHeight, &size);
獲取指紋
unsigned char* m_pImgBuf = new unsigned char[m_imgFPWidth * m_imgFPHeight]; int ret = ZKFPM_AcquireFingerprint(device_handle, m_pImgBuf, m_imgFPWidth * m_imgFPHeight, szTemplate, &tempLen); while (ZKFP_ERR_OK != ret) { ret = ZKFPM_AcquireFingerprint(device_handle, m_pImgBuf, m_imgFPWidth * m_imgFPHeight, szTemplate, &tempLen); } for (int i = 0; i < m_imgFPHeight * m_imgFPHeight; i++) { cout << m_pImgBuf[i] << " "; }
咱們採用LibTiff庫實現建立Tiff圖像。具體細節不進行介紹,由於我也不是很清楚內部原理如何。
最後成功實現了生成tif圖像。
[1] 用LibTIFF繪製TIFF圖像
連接:https://pan.baidu.com/s/1EPrDz7NVJ_LLp5gp_dNHeg 提取碼:kksz 複製這段內容後打開百度網盤手機App,操做更方便哦--來自百度網盤超級會員V1的分享