opencv定时器
2015-09-28 10:48
507 查看
测量代码运行时间,精度为us
参考:opencv中测量运行时间的函数
TickMeter类
官方说明文档:http://fossies.org/dox/opencv-3.0.0/classTickMeter.html
(并没有加入opencv的体系,需要引用samples\gpu下的tick_meter.hpp)
用法:创建对象,在开始时调用start();结束时调用stop(),然后如果需要以us为单位的运行时间就调用getTimeMicro(),以ms为单位的就调用getTimeMilli(),以s为单位的是getTimeSec()……先暂停一下,经过实测,发现代码竟然是错误的!
tick_meter.hpp里面的秒、毫秒、微妙计时函数有误!应该修改为
TickMeter对象的计时是累积的,如果要分段计时的话,获取运行时间之后,下一次调用start()之前需要调用reset()将计时归零,否则获得的时间是累积运行时间;也可以记录每次的计时结果,与上一次相减。
该类是对getTickCount函数的封装,另外,opencv还有一个更加精确的定时函数getCPUTickCount
实例:
参考:opencv中测量运行时间的函数
TickMeter类
官方说明文档:http://fossies.org/dox/opencv-3.0.0/classTickMeter.html
(并没有加入opencv的体系,需要引用samples\gpu下的tick_meter.hpp)
用法:创建对象,在开始时调用start();结束时调用stop(),然后如果需要以us为单位的运行时间就调用getTimeMicro(),以ms为单位的就调用getTimeMilli(),以s为单位的是getTimeSec()……先暂停一下,经过实测,发现代码竟然是错误的!
tick_meter.hpp里面的秒、毫秒、微妙计时函数有误!应该修改为
double TickMeter::getTimeSec() const { return (double)getTimeTicks()/cv::getTickFrequency(); } double TickMeter::getTimeMilli() const { return getTimeSec()*1e3; } double TickMeter::getTimeMicro() const { return getTimeMilli()*1e3; }因为(double)getTimeTicks()/cv::getTickFrequency()计算获得的时间是以秒为单位的!没想到官方的代码也会出错啊,而且这个TickMeter类写得也不规范,不建议使用!
TickMeter对象的计时是累积的,如果要分段计时的话,获取运行时间之后,下一次调用start()之前需要调用reset()将计时归零,否则获得的时间是累积运行时间;也可以记录每次的计时结果,与上一次相减。
该类是对getTickCount函数的封装,另外,opencv还有一个更加精确的定时函数getCPUTickCount
实例:
TickMeter tm; tm.start(); int col=temp.cols, row = temp.rows; if (temp.isContinuous()) { col*=row; row =1; } for (i=0; i<row; ++i) { const float *pt = temp.ptr<float>(i); for (j=0; j<col;++j) { float mm=pt[3*j]; mm = mm/(float)20.6; } } tm.stop(); cout<<"count="<<tm.getCounter()<<",process time="<<tm.getTimeMilli()<<endl;
相关文章推荐
- SecureCRT 连接linux 虚拟机连接问题
- Linux 有问必答:如何知道进程运行在哪个 CPU 内核上?
- opencv3.0的cv “ACCESS_MASK”冲突
- RHEL 7 & CentOS 7禁用IPV6
- bash 学习笔记
- CentOS下搭建svn服务器
- 使用Ganglia监控Flume的性能指标数据
- TOMCAT端口和域名配置
- CentOS 7关闭图形桌面开启文本界面
- Linux系统管理之磁盘管理、文件系统管理
- 9月22日全球域名商(国际域名)解析新增保有量TOP20
- php 大流量网站访问
- 部署mysql高可用、读写分离集群 推荐
- Linux 信号signal处理机制
- 同一服务器部署多个tomcat时的端口号修改详情
- linux的中swap分区的创建
- Ubuntu下面的一个简单的C++程序——My first C++ demo in Linux
- linux 书籍推荐
- 使用rpm命令从CentOS系统盘安装计划任务程序crontab
- 【Linux高频命令专题(5)】rmdir