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

作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

场景需求

       使用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计时函数,方便大家使用。

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

  • 27
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翟天保Steven

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值