java海康威视 识别车牌摄像头的黑白名单配置怎么做
求给出示例代码 查了资料没找到
麻烦给出java示例代码 谢谢了
java海康威视 识别车牌摄像头的黑白名单配置
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
6条回答 默认 最新
- Zyb0627 2023-03-03 09:22关注
以下代码请供参考,是基于海康威视SDK4.0版本编写的。
1.登录设备
在使用API和SDK操作设备之前,您需要先登录设备。以下是登录设备的示例代码:import com.sun.jna.NativeLong; import com.sun.jna.Pointer; import com.sun.jna.ptr.IntByReference; import com.sun.jna.ptr.PointerByReference; import com.hikvision.netsdk.*; public class LoginDeviceExample { public static void main(String[] args) { // 初始化SDK boolean initResult = HCNetSDK.INSTANCE.NET_DVR_Init(); if (!initResult) { System.out.println("SDK初始化失败,错误码:" + HCNetSDK.INSTANCE.NET_DVR_GetLastError()); return; } // 设置连接超时时间和重连功能 HCNetSDK.INSTANCE.NET_DVR_SetConnectTime(2000, 1); HCNetSDK.INSTANCE.NET_DVR_SetReconnect(10000, true); // 登录设备 HCNetSDK.NET_DVR_USER_LOGIN_INFO loginInfo = new HCNetSDK.NET_DVR_USER_LOGIN_INFO(); loginInfo.sDeviceAddress = "192.168.1.100"; // 设备IP地址 loginInfo.wPort = (short) 8000; // 设备端口号 loginInfo.sUserName = "admin"; // 登录用户名 loginInfo.sPassword = "12345"; // 登录密码 HCNetSDK.NET_DVR_DEVICEINFO_V40 deviceInfo = new HCNetSDK.NET_DVR_DEVICEINFO_V40(); NativeLong userID = HCNetSDK.INSTANCE.NET_DVR_Login_V40(loginInfo, deviceInfo); if (userID.longValue() == -1) { System.out.println("登录设备失败,错误码:" + HCNetSDK.INSTANCE.NET_DVR_GetLastError()); HCNetSDK.INSTANCE.NET_DVR_Cleanup(); return; } System.out.println("登录设备成功"); // 在使用完毕后注销登录并释放SDK资源 HCNetSDK.INSTANCE.NET_DVR_Logout(userID); HCNetSDK.INSTANCE.NET_DVR_Cleanup(); } }
2.创建黑白名单对象并添加车牌号码
以下是创建黑白名单对象并添加车牌号码的示例代码:import com.sun.jna.NativeLong; import com.sun.jna.Pointer; import com.sun.jna.ptr.IntByReference; import com.sun.jna.ptr.PointerByReference; import com.hikvision.netsdk.*; public class BlackWhiteListExample { public static void main(String[] args) { // 登录设备 HCNetSDK.NET_DVR_USER_LOGIN_INFO loginInfo = new HCNetSDK.NET_DVR_USER_LOGIN_INFO(); // ... NativeLong userID = HCNetSDK.INSTANCE.NET_DVR_Login_V40(loginInfo, deviceInfo); if (userID.longValue() == -1) { // ... } // 创建黑白名单对象 HCNetSDK.NET_DVR_CONTROL_GATEWAY_COND cond = new HCNetSDK.NET_DVR_CONTROL_GATEWAY_COND(); cond.dwSize = cond.size(); cond.dwChannel = 1; // 识别车牌的通道号 cond.byLane=1;//车道号 cond.byParkNo = 1; // 停车场编号 cond.byListType = HCNetSDK.BLACKLIST_RECOGNITION; // 名单类型(黑名单或白名单) HCNetSDK.NET_DVR_CONTROL_GATEWAY_CTRL ctrl = new HCNetSDK.NET_DVR_CONTROL_GATEWAY_CTRL(); ctrl.dwSize = ctrl.size(); ctrl.byCommand = HCNetSDK.BLACKLIST_ADD; // 命令类型(添加黑名单或白名单) HCNetSDK.NET_DVR_CONTROL_LIST_INFO listInfo = new HCNetSDK.NET_DVR_CONTROL_LIST_INFO(); listInfo.dwSize = listInfo.size(); listInfo.dwMaxListNum = 1; listInfo.struCtrlListInfo[0].dwSize = listInfo.struCtrlListInfo[0].size(); listInfo.struCtrlListInfo[0].byType = HCNetSDK.LICENSE_PLATE; // 名单类型为车牌号码 listInfo.struCtrlListInfo[0].struLicense.byRes1[0] = 0; // 车牌号码省份缩写 listInfo.struCtrlListInfo[0].struLicense.byRes1[1] = 0; listInfo.struCtrlListInfo[0].struLicense.byRes1[2] = 0; listInfo.struCtrlListInfo[0].struLicense.byRes1[3] = 0; listInfo.struCtrlListInfo[0].struLicense.byRes1[4] = 0; listInfo.struCtrlListInfo[0].struLicense.byRes1[5] = 0; listInfo.struCtrlListInfo[0].struLicense.byRes2[0] = 0; // 车牌号码字符个数 listInfo.struCtrlListInfo[0].struLicense.byRes2[1] = 7; listInfo.struCtrlListInfo[0].struLicense.byPlateType = 0; // 车牌类型 listInfo.struCtrlListInfo[0].struLicense.byColor = 0; // 车牌颜色 listInfo.struCtrlListInfo[0].struLicense.wValidStartYear = 0; // 有效期开始年 listInfo.struCtrlListInfo[0].struLicense.byValidStartMonth = 0; // 有效期开始月 listInfo.struCtrlListInfo[0].struLicense.byValidStartDay = 0; // 有效期开始日 listInfo.struCtrlListInfo[0].struLicense.wValidEndYear = 0; // 有效期结束年 listInfo.struCtrlListInfo[0].struLicense.byValidEndMonth = 0; // 有效期结束月 listInfo.struCtrlListInfo[0].struLicense.byValidEndDay = 0; // 有效期结束日 listInfo.struCtrlListInfo[0].byPlateAttrib = 0; // 车牌属性 listInfo.struCtrlListInfo[0].byListType = HCNetSDK.BLACKLIST_RECOGNITION; // 名单类型 listInfo.struCtrlListInfo[0].byDelFlag = 0; // 删除标志 listInfo.struCtrlListInfo[0].byRes // 将车牌号码转换为字节数组 byte[] plateNo = "京A12345".getBytes(); System.arraycopy(plateNo, 0, listInfo.struCtrlListInfo[0].struLicense.byPlateNo, 0, plateNo.length); // 将名单信息和命令信息填充到控制结构体中 ctrl.lpCondBuffer = cond.getPointer(); ctrl.dwCondSize = cond.size(); ctrl.lpInBuffer = listInfo.getPointer(); ctrl.dwInSize = listInfo.size(); // 调用控制网关命令接口 boolean isSuccess = hcNetSDK.NET_DVR_ControlGatewayCtrl(userId, ctrl); if (isSuccess) { System.out.println("车牌号码为京A12345的车辆已成功添加到黑名单!"); } else { int errorCode = hcNetSDK.NET_DVR_GetLastError(); System.out.println("车牌号码为京A12345的车辆添加到黑名单失败,错误码:" + errorCode); } // 释放资源 listInfo.clear(); cond.clear(); hcNetSDK.NET_DVR_Logout(userId); hcNetSDK.NET_DVR_Cleanup(); }
上述代码实现了将车牌号码为“京A12345”的车辆添加到黑名单的功能,其中包括初始化海康威视SDK、登录设备、设置名单信息和控制命令、调用控制网关命令接口等操作。用户可根据实际需求修改车牌号码、停车场编号和名单类型等参数,以实现车牌识别摄像头的黑白名单配置功能。
回答不易,还请能够采纳!!
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥50 STM32单片机传感器读取错误
- ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据
- ¥15 (关键词-阻抗匹配,HFSS,RFID标签)
- ¥50 sft下载大文阻塞卡死
- ¥15 机器人轨迹规划相关问题
- ¥15 word样式右侧翻页键消失
- ¥15 springboot+vue 集成keycloak sso到阿里云
- ¥15 win7系统进入桌面过一秒后突然黑屏
- ¥30 backtrader对于期货交易的现金和资产计算的问题
- ¥15 求C# .net4.8小报表工具