打开CV -how我可以为计时器编写代码

时间:2015-04-21 17:07:24

标签: c++ opencv

如何为open cv(c ++)编写一个代码,我想放置一个5秒的计时器,所以我想跟踪一个对象,并在5秒后拿起该对象。

如何编写计时器部分的代码

提前致谢

1 个答案:

答案 0 :(得分:0)

你可以使用Songho的实现:http://www.songho.ca/misc/timer/timer.html。它非常简单方便。另一个优点:它适用于Windows,Linux和Unix。

Songho的计时器包含两个文件,Timer.hTimer.cpp,您只需将它们添加到项目中即可。它的用法非常简单(从上面的链接复制):

#include <iostream>
#include "Timer.h"
using namespace std;

int main()
{
    Timer timer;

    // start timer
    timer.start();

    // do something
    ...

    // stop timer
    timer.stop();

    // print the elapsed time in millisec
    cout << timer.getElapsedTimeInMilliSec() << " ms.\n";

    return 0;
}

如果您不喜欢这个计时器,您仍然可以为自己的计时器提供参考。

你没有添加很多关于你的用例的细节,但是一个hack-ish解决方案可能包括在你开始跟踪的同时启动计时器,然后在每次迭代时检查计时器的值。算法:

bool timerStarted = false;
bool reallyStationary = false;

while( ( ! reallyStationary ) && /* other conditions */ )
{
    // Track the object ...

    if ( /* object is stationary */ )
    {
         if ( timerStarted )
         {
             if ( timer.getElapsedTimeInSec() < 5 )
                 reallyStationary = false; // Continue the while-loop.
             else
                 reallyStationary = true; // Leave the while-loop.
         }
         else
         {
             timer.start()
             timerStarted = true;
         }
    }
    else
    {
        if ( timerStarted )
        {
            timerStarted = false;
            timer.stop();
        }
    }
}

if ( reallyStationary )
{
    // Pick up an object.
}