虹软人脸识别SDK在网络摄像头中的实际应用

目前在人脸识别领域中,网络摄像头的使用很普遍,但接入网络摄像头和人脸识别SDK有一定门槛,在此篇中介绍过虹软人脸识别SDK的接入流程,本文着重介绍网络摄像头获取视频流并处理的流程(红色框内),以下内容仅供参考。

门禁系统

市面上目前有很多款网络摄像头,以海康摄像头为例。海康SDK包含很多接口,接入有一定难度,这里只介绍获取视频帧相关的接口。
1.海康SDK接入基本流程
a.初始化并登录验证

    NET_DVR_Init();
    NET_DVR_DEVICEINFO_V30 struDeviceInfo = { 0 };
    long lUserID = NET_DVR_Login_V30(m_cameraIp, m_cameraPort,
        m_cameraUser, m_cameraPwd, &struDeviceInfo);
    if (lUserID < 0)
    {
        NET_DVR_Cleanup();
        return false;
    }

b.创建线程并注册回调函数

    thread videoThread(&HCNetCamera::getCameraPreview, this);
    videoThread.detach();
    
    bool HCNetCamera::getCameraPreview()
    {
        NET_DVR_CLIENTINFO ClientInfo;
        ClientInfo.lChannel = 1; //Channel number 设备通道号
        ClientInfo.hPlayWnd = NULL;  //窗口为空,设备SDK不解码只取流
        ClientInfo.lLinkMode = 0;    //Main Stream
        ClientInfo.sMultiCastIP = NULL;
        //预览取流 
        g_realHandle = NET_DVR_RealPlay_V30(g_cameraUserId, &ClientInfo, fRealDataCallBack, NULL, TRUE);
        if (g_realHandle < 0)
        {
            qDebug() << "NET_DVR_RealPlay_V30 failed! Error number: " << NET_DVR_GetLastError();
            return false;
        }
        return true;
    }   

c.使用回调接口,获取实时的视频帧数据

    void CALLBACK fRealDataCallBack(LONG lRealHandle, DWORD dwDataType, BYTE *pBuffer, DWORD dwBufSize, void *pUser)
    {
        UNREFERENCED_PARAMETER(lRealHandle);
        UNREFERENCED_PARAMETER(pUser);

        DWORD dRet = 0;
        BOOL inData = FALSE;

        switch (dwData
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值