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协议的接入,目前已经在扩展智能分析等相关功能,其中人脸识别功能及人流量统计功能已经在部分项目中得到应用,不久后车流量统计、车牌识别等功能也会上线。如果大家还想了解更多或者进行实际的部署测试,欢迎直接下载。