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

OpenCV-计时函数cv::getTickCount&cv::getTickFrequency本文介绍了一种便于记忆的 OpenCV 计时函数 方便大家使用

场景需求

       使用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; }

测试效果

OpenCV-计时函数cv::getTickCount&cv::getTickFrequency
图1 计时输出

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233208.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 获得焦点与失去焦点事件

    获得焦点与失去焦点事件一介绍获得焦点事件(onfocus)是当某个元素获得焦点时触发事件处理程序。失去焦点事件(onblur)是当前元素失去焦点时触发事件处理程序。一般情况下,这两个事件是同时使用的。 二应用文本框获得焦点时改变背景颜色本示例是在用户选择页面中的文本框时,改变文本框的背景颜色,当选择其他文本框时,将失去焦点的文本框背景颜色恢复原始状态。 三代码

    2022年6月29日
    95
  • IDEA激活成功教程后一直提示JetbrainsAgent 相关的弹框问题

    IDEA激活成功教程后一直提示JetbrainsAgent 相关的弹框问题激活成功教程后打开IDEA就弹框,关闭之后会自动打开浏览器,隔一会也会弹出来 也是一样的问题一开始是说把txt 和 jar 文件放一个路径下之类的方法,几经波折,发现没任何用处~最后各种搜索排查,在设置下更改配置就不弹啦~settings设置下搜索agent 取消”Instrumenting agent(requires debugger restart)”在 Reload classes after compilation:选择第一个 Always…

    2022年8月20日
    13
  • ubuntu server 文件共享

    ubuntu server 文件共享

    2021年8月20日
    51
  • fcn全卷积神经网络搭建_区域卷积神经网络

    fcn全卷积神经网络搭建_区域卷积神经网络文章目录简介核心思想网络结构上采样Upsampling跳级结构CNN与FCN的区别与联系网络训练过程存在问题【参考】简介全卷积网络(FullyConvolutionalNetworks,FCN)是JonathanLong等人于2015年在FullyConvolutionalNetworksforSemanticSegmentation一文中提出的用于图像语义分割的一种框架,是深度学习用于语义分割领域的开山之作。FCN将传统CNN后面的全连接层换成了卷积层,这样网络的输出将是热力图而非类

    2022年9月25日
    2
  • ucinet网络分析实例(网络分析app)

    ucinet介绍UCINET为菜单驱动的Windows程序,可能是最知名和最经常被使用的处理社会网络数据和其他相似性数据的综合性分析程序。与UCINET捆绑在一起的还有Pajek、Mage和NetDraw等三个软件。UCINET能够处理的原始数据为矩阵格式,提供了大量数据管理和转化工具。该程序本身不包含网络可视化的图形程序,但可将数据和处理结果输出至NetDraw、Pajek、Mage和Kr…

    2022年4月16日
    75
  • python错误和异常处理_python异常处理

    python错误和异常处理_python异常处理抛出异常Python使用raise语句抛出一个指定的异常。raise语法格式如下:raise[Exception[,args[,traceback]]]defdivision():”’功能:分苹果”’print(“\n=====================分苹果了=====================\n”)apple=int(input(“请输入苹果的个数:”))#.

    2022年10月9日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号