海康大华宇视SDK车牌号开发主要方法

一个控制台程序的pro内容,功能:使用海康、大华、宇视的SDK进行车牌号获取开发,其包含了SDK外部库的添加。
pro文件内容:

QT -= gui
QT += xml core network serialport
CONFIG += c++14 console
DEFINES += KERNEL_LIBRARY QT_MESSAGELOGCONTEXT
CONFIG -= app_bundle
DEFINES += QT_DEPRECATED_WARNINGS



SOURCES += \
        cardetectorparams.cpp \
        configparams.cpp \
        dahuacameramanager.cpp \
        dahuacamgetcarnumber.cpp \
        hikoncameramanager.cpp \
        hikoncamgetcarnumber.cpp \
        main.cpp \
        serviceCarNumberCaptureGlobal.cpp \
        servicefun_dahua_sdkapi_getcarnumber.cpp \
        servicefun_hikon_sdkapi_getcarnumber.cpp \
        servicefun_udpnetwork_forcarnumber.cpp \
        servicefun_uv_sdkapi_getcarnumber.cpp \
        uvcameramanager.cpp \
        uvcamgetcarnumber.cpp
TRANSLATIONS += \
    DHCarNumCapConsole_zh_CN.ts
qnx: target.path = /tmp/$${
   
   TARGET}/bin
else: unix:!android: target.path = /opt/$${
   
   TARGET}/bin
!isEmpty(target.path): INSTALLS += target

HEADERS += \
    cardetectorparams.h \
    configparams.h \
    dahuacameramanager.h \
    dahuacamgetcarnumber.h \
    hikoncameramanager.h \
    hikoncamgetcarnumber.h \
    kernel_global.h \
    serviceCarNumberCaptureGlobal.h \
    servicefun_dahua_sdkapi_getcarnumber.h \
    servicefun_hikon_sdkapi_getcarnumber.h \
    servicefun_udpnetwork_forcarnumber.h \
    servicefun_uv_sdkapi_getcarnumber.h \
    uvcameramanager.h \
    uvcamgetcarnumber.h

#64位
#大华
LIBS += "D:/DHCarNumCapConsole/dhsdkwin64_is_v3.057/Lib/Win64/dhnetsdk.lib"
INCLUDEPATH += "D:/DHCarNumCapConsole/dhsdkwin64_is_v3.057/Include/Common"
DEPENDPATH += "D:/DHCarNumCapConsole/dhsdkwin64_is_v3.057/Include/Common"

#海康
LIBS += "D:/DHCarNumCapConsole/CH-HCNetSDKV6.1.9.48_build20230410_win64/Lib/HCNetSDK.lib"
INCLUDEPATH += "D:/DHCarNumCapConsole/CH-HCNetSDKV6.1.9.48_build20230410_win64/Include"
DEPENDPATH += "D:/DHCarNumCapConsole/CH-HCNetSDKV6.1.9.48_build20230410_win64/Include"





#宇视
LIBS += "D:/DHCarNumCapConsole/ITSSDK-B0303.164.2.0.220511_UV/dll/lib/NetDEVSDK.lib"
INCLUDEPATH += "D:/DHCarNumCapConsole/ITSSDK-B0303.164.2.0.220511_UV/dll/include"
DEPENDPATH += "D:/DHCarNumCapConsole/ITSSDK-B0303.164.2.0.220511_UV/dll/include"

DISTFILES += \
    使用和开发说明.txt``

二、海康SDK绑定摄像头

bool HikonCamGetCarNumber::bindHkCamSDK(QString ip,QString username,QString password,int relationNumber,QString servicePort)
{
   
   
    //接收到的是一个指令结构,是否过期在run()方法中已经进行了判断,过期的不会发过来,所以这里只需要把这个结构传给车牌号抓取程序即可
    //此处调用海康抓取车牌号的程序,在回调函数中把获取到的车牌号按照方向车道,累加到road_car_number这结构中。等待run()方法中发送


    //---------------------------------------
    //初始化
    BOOL result=NET_DVR_Init();
    if(!result){
   
   
        return false;
    }
    NET_DVR_SetLogToFile(3,(char *)std::string("../log").c_str(),false);

    //设置连接时间与重连时间
    NET_DVR_SetConnectTime(2000, 1);
    NET_DVR_SetReconnect(10000, true);

    //---------------------------------------
    //注册设备

    //登录参数,包括设备地址、登录用户、密码等
    LONG lUserID = -1; //初始化lUserID
    NET_DVR_USER_LOGIN_INFO struLoginInfo = {
   
   0};//创建一个数据结构对象并为每个属性赋初值为0
    struLoginInfo.bUseAsynLogin = 0; //设置为同步登录方式
    strcpy(struLoginInfo.sDeviceAddress,ip.toStdString().c_str()); //设置设备IP地址为192.168.2.184(大门口海康能够获取车牌号的摄像头的IP)
    struLoginInfo.wPort = servicePort.toInt(); //设置服务端口默认值为8000
    strcpy(struLoginInfo.sUserName, username.toStdString().c_str()); //设置:用户名
    strcpy(struLoginInfo.sPassword, password.toStdString().c_str()); //设置:密码


    //设备信息, 输出参数
    NET_DVR_DEVICEINFO_V40 struDeviceInfoV40 = {
   
   0};//创建一个V40数据结构对象

    lUserID = NET_DVR_Login_V40(&struLoginInfo, &struDeviceInfoV40);//登录注册并将设备信息存储在struDeviceInfoV40结构中
    if (lUserID < 0)
    {
   
   
        //登录失败时提示错误信息
        qDebug("HK Login fail!");
        return false;
    }else{
   
   
        qDebug("HK Login success!");
    }


    //---------------------------------------
    //报警布防
    //设置报警回调函数
    NET_DVR_SetDVRMessageCallBack_V31(MSesGCallback, NULL);
    //启用布防
    NET_DVR_SETUPALARM_PARAM struSetupParam={
   
   0};//创建布防结构对象并初始化为0
    struSetupParam.dwSize=sizeof(NET_DVR_SETUPALARM_PARAM);//根据NET_DVR_SETUPALARM_PARAM的大小来设置dwSize的值
    struSetupParam.byLevel = 1; //布防优先级:0- 一等级(高),1- 二等级(中),2-多设备布防,即允许同一时间多个设备同时布防
    struSetupParam.byAlarmInfoType = 1; //上传报警信息类型: 0- 老报警信息(NET_DVR_PLATE_RESULT), 1- 新报警信息(NET_ITS_PLATE_RESULT)

    LONG lHandle = NET_DVR_SetupAlarmChan_V41(lUserID,&struSetupParam);//开始布防并设置回调函数
    //如果lHandle<0则布防失败,然后出登出并清除
    if (lHandle < 0)
    {
   
   
        qDebug("HK setAlarm fail");
        NET_DVR_Logout(lUserID);
        return false;
    }
    qDebug("HK Set Alarm Success!");
    qDebug()<<"ip:"<<ip;
    //---------------------------------------
    //网络触发抓拍

    NET_DVR_SNAPCFG struSnapCfg;
    memset(&struSnapCfg, 0, sizeof(NET_DVR_SNAPCFG));

    //结构体大小
    struSnapCfg.dwSize = sizeof(NET_DVR_SNAPCFG);

    //线圈抓拍次数,0-不抓拍,非0-连拍次数,目前最大5次
    struSnapCfg.bySnapTimes  = 0;

    //抓拍等待时间,单位ms,取值范围[0,60000]
    struSnapCfg.wSnapWaitTime   = 1;//1000

    //连拍间隔时间,单位ms,取值范围[67,60000]
    struSnapCfg.wIntervalTime[0]  = 67;//1000
    struSnapCfg.wIntervalTime[1]  = 67;//1000

    //触发IO关联的车道号
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值