C++使用OpenCV的计时方法

前言

在这里插入图片描述
OpenCV —— Open Source Computer Vision

OpenCV是一个跨平台的计算机视觉库。是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。可用于开发实时的图像处理、计算机视觉以及模式识别程序。

在使用C++调用OpenCV接口时,我们经常会有对函数或者代码块的执行进行计时的需求。其实在OpenCV内部有cv::getTickCount()和cv::getTickFrequency()函数来测量时间。其中cv::getTickCount()的作用是返回CPU自启动系统以来走过的时钟周期数,cv::getTickFrequency()函数的作用是返回CPU在1秒钟内的时钟周期数(频率)。对于一个计时任务,通常需要测量运行任务前后的时间刻度,然后用二者之差来除以频率则得到耗时(s)。

使用

#include 
#include 
#include 
#define CV_LOAD_IMAGE_COLOR 1

int main(int argc, char *argv[]) {
  std::string input_img_path = argv[1];
  cv::Mat img, img_gray;
  
  double time1 = static_cast<double>(cv::getTickCount());
  //开始运行任务
  img = cv::imread(input_img_path, CV_LOAD_IMAGE_COLOR);
  cv::cvtColor(img, img_gray, cv::COLOR_BGR2GRAY);
  //结束运行任务
  double time2 = static_cast<double>(cv::getTickCount());
  
  time_use = (time2 - time1)/cv::getTickFrequency();
  
  std::cout<<"Time use: "<< time_use <<"s"<<std::endl;//输出运行时间
  
  return 0;
}

OpenCV官方示例

C++使用OpenCV的计时方法_第1张图片
C++使用OpenCV的计时方法_第2张图片

参考资料

[1] OpenCV-Python Tutorials - Core Operations -Performance Measurement and Improvement Techniques
[2] opencv 计时函数
[3] OpenCV - Utility and system functions and macros - Core functionality

你可能感兴趣的:(#,OpenCV,#,C/C++,opencv,c++,计时)