上篇文章接入了摄像头的登录和客流统计功能,这篇文章我们接入人脸采集功能。

上篇文章: 使用QT对接大华网络摄像头SDK的示例程序(建议收藏)

本文Demo下载地址: https://download.csdn.net/download/u012534831/12585622

LLONG faceHnd;//智能事件句柄
void Widget::h_openface()
    if(FALSE == LoginHandle)
        QMessageBox::about(NULL,laddr->text(),"未连接登录");
        return;
    // 订阅智能事件上报
    faceHnd = CLIENT_RealLoadPictureEx(LoginHandle, 0, (DWORD)EVENT_IVS_ALL,TRUE, AnalyzerDataCallBack, (LDWORD)this, NULL);
    if(NULL == faceHnd)
        printf("CLIENT_RealLoadPictureEx: failed! Error code %x.\n", CLIENT_GetLastError());
        return ;

首先,我们要订阅人脸采集的事件,但是对于SDK来说只有一个接口CLIENT_RealLoadPictureEx,统称为智能事件,而其中第三个参数指定我们要订阅的事件,EVENT_IVS_ALL代表订阅所有的事件,
EVENT_IVS_FACEDETECT 是人脸检测事件,EVENT_IVS_FACERECOGNITION是人脸识别事件。

第四个参数是一个 bool 值,代表我们是否需要 SDK 回调的图片数据。没有图片的话可以节省带宽。

第五个参数是一个回调函数,里面包含了智能事件的数据信息。

第六个参数是用户数据,其实你可以传入当前类的指针,以方便在下面的回调函数中使用成员变量,比如我就传入了当前类 Widget

//智能事件上报回调函数
int CALLBACK Widget::AnalyzerDataCallBack(LLONG lAnalyzerHandle, DWORD dwAlarmType, void*
pAlarmInfo, BYTE *pBuffer, DWORD dwBufSize, LDWORD dwUser, int nSequence, void *reserved)
    std::cout << "dwalarmtype:" <<dwAlarmType <<endl;
    Widget *w = static_cast<Widget*>((void*)dwUser);
    switch(dwAlarmType)
    // 过滤出你想要的智能事件
    case EVENT_IVS_FACERECOGNITION: // 人脸识别事件
		...
    break;
    case EVENT_IVS_FACEDETECT: // 人脸检测事件
       QPixmap map;
       map.loadFromData(pBuffer,dwBufSize);
       w->labelimage->setPixmap(map.scaled(QSize(200,200), Qt::KeepAspectRatio));
    break;
    default:
    break;
    return 0;

dwAlarmType是回调上来的事件类型,pBuffer 是回调的图片数据,dwBufSize是数据大小,因此我在这儿使用 Qpixmap ,将其显示到 label 上。

 CLIENT_StopLoadPic(faceHnd);

取消订阅。

上篇文章接入了摄像头的登录和客流统计功能,这篇文章我们接入人脸采集功能。上篇文章:使用QT对接大华网络摄像头SDK的示例程序(建议收藏)LLONG faceHnd;//智能事件句柄void Widget::h_openface(){ if(FALSE == LoginHandle) { QMessageBox::about(NULL,laddr-&gt;text(),"未连接登录"); return; } // 订阅智能事件上报 private FacePictureHandleService facePictureHandleService; @RequestMapping(value = "/handle/uploadFile") publi ​ 项目主要用来对接大华人脸门禁(闸机),可以实现门禁卡的管理及对应的人脸的管理,同时可以设置门禁卡的类别以及有效时间段,母卡等.可以在此基础上实现各种业务需求,例如人脸快递柜,基于人脸识别的会员卡系统等. ps:项目不提供对门禁设备的直接控制接口,但可以对门禁卡的有效时间进行管理进而判断对应用户是否有进出
jna 调用dll文件步骤详解jna 简介准备工作简单函数的实现合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 jna 简介 J......
import com.netsdk.common.Res; import com.netsdk.lib.NetSDKLib; import com.netsdk.lib.ToolKits; import com.sun.jna.Pointer; import com.sun.jna.ptr.IntBy
最近半个月在做大华设备的数据流的获取,有点坑呀! 参考提供的手册,我本想回调出视频数据h264,拷贝手册上的代码,可就是获取不成功,咨询了对方人员,才知道怎么回事。 在window下,NETSDK回调码流需要获取yuv数据,需要 在CLIENT_RealPlay()函数里面传入窗口句柄在界面显示才可以。这可是有点坑了,我是不需要界面的。 在linux下,同样失败,咨询后才知道,需要再下载Pl
人脸识别正确率97.18%,1秒内完成。 能够在复杂的光线和背景下依然正确工作,并支持多张人脸在一个画面上的检测,识别,验证。戴眼镜和黑色人种也能检测和识别。能从多角度检测到人脸。 并带人鼻,嘴,眼镜,人脸左右边界的定位功能。 本软件是多光源主动识别版,要求用户配合采模板,并配合识别,在正上方有节能灯,镜头有方向滤光片的条件下,能达到最佳识别效果。 本软件要求有USB摄像头支持(最好是低照度高画质摄像头)。
LIBS += -L$$PWD/Hik_Libs/ -lMvCameraControl INCLUDEPATH += $$PWD/Hik_Includes DEPENDPATH += $$PWD/Hik_Includes 至此海康环境配置完成..
1. 文章背景 项目中需要使用大华网络摄像头,之前为了图方便,我是通过opencv打开rtsp地址,从而显示和存图,但由于客户后期更换了摄像头,且希望采图效率更高,预估rtsp难以达到,所以考虑从大华官方SDK下手,从而有了这篇文章。 2. 主要模块 官方例程里源代码是用MFC写的,我是用qt c++写的,所以我的很多代码习惯是qt的,包括实时图像显示的窗体句柄,我是在Qt上的一个Qlbel里显示的,所以取句柄方式有一点不同。 2.1 初始化SDK
### 回答1: 海康相机SDK海康威视公司推出的一款相机软件开发工具包,它可以帮助开发者实现对海康相机的控制与数据处理。而使用Qt编写的二次开发程序可以在跨平台、界面友好、开发效率高等方面表现出色。因此,将海康相机SDK二次开发Qt的方法可以有效提高开发效率和使用体验。 在二次开发Qt程序之前,首先需要安装海康相机SDKQt开发环境。然后,通过SDK给出的样例程序,了解相机控制和数据处理的基本操作。接下来,结合Qt开发框架,建立相应界面和事件响应,并利用海康相机SDK提供的函数,实现相机的开启、关闭、捕获图片等操作。同时,也要考虑到QtSDK之间的数据转换和参数传递的问题。 在开发过程中,需要注意一些细节问题,如相机连接状态的检测、相机参数的设置、图像处理算法的优化等。同时,也可以结合其他相关的开源库,如OpenCV等,进一步丰富程序的功能。 总之,海康相机SDK二次开发Qt是一个非常有前景和实际意义的开发方向。通过此类程序的开发,可以提高海康相机的应用范围和应用效果,满足不同用户的实际需求。 ### 回答2: 海康相机SDK是一款网络摄像机开发工具包,可以提供高质量的视频流和图像采集,集成该SDKQT开发环境中可以实现基于网络摄像机的图像处理和视频监测应用的开发。 在使用海康相机SDK进行QT二次开发的过程中,需要首先了解SDK操作和QT编程的基本知识。在使用SDK时,需要通过SDK提供的API进行网络摄像机的控制、图像采集和视频流显示等操作。在此基础上,可以使用QT编程实现各种功能和应用,例如图像增强、文本识别、动态拍照和视频监测等。 在进行二次开发时,还需要注意SDK的版本选择和兼容性问题。另外,需要考虑软硬件平台的匹配问题,例如CPU架构、操作系统和网络接口等。在具体实现中,可以使用QT提供的多种工具和组件,例如QT designer、QT creator和QT widgets等,以提高开发效率和代码质量。 总之,通过海康相机SDK的二次开发QT编程的结合,可以实现基于网络摄像机的各种应用和功能,为用户提供更加便捷、高效的视频监测和图像处理体验。 ### 回答3: 海康相机sdk是一个旨在为开发者提供海康威视相机设备的二次开发接口的软件开发工具包。对于开发者来说,使用海康相机sdk进行二次开发是非常重要的,这是因为该工具包提供了丰富的API,可以使开发者更加高效地定制相机设备的软件功能。 在海康相机sdk二次开发中,Qt是一种流行的跨平台开发框架,可以集成到C++中,使用Qt编写对于初学者来说也比较容易上手。我们可以使用Qt Creator IDE来编写程序,该IDE支持快速的窗口设计和多线程开发。同时,Qt还提供了很好的图形用户界面(GUI)支持,这对于开发相机设备用户友好的UI界面非常重要。 在使用海康相机sdk进行二次开发时,我们需要遵守相应的开发流程,首先需要进行硬件设备连接和查询,然后创建相应的海康相机对象,并且设置相机参数、注册回调函数等。之后,我们可以使用Qt编写界面并添加关于设备的一些功能,例如录像、拍照和保存数据等。 总之,使用海康相机sdk进行二次开发是一个涉及不同技术的综合性开发过程,例如设备硬件、图像处理、网络和GUI开发,同时也需要注意程序的健壮性和安全性等方面的考虑。虽然这个过程可能会面临一些挑战,但是在付出努力后,我们可以获得一个高效且功能强大的相机设备软件,满足我们的需求。