EasyCVR开发车流量统计的实现流程及代码参考

之前我们实现了EasyCVR人流量统计的功能,并且将该功能在景区当中做了测试和完善,而与此同时,我们也在开发EasyCVR的车流统计,并在实现之前对车流统计大概流程和步骤做了总结,本文就分享一下。

步骤1:调用 CLIENT_Init 函数完成 SDK 初始化流程。

步骤2:初始化成功后,调用 CLIENT_LoginEx2 函数登录设备。

步骤3:调用 CLIENT_StartTrafficFluxStat 函数向设备订阅车流量信息。

步骤4:订阅成功后,ITC 或 ITSE 上报的车流量信息通过 fFluxStatDataCallBack 回调函数获取实

时车流量信息并通知用户。

步骤5:车流量信息使用完毕后,调用 CLIENT_StopTrafficFluxStat 函数取消订阅车流量信息。

步骤6:业务使用完后,调用 CLIENT_Logout 函数登出设备。

步骤7:SDK 功能使用完后,调用 CLIENT_Cleanup 函数释放 SDK 资源。

实现代码参考如下:

int main() 
{ 
    NET_IN_TRAFFICFLUXSTAT stuIn = {0}; 
    stuIn.dwSize = sizeof(NET_IN_TRAFFICFLUXSTAT);主要功能 31 
    stuIn.cbData = FluxStatDataCallBack; 
    NET_OUT_TRAFFICFLUXSTAT stuOut = {0}; 
    stuOut.dwSize = sizeof(NET_OUT_TRAFFICFLUXSTAT); 
    //订阅车流量统计信息 
    LLONG lFluxStatHandle = CLIENT_StartTrafficFluxStat(lLoginHandle, &stuIn, &stuOut); 
    if(NULL == lFluxStatHandle) 
    { 
    printf("CLIENT_StartTrafficFluxStat: failed! Error code %x.\n", CLIENT_GetLastError()); 
    return -1; 
    } 
    Sleep(5000); 
    //取消订阅车流量统计信息 
    BOOL bRet = CLIENT_StopTrafficFluxStat(lFluxStatHandle); 
    if(FALSE == bRet) 
    { 
    printf("CLIENT_StopTrafficFluxStat: failed! Error code %x.\n", CLIENT_GetLastError()); 
    return -2; 
    } 
    return 0; 
    } 
    //车流量统计信息回调 
    int CALLBACK FluxStatDataCallBack (LLONG lFluxStatHandle, DWORD dwEventType, void* pEventInfo, 
    BYTE *pBuffer, DWORD dwBufSize, LDWORD dwUser, int nSequence, void *reserved) 
    { 
    DEV_EVENT_TRAFFIC_FLOWSTAT_INFO* pInfo = 
    (DEV_EVENT_TRAFFIC_FLOWSTAT_INFO*)pEventInfo; 

    return 0; 
}

EasyCVR作为TSINGSEE青犀视频开发的视频融合平台,已经能够支持海康SDK、大华SDK、Onvif/RTSP、GB28181、Ehome协议的接入,目前已经在扩展智能分析等相关功能,其中人脸识别功能及人流量统计功能已经在部分项目中得到应用,不久后车流量统计、车牌识别等功能也会上线。如果大家还想了解更多或者进行实际的部署测试,欢迎直接下载。

 

 

posted on 2021-09-28 16:45  EasyCVR视频融合平台  阅读(295)  评论(0)    收藏  举报