如何为open cv(c ++)编写一个代码,我想放置一个5秒的计时器,所以我想跟踪一个对象,并在5秒后拿起该对象。
如何编写计时器部分的代码
提前致谢
答案 0 :(得分:0)
你可以使用Songho的实现:http://www.songho.ca/misc/timer/timer.html。它非常简单方便。另一个优点:它适用于Windows,Linux和Unix。
Songho的计时器包含两个文件,Timer.h
和Timer.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.
}