在question on Stack的答案和here on page 52的书中,我发现了测量执行时间的普通getTickCount getTickFrequency组合给出了以毫秒为单位的时间。然而,OpenCV website表示其时间以秒为单位。我很困惑。请帮帮我。
发布于 2013-05-02 00:34:15
没有混淆的余地,你给出的所有引用都指向同一件事。
getTickCount会在发生特定事件后(例如机器开机后)给出时钟周期的数。
A = getTickCount() // A = no. of clock cycles from beginning, say 100
process(image) // do whatever process you want
B = getTickCount() // B = no. of clock cycles from beginning, say 150
C = B - A // C = no. of clock cycles for processing, 150-100 = 50,
// it is obvious, right?现在你想知道这些时钟周期是多少秒。为此,你想知道一个时钟需要多少秒,例如clock_time_period.如果你找到了,简单地乘以50就可以得到总花费的时间。
为此,OpenCV提供了第二个函数getTickFrequency()。它给你频率,即多少时钟周期每秒。你取它的倒数得到时钟的时间周期。
time_period = 1/frequency.现在你有了一个时钟周期的time_period,将它乘以50,就可以得到以秒为单位的总时间。
现在再读一遍你给出的所有参考资料,你就会明白了。
发布于 2017-08-31 14:57:39
dwStartTimer=GetTickCount();
dwEndTimer=GetTickCount();
while((dwEndTimer-dwStartTimer)<wDelay)//delay is 5000 milli seconds
{
Sleep(200);
dwEndTimer=GetTickCount();
if (PeekMessage (&uMsg, NULL, 0, 0, PM_REMOVE) > 0)
{
TranslateMessage (&uMsg);
DispatchMessage (&uMsg);
}
}https://stackoverflow.com/questions/16319666
复制相似问题