OpenCV4入门系列教程11:计时getTickCount()

索引地址:系列教程索引地址

上一篇:OpenCV4入门系列教程10:颜色空间

本篇介绍OpenCV自带的计时函数。

函数原型:

1
int64 cv::getTickCount  ( );

函数返回特定事件后的滴答数(例如,当机器打开时)。 它可以用来初始化RNG或通过读取函数调用前后的滴答计数来测量函数执行时间。

比如说第一次获取的滴答数为t1=1000,第二次获取的滴答数为t2=100000,两次获取的滴答数差为t2-t1=100000-1000=99000;

函数原型:

1
double cv::getTickFrequency( ) ;

函数返回每秒的滴答数。

如果获取的滴答频率为f=1000滴答/秒,那么上面两次获取的滴答时间差为:(t2-t1)/f=99秒,以实现计时功能。

从官方文档说明可以看出,此函数只能用来计算时间差,不能用来进行日期计时,因为其没有统一的开始。

测试代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <opencv2/opencv.hpp>

using namespace cv;

int main() {
double tTime;
tTime = (double)getTickCount();
const int nTimes = 100;
for (int i = 0; i < nTimes; i++) {
int sum = 0;
for (int j = 0; j < 100; j++) {
sum += j;
}
}
tTime = ((double)getTickCount() - tTime) / getTickFrequency();
tTime /= nTimes;
std::cout << tTime << std::endl;
return 0;
}

测试结果:

1
7.3494e-07

计算100以内整数求和的时间为7.3494e-07秒。

下一篇:OpenCV4入门系列教程12:键盘输入waitKey()