zoukankan      html  css  js  c++  java
  • [其他] 项目中的一个小问题

    有一个人员在岗算法,该算法对一帧图像进行检测,当检测到图像无人时,会调用报警回调函数(只在无人的时候才会调用报警回调)。

    现在要实现人员不在岗5min后报警一次,而不是每一帧没人都报警。

    该人员在岗算法函数为另一个人封装,不能得到一帧图像是否有人的bool返回值,只能在报警回调函数里实现逻辑处理。

    在这里假设每一帧处理间隔时间为0.1s,默认的一个值,刚开始想到了统计无人帧在5min内的数目,大于某值就报警,后面仔细思考了下,发现没有必要,而且逻辑比较复杂。

    最终实现了如下方法:

    //设t为上一无人帧的时间,t0为进行5min报警统计的开始时间,cur为当前无人帧的时间
    //在这里,初始值t,t0默认为系统启动时间。 if((cur-t)>0.1s) // 即两个无人帧之间有人 {   t0=cur; //更新进行报警统计的开始时间 } t=cur; //更新上一无人帧的时间 if((cur-t0)>5mins) //即5mins内没有大于0.1s的两帧,默认中间无人 { // 报警内容;
      t0=cur; //更新进行报警统计的开始时间 }
  • 相关阅读:
    谈谈SpringFramework与IoC依赖查找
    监控微博、论坛的“棱镜计划”
    输出质数的方法改进
    参数解构
    直接插入排序
    理解迭代
    异常处理
    函数
    continue语句
    break语句
  • 原文地址:https://www.cnblogs.com/zwh0214/p/6601078.html
Copyright © 2011-2022 走看看