我在 Windows 7 机器上的 Visual Studio 上运行 OpenCV 应用程序。作为最终应用程序的一部分,我需要一个与正在执行的 OpenCV 应用程序并行运行的计时器。OpenCV 应用程序具有实时视频捕获作为眨眼检测算法的输入。OpenCV 代码必须连续运行,不能暂停或停止。但是,要找到眨眼之间的间隔,我需要在每次眨眼后运行一个计时器。所以定时器必须在检测到闪烁时运行。我已经完成了 SetTimer 和 CreateTimerQueueTimer 函数,但无法清楚地了解如何去做。有没有其他方法可以在 C++ 程序中运行计时器?任何建议和解决方案将不胜感激。
问问题
1184 次
2 回答
1
为什么需要一个计时器来计算眨眼之间的间隔?你不能只存储每次眨眼的当前时间并从之前的时间中减去它吗?
于 2012-04-25T07:24:07.063 回答
0
c++11
你可以用它来std::chrono
制作一个简单的计时器:
auto start = std::chrono::high_resolution_clock::now();
// do processing here
auto end = std::chrono::high_resolution_clock::now();
std::cout << "time was " <<
std::chrono::duration_cast<std::chrono::nanoseconds>(end - start).count();
针对其他答案的评论进行编辑,您可以执行以下操作:
...
auto take = (end - start);
if(take > std::chrono::nanoseconds(x)) {
// ... do whatever you want here
}
哦,要提一提的是,您可以将 替换为nanoseconds
任何其他时间单位。
于 2012-04-25T07:24:10.343 回答