1.需求
集成海康威视DS-K560人证对比终端设备,实现人脸+身份证识别,识别出身份证信息,抓拍人脸照片以及身份证照片
2.代码实现
1.首先我们需要把海康威视的的部分库文件导入到我们的项目中,没有库文件可以去海康威视的官网下载最新的SDK,压缩包里面会有库文件,链接我会放在最下面。
需要导入的文件有:HCNetSDKCom文件夹、AudioRender.dll、HCCore.dll、HCNetSDK.dll、hlog.dll、hpr.dll、libeay32.dll、ssleay32.dll。
以下是我的库文件存放路径大家可以参考一下
2.
设备登录
/**
* 登录
* */
public static void login(){
//注册之前判断有没有已注册用户,有就删除
if(lUserID>-1){
//注销
hCNetSDK.NET_DVR_Logout(lUserID);
lUserID = -1;
}
//注册
//设备IP地址
m_sDeviceIP = "192.168.1.64";
m_strLoginInfo.sDeviceAddress = new byte[HCNetSDK.NET_DVR_DEV_ADDRESS_MAX_LEN];
System.arraycopy(m_sDeviceIP.getBytes(), 0, m_strLoginInfo.sDeviceAddress, 0, m_sDeviceIP.length());
//设备账户 如果没有,一般默认为admin
m_sUsername = "admin";
m_strLoginInfo.sUserName = new byte[HCNetSDK.NET_DVR_LOGIN_USERNAME_MAX_LEN];
System.arraycopy(m_sUsername.getBytes(), 0, m_strLoginInfo.sUserName, 0, m_sUsername.length());
//设备密码 购买时会提供
m_sPassword ="1232132";
m_strLoginInfo.sPassword = new byte[HCNetSDK.NET_DVR_LOGIN_PASSWD_MAX_LEN];
System.arraycopy(m_sPassword.getBytes(), 0, m_strLoginInfo.sPassword, 0, m_sPassword.length());
//设备端口
m_strLoginInfo.wPort =8000;
//海康威视登录登录方法
lUserID =hCNetSDK.NET_DVR_Login_V40(m_strLoginInfo,m_strDeviceInfo);
//判断注册是否成功
if(lUserID==-1){
JOptionPane.showMessageDialog(null, "false,错误号:" + hCNetSDK.NET_DVR_GetLastError());
} else {
JOptionPane.showMessageDialog(null, "success");
}
}
报警布防监听
//布防
public static void initMemberFlowUpload(){
//设置报警回调函数
boolean callflag = hCNetSDK.NET_DVR_SetDVRMessageCallBack_V31(new Haikangimpl(),null);
if(callflag){
System.out.println("callback----success+设置回调函数成功");
}
//启用布防-其他报警布防参数不需要设置,不支持
HCNetSDK.NET_DVR_SETUPALARM_PARAM lpSetupParam = new HCNetSDK.NET_DVR_SETUPALARM_PARAM();
lpSetupParam.dwSize=lpSetupParam.size();
lpSetupParam.byLevel=1;//智能交通布防优先级:0- 一等级(高),1- 二等级(中),2- 三等级(低)
lpSetupParam.byAlarmInfoType=1;//智能交通报警信息上传类型:0- 老报警信息(NET_DVR_PLATE_RESULT),1- 新报警信息(NET_ITS_PLATE_RESULT)
lpSetupParam.byDeployType =1; //布防类型(仅针对门禁主机、人证设备):0-客户端布防(会断网续传),1-实时布防(只上传实时数据)
lpSetupParam.write();
final int lAlarmHandle = hCNetSDK.NET_DVR_SetupAlarmChan_V41(lUserID,lpSetupParam);
if (lAlarmHan