java调用海康威视人脸识别抓拍

**1.**首先下载官网的sdk开发包,引入HCNetSDK.java,里面定义了很多调用的能力集。
**2.**通过报警回调函数中的黑名单报警这个接口去实现人脸抓拍的。
3.简单来说就是写个类去实现HCNetSDK.FMSGCallBack 然后根据条件函数 case HCNetSDK.COMM_SNAP_MATCH_ALARM。
4进行类的初始化操作、账号和密码的设定,IP地址的绑定。
在这里插入图片描述
**5.**下载好了之后创建maven项目.
按照SDK里面的文档要求把下图文件夹和文件引入(在SDK库文件夹里),7个dll文件和一个KCNetSDK文件夹(我这里创建了一个HCNetSDK的文件夹装下这些)
在这里插入图片描述
6. 接下来把他的接口类引入 如下在这里插入图片描述
打开接口类 看33行 这里有个引入dll文件的代码,我这里是用的文件引入工具类(这个类后面有给出),你们自己换成目录。resources\HCNetSDK\HCNetSDK的绝对路径!!!!其实这里引入的就是我们引入的7个dll文件中的HCNetSDK.dll这个文件,这里绝对路径引入的时候不要.dll后缀名。
在这里插入图片描述
文件也引入了 接下来就是我们自己创建java类去调用它的接口类了,创建两个类 一个是报警回调函数的实现类(用来实现调用海康人脸比对),一个是主类 里面包含 初始化海康接口类、调用第一个函数实现人脸评分抓拍等等。
附上核心代码!

package HikSnap;import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.Date;
import java.text.SimpleDateFormat;import com.sun.jna.NativeLong;
import com.sun.jna.Pointer;/***@author  fengwenyong* 实时进行人脸抓拍保存远近图片*/class FMSGCallBack_V31 implements HCNetSDK.FMSGCallBack_V31
{//实时人脸抓拍上传public boolean invoke(NativeLong lCommand, HCNetSDK.NET_DVR_ALARMER pAlarmer, Pointer pAlarmInfo, int dwBufLen, Pointer pUser){AlarmDataHandle(lCommand, pAlarmer, pAlarmInfo, dwBufLen, pUser);return true;}public void AlarmDataHandle(NativeLong lCommand, HCNetSDK.NET_DVR_ALARMER pAlarmer, Pointer pAlarmInfo, int dwBufLen, Pointer pUser){switch (lCommand.intValue()){case HCNetSDK.COMM_UPLOAD_FACESNAP_RESULT: //实时人脸抓拍上传System.out.println("低于设定拍照阈值,请重新识别");HCNetSDK.NET_VCA_FACESNAP_RESULT strFaceSnapInfo = new HCNetSDK.NET_VCA_FACESNAP_RESULT();strFaceSnapInfo.write();Pointer pFaceSnapInfo = strFaceSnapInfo.getPointer();pFaceSnapInfo.write(0, pAlarmInfo.getByteArray(0, strFaceSnapInfo.size()), 0, strFaceSnapInfo.size());strFaceSnapInfo.read();if(strFaceSnapInfo.dwFaceScore>80) {SimpleDateFormat df = new SimpleDateFormat ("yyyyMMddHHmmss");//设置日期格式String time = df.format (new Date ( ));// new Date()为获取当前系统时间System.out.println("face score is " + strFaceSnapInfo.dwFaceScore+" point");try {//设置图片保存路径FileOutputStream small = new FileOutputStream ("D:\\Picture\\" + time + "small.jpg");FileOutputStream big = new FileOutputStream ("D:\\Picture\\" + time + "big.jpg");try {small.write (strFaceSnapInfo.pBuffer1.getByteArray (0, strFaceSnapInfo.dwFacePicLen), 0, strFaceSnapInfo.dwFacePicLen);small.close ( );} catch (IOException ex) {ex.printStackTrace ( );}try {big.write (strFaceSnapInfo.pBuffer2.getByteArray (0, strFaceSnapInfo.dwBackgroundPicLen), 0, strFaceSnapInfo.dwBackgroundPicLen);big.close ( );} catch (IOException ex) {ex.printStackTrace ( );}} catch (FileNotFoundException ex) {ex.printStackTrace ( );}}break;case HCNetSDK.COMM_SNAP_MATCH_ALARM://人脸黑名单比对报警System.out.println("SNAP_MATCH_ALARM");HCNetSDK.NET_VCA_FACESNAP_MATCH_ALARM strFaceSnapMatch = new HCNetSDK.NET_VCA_FACESNAP_MATCH_ALARM();strFaceSnapMatch.write();Pointer pFaceSnapMatch = strFaceSnapMatch.getPointer();pFaceSnapMatch.write(0, pAlarmInfo.getByteArray(0, strFaceSnapMatch.size()), 0, strFaceSnapMatch.size());strFaceSnapMatch.read();if ((strFaceSnapMatch.dwSnapPicLen > 80) && (strFaceSnapMatch.byPicTransType == 80)) {SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss");String newName = sf.format(new Date());FileOutputStream fout;try {String filename =  "D:\\Picture\\" + newName + "_pSnapPicBuffer" + ".jpg";fout = new FileOutputStream(filename);//将字节写入文件long offset = 0;ByteBuffer buffers = strFaceSnapMatch.pSnapPicBuffer.getByteBuffer(offset, strFaceSnapMatch.dwSnapPicLen);byte[] bytes = new byte[strFaceSnapMatch.dwSnapPicLen];buffers.rewind();buffers.get(bytes);fout.write(bytes);fout.close();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if ((strFaceSnapMatch.struSnapInfo.dwSnapFacePicLen >80) && (strFaceSnapMatch.byPicTransType == 80)) {SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss");String newName = sf.format(new Date());FileOutputStream fout;try {String filename =  "D:\\Picture\\" + newName + "_struSnapInfo_pBuffer1" + ".jpg";fout = new FileOutputStream(filename);//?????д?????long offset = 0;ByteBuffer buffers = strFaceSnapMatch.struSnapInfo.pBuffer1.getByteBuffer(offset, strFaceSnapMatch.struSnapInfo.dwSnapFacePicLen);byte[] bytes = new byte[strFaceSnapMatch.struSnapInfo.dwSnapFacePicLen];buffers.rewind();buffers.get(bytes);fout.write(bytes);fout.close();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if ((strFaceSnapMatch.struBlackListInfo.dwBlackListPicLen > 80) && (strFaceSnapMatch.byPicTransType == 80)) {SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss");String newName = sf.format(new Date());FileOutputStream fout;try {String filename = "D:\\Picture\\" + newName + "_fSimilarity_" + strFaceSnapMatch.fSimilarity + "_struBlackListInfo_pBuffer1" + ".jpg";fout = new FileOutputStream(filename);//?????д?????long offset = 0;ByteBuffer buffers = strFaceSnapMatch.struBlackListInfo.pBuffer1.getByteBuffer(offset, strFaceSnapMatch.struBlackListInfo.dwBlackListPicLen);byte[] bytes = new byte[strFaceSnapMatch.struBlackListInfo.dwBlackListPicLen];buffers.rewind();buffers.get(bytes);fout.write(bytes);fout.close();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}break;}}}public class Snap {static HCNetSDK hCNetSDK = HCNetSDK.INSTANCE;static NativeLong lUserID = new NativeLong(-1);//用户句柄static NativeLong lAlarmHandle = new NativeLong(-1);//报警布防句柄FMSGCallBack_V31 fMSFCallBack_V31 = null;/*** @param args*/public static void main(String[] args) {Snap test = new Snap();hCNetSDK.NET_DVR_Init();test.Login();test.SetAlarm();while(true);}public void Login(){	HCNetSDK.NET_DVR_DEVICEINFO_V30 m_strDeviceInfo = new HCNetSDK.NET_DVR_DEVICEINFO_V30();lUserID = hCNetSDK.NET_DVR_Login_V30("10.118.230.27",(short) 8000, "admin", "zhly2019app", m_strDeviceInfo);if (lUserID.longValue() == -1){System.out.println("login fail,error code "+hCNetSDK.NET_DVR_GetLastError());} else{System.out.println("login successful!");}}public  void SetAlarm(){if (lAlarmHandle.intValue() < 0)//尚未布防,需要布防{if (fMSFCallBack_V31 == null){fMSFCallBack_V31 = new FMSGCallBack_V31();Pointer pUser = null;if (!hCNetSDK.NET_DVR_SetDVRMessageCallBack_V31(fMSFCallBack_V31, pUser)){System.out.println("Set callback function fail");}else{System.out.println("Set callback function successfully!");}}HCNetSDK.NET_DVR_SETUPALARM_PARAM m_strAlarmInfo = new HCNetSDK.NET_DVR_SETUPALARM_PARAM();m_strAlarmInfo.dwSize=m_strAlarmInfo.size();m_strAlarmInfo.byLevel=1;m_strAlarmInfo.byAlarmInfoType=1;m_strAlarmInfo.byDeployType =1;m_strAlarmInfo.write();lAlarmHandle = hCNetSDK.NET_DVR_SetupAlarmChan_V41(lUserID, m_strAlarmInfo);if (lAlarmHandle.intValue() == -1){System.out.println("deployment fail");}else{System.out.println("deployment Successful");}}}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/43613.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

对接海康威视平台拿取视频流

创建工具类 public class ArtemisUtil {private static final Logger logger LoggerFactory.getLogger(ArtemisUtil.class);static {ArtemisConfig artemisConfig new ArtemisConfig();artemisConfig.setAppKey("123");artemisConfig.setAppSecret("123"…

读取海康威视摄像头实时显示视频流

提示&#xff1a;文章用于学习记录 文章目录 前言一、设置同一网段二、密码重置三、VLC 读取视频流四、opencv 读取视频流总结 前言 摄像头一般有网线和电源线两个接口&#xff0c;如下图所示&#xff0c; 用网线将摄像头与电脑连接在一起&#xff0c;电源接口连接适配器。 …

海康威视摄像头web端开发

主要方法 1.海康威视Web开发包 这个是海康威视自己开发的web开发包&#xff0c;里面含有一些demo&#xff0c;整体版&#xff0c;分屏版等等。你可以在他的demo基础上进行二次开发&#xff0c;即使是离线只要你的摄像头和电脑都是在同一路由下&#xff0c;都是可以调用的。麻…

海康威视的工业相机的使用经历

单位&#xff08;和海康是属于一个集团的&#xff09;某一部门 选择用 NVIDIA JETSON™ TX2 海康威视工业相机 的组合来完成 某检测识别任务&#xff0c;在相机选型前用邮件咨询 海康威视工业相机对 TX2 是否支持&#xff0c;得到海康相关人员的肯定答复。 于是采购了海康威…

海康威视SDK使用总结

海康威视SDK使用总结 公司的项目里使用到海康威视的摄像监控设备&#xff0c;然后项目要求在我们的B/S系统中集成摄像头的播放画面。因此通过和海康威视工作人员的沟通&#xff0c;和网上一些人的文章&#xff0c;实现了在自己的网页里进行预览和回放。 一、海康威视的SDK 海…

海康威视监控摄像头连接电脑教程

文章目录 一.海康威视监控摄像头连接电脑教程 一.海康威视监控摄像头连接电脑教程 官网下载SADP软件&#xff1a;https://www.wolai.com/wM6rWeBrRtrfmMH2BTVUXZ 双击下载的软件进行安装 打开软件&#xff0c;将设备连接到摄像头&#xff0c;便可在软件中搜索到摄像头 选择摄…

公网Web系统集成局域网内海康威视IPC网络摄像机

当摄像头与Web应用系统不在一个网络内时,需要将摄像头接入web系统,这时的接入就是一个比较费钱的事情了,除了需要购买流量费之外还需要购买链路服务费,如果足够有钱,并且对安全要求很高的,可以接入一些现成的第三方平台,价格比如这样: 如果没钱并且有一定的开发能…

远程实时读取海康威视4G网络摄像头视频

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 远程实时读取海康威视4G网络摄像头视频 有用的废话背景 重点步骤总结 有用的废话 购买海康威视4G网络摄像头时&#xff0c;目的是基于RTSP 协议来实时读取视频&#xff0c;并…

海康威视摄像头的多通道rtsp地址格式

海康摄像头的rtsp地址通常格式为&#xff1a; “rtsp://username:password192.168.1.64:554//Streaming/Channels/1” ### 1 代表主流&#xff0c;2代表子流 但在多通道的摄像机&#xff0c;例如红外摄像机&#xff0c;既有rgb图也有红外图&#xff0c;分别在两个通道里&#x…

CVE-2017-7921 海康威视(Hikvision) 摄像头漏洞复现

注&#xff1a;此教程仅供学习参考&#xff0c;不涉及任何以破坏为目的的违法犯罪&#xff0c;个人行为与作者无关。 一、漏洞描述 1.这是一个海康威视摄像头后台管理未授权漏洞&#xff0c;通过构造URL可绕过登录查看监控&#xff0c;检索所有用户和配置文件下载&#xff0c;…

海康威视网络摄像头SDK中Demo的二次开发(运行)

如有问题请邮件联系&#xff1a;2018yinjinjing.cn 我们买回来的网络摄像头可以在官网下载到SDK开发包&#xff1a; 下载下来SDK后我们解压&#xff0c;就可以看到里面包含一些开发文档以及一些Demo示例&#xff1a; 我们点开Demo示例&#xff0c;可以看到里面有各种语言的示例…

关于海康威视sdk与海康威视web的史上最精细的教程 (一)

小伙伴们都在下方留言要开发包 web&#xff1a; https://download.csdn.net/download/qq_35583089/10537585 sdk: https://download.csdn.net/download/qq_35583089/10537610 大家自己下载一下吧。 最近在公司需要在项目里集成海康威视的摄像头&#xff0c;刚开始的时…

OpenCV+海康威视摄像头的实时读取

#OpenCV海康威视摄像头的实时读取 本文由 lonelyrains出品&#xff0c;转载请注明出处。 文章链接&#xff1a; http://blog.csdn.net/lonelyrains/article/details/50350052 之前没想过会有这么多朋友遇到问题&#xff0c;所以建了 qq群1&#xff1a;536898072 qq群2&#…

海康威视摄像机通过SDK实现自动拍照(一)

尊敬的读者您好&#xff1a;笔者很高兴自己的文章能被阅读&#xff0c;但原创与编辑均不易&#xff0c;所以转载请必须注明本文出处并附上本文地址超链接以及博主博客地址&#xff1a;https://blog.csdn.net/vensmallzeng。若觉得本文对您有益处还请帮忙点个赞鼓励一下&#xf…

海康威视RTSP取流

感觉这位老哥的参考https://blog.csdn.net/cug_heshun2013/article/details/79434387https://blog.csdn.net/cug_heshun2013/article/details/79434387 目前的需求是&#xff0c;使用海康威视 网络摄像头上传至服务器。 目前探究到的方法是&#xff0c;使用RTSP进行取流&…

海康威视访客案例说明

目录 案例1、如何通过iSC平台openAPI接口实现访客预约功能 案例2、(普通访客场景)自主开发访客客户端实现先线上预约再现场登记 案例3、(临时访客场景)自主开发访客客户端实现临时来访现场登记 案例4、预约后无需现场登记访客场景 案例1、如何通过iSC平台openAPI接口实现访…

海康威视接口在线调试

一、在线调试页面有两种进入方式&#xff0c;请选择适合您的进入方式&#xff1a; 1、能登录iSC平台运管中心&#xff0c;选择方法一&#xff1b; 2、不能登录iSC平台运管中心&#xff0c;选择方法二&#xff1b; 二、进入在线调试页面方法介绍 方法一&#xff1a;登录运管中…

海康威视网络摄像头配置本地存储服务器(远程连接查看回放)

目录 环境&#xff1a;Win电脑A远程连接B查看录像-win电脑B存储录像 配置 方法&#xff1a; 海康小工具 海康威视网络摄像头答疑 环境&#xff1a;Win电脑A远程连接B查看录像-win电脑B存储录像 A,B两台电脑 A电脑远程连接B电脑&#xff0c;查看录像回放&#xff0c;不用…

2023秋招——海康威视海外技术支持

投递简历之后很快收到了回复邮件&#xff0c;让参加一个【在线测评】&#xff0c;在网上查了一下&#xff0c;类似于公务员的行测题。 在线测评 4部分题型&#xff1a; 1.文字理解&#xff08;考察主题、文字意思是否符合等&#xff09; 2.图表解读&#xff08;根据数据推算…

海康威视接口调用

综合安防管理平台提供了OpenAPI安全认证库&#xff08;Java&#xff09;快速实现接口调用。 Java实现接口调用步骤如下&#xff1a; 新建Java工程&#xff0c;从Hikvision AI Cloud开放平台网站&#xff08;海康开放平台&#xff09;上下载“OpenAPI安全认证库&#xff08;Jav…