OpenCV 利用getTickCount()与getTickFrequency()计算执行时间

其实这是个很简单的应用,贴出来是因为我经常能用到这两个函数,顺便写一下吧。

double t1 = (double)getTickCount();
.
.
.
double t2 = (double)getTickCount();
cout<<"time:"<<(t2-t1)*1000/getTickFrequency()<<endl;

getTickCount()与getTickFrequency()都被定义在core.hpp文件下:

//! Returns the number of ticks.

/*!
  The function returns the number of ticks since the certain event (e.g. when the machine was turned on).
  It can be used to initialize cv::RNG or to measure a function execution time by reading the tick count
  before and after the function call. The granularity of ticks depends on the hardware and OS used. Use
  cv::getTickFrequency() to convert ticks to seconds.
*/
CV_EXPORTS_W int64 getTickCount();

/*!
  Returns the number of ticks per seconds.

  The function returns the number of ticks (as returned by cv::getTickCount()) per second.
  The following code computes the execution time in milliseconds:

  \code
  double exec_time = (double)getTickCount();
  // do something ...
  exec_time = ((double)getTickCount() - exec_time)*1000./getTickFrequency();
  \endcode
*/
CV_EXPORTS_W double getTickFrequency();

/*!
  Returns the number of CPU ticks.

  On platforms where the feature is available, the function returns the number of CPU ticks
  since the certain event (normally, the system power-on moment). Using this function
  one can accurately measure the execution time of very small code fragments,
  for which cv::getTickCount() granularity is not enough.
*/
CV_EXPORTS_W int64 getCPUTickCount();

getTickCount():用于返回从操作系统启动到当前所经的计时周期数,看名字也很好理解,get Tick Count(s)。 getTickFrequency():用于返回CPU的频率。get CPU Tick Count(s)。这里的单位是秒。

所以剩下的就很清晰了: 总次数/一秒内重复的次数 = 时间(s)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏码云1024

字符流之FileReader&FileWriter

2665
来自专栏禁心尽力

XML技术之SAX解析器

1.解析XML文件有三种解析方法:DOM SAX DOM4J。 2.首先SAX解析技术只能读取XML文档中的数据信息,不能对其文档中的数据进行添加,删除,修改操...

2215
来自专栏Pulsar-V

一个简单的java提取页面源码的示例

package Main; import java.io.BufferedReader; import java.io.BufferedWriter; imp...

2798
来自专栏有趣的Python

8-Java常用工具类-输入输出流

生活中无处不在,只要涉及到传输。复制粘贴操作;修改头像,将本地数据上传到网络服务器。

721
来自专栏landv

社会单位消防安全户籍化管理系统——半自动提交V1.0版本

852
来自专栏钟绍威的专栏

简单的Writer和ReaderWriter的主要方法Writer工作原理Reader的主要方法readLine():String

Writer用于写出去到文件中,Reader用于将外面的文件读进来控制台 Writer和Reader有许多子类,但是子类大多都是直接运用父类Writer和R...

1755
来自专栏Java后端技术

Java实现文件复制的四种方式

背景:有很多的Java初学者对于文件复制的操作总是搞不懂,下面我将用4中方式实现指定文件的复制。

693
来自专栏钟绍威的专栏

初识字节流+实现缓冲字节流OutputStream的主要方法构造方法读关流实现BufferedInputStream实现BufferedOutputStream为什么read()返回的是Int型而不是

java中的IO流可以分为两种:字符流和字节流 字符流,顾名思义,就是对字符进行操作,只能操作文本文件 字节流,就是对字节进行操作,然而所有文件都是由字...

1838
来自专栏JAVA技术站

JAVA流之FileInputStream,FileOutputStream

FileOutputStream,意为文件输出流,是用于将数据写入File或 FileDescriptor的输出流

683
来自专栏Android知识点总结

3-SIII-Android数据固化之Xml的Sax解析和存储

886

扫码关注云+社区