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