最近有个项目须要使用指纹采集器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的分享