OpenCV-计时函数cv::getTickCount&cv::getTickFrequency

简介: OpenCV-计时函数cv::getTickCount&cv::getTickFrequency

场景需求

      使用OpenCV时,如果有计时的需求,就记住两个函数cv::getTickCount和cv::getTickFrequency,应用非常简单也方便记忆,C++中有多种多样的计时方法,选择自己最常用最便于记忆的使用就可以了~


      下面简单分享下cv::getTickCount和cv::getTickFrequency这两个函数的使用。

C++实现代码

/**
* @brief  getTickCount()     该函数返回CPU自某个事件以来走过的时钟周期数
* @brief  getTickFrequency() 该函数返回CPU一秒钟所走的时钟周期数。便于以秒为单位进行计时。
*/
// 计时开始
double timex = static_cast<double>(getTickCount());
// 需要计时的函数或代码
..............
// 计时结束
timex = ((double)getTickCount() - timex) / getTickFrequency();
// 时间输出
cout << "运行时间为:" << timex << "秒" << endl ;

测试代码

#include<iostream>
#include<opencv2/opencv.hpp>
#include<ctime>
using namespace std;
using namespace cv;
int main(void)
{
  Mat A = Mat::zeros(10000, 10000, CV_32FC1);
  // 随意创建一个A矩阵
  for (int i = 0; i < A.rows; i++)
  {
    for (int j = 0; j < A.cols; j++)
    {
      A.at<float>(i, j) = rand() % 100 / 100.f;
    }
  }
  Mat B = A.clone();
  // 计时开始
  double time0 = static_cast<double>(getTickCount());
  for (int i = 0; i < A.rows; i++)
  {
    for (int j = 0; j < A.cols; j++)
    {
      B.at<float>(i, j) *= 2;
    }
  }
  // 计时结束
  time0 = ((double)getTickCount() - time0) / getTickFrequency();
  // 时间输出
  cout << "    运行时间为:" << time0 << "秒" << endl << endl;
  system("pause");
  return 0;
}

测试效果

图1 计时输出

  本文介绍了一种便于记忆的OpenCV计时函数,方便大家使用。

      如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!

相关文章
|
21天前
|
监控 API 计算机视觉
OpenCV这么简单为啥不学——1.3、图像缩放resize函数
OpenCV这么简单为啥不学——1.3、图像缩放resize函数
50 0
|
8月前
|
计算机视觉
OpenCV-图像翻转函数cv::filp
OpenCV-图像翻转函数cv::filp
|
21天前
|
人工智能 Linux API
OpenCV这么简单为啥不学——1.1、图像处理(灰度图、模糊图片、GaussianBlur函数、提取边缘、边缘膨胀、边缘细化)
OpenCV这么简单为啥不学——1.1、图像处理(灰度图、模糊图片、GaussianBlur函数、提取边缘、边缘膨胀、边缘细化)
56 0
|
21天前
|
监控 算法 Serverless
OpenCV这么简单为啥不学——1.12、使用ssim函数对两张照片进行相似度分析
OpenCV这么简单为啥不学——1.12、使用ssim函数对两张照片进行相似度分析
61 0
|
21天前
|
监控 API 计算机视觉
OpenCV这么简单为啥不学——1.6、图像旋转与翻转(rotate函数、imutils环境安装、imutils任意角度旋转)
OpenCV这么简单为啥不学——1.6、图像旋转与翻转(rotate函数、imutils环境安装、imutils任意角度旋转)
46 0
|
21天前
|
监控 API 计算机视觉
OpenCV这么简单为啥不学——1.4、基础标识绘制(绘制线line函数、rectangle函数绘制四边形、circle函数绘制圆形、putText函数绘制文字、putText绘制中文文字)
OpenCV这么简单为啥不学——1.4、基础标识绘制(绘制线line函数、rectangle函数绘制四边形、circle函数绘制圆形、putText函数绘制文字、putText绘制中文文字)
35 0
|
21天前
|
监控 API 计算机视觉
OpenCV这么简单为啥不学——2、逐帧播放视频(VideoCapture函数、waitKey函数、0xFF == ord(‘1‘))
OpenCV这么简单为啥不学——2、逐帧播放视频(VideoCapture函数、waitKey函数、0xFF == ord(‘1‘))
38 0
|
21天前
|
监控 API 图形学
OpenCV这么简单为啥不学——1、基础环境与imread函数
OpenCV这么简单为啥不学——1、基础环境与imread函数
37 0
|
21天前
|
计算机视觉 Python
OpenCV中阈值处理函数和二值化、反二值化的讲解及实战(附Python源码)
OpenCV中阈值处理函数和二值化、反二值化的讲解及实战(附Python源码)
136 0
|
21天前
|
存储 算法 安全
opencv基础函数使用
opencv基础函数使用
37 0