在使用C++调用OpenCV接口时,我们经常会有对函数或者代码块的执行进行计时的需求。其实在OpenCV内部有cv::getTickCount()
和cv::getTickFrequency()
函数来测量时间。其中cv::getTickCount()
的作用是返回CPU自启动系统以来走过的时钟周期数,cv::getTickFrequency()
函数的作用是返回CPU在1秒钟内的时钟周期数(频率)。对于一个计时任务,通常需要测量运行任务前后的时间刻度,然后用二者之差来除以频率则得到耗时(s)。
C++使用OpenCV的计时方法示例
OpenCV官方示例
关键代码,即插即用
double time1 = static_cast<double>(cv::getTickCount());
//开始运行任务
........
//结束运行任务
double time2 = static_cast<double>(cv::getTickCount());
time_use = (time2 - time1)/cv::getTickFrequency();
std::cout<<"Time use: "<< time_use <<"s"<<std::endl;//输出运行时间