opencv 计时函数

来源:互联网 发布:云计算发展历史 编辑:程序博客网 时间:2024/05/16 18:12

opencv 计时
我们知道opencv中 有时候需要知道 算法的执行时间 ,来衡量算法的优劣性,那么opencv 怎样进行计时呢?opencv中主要用两个函数来进行计时操作,这两个计时函数便是:getTickCount() 和getTickFrequency()
下面我们详细讲解getTickCount ()和 getTickFrequency()及其怎么使用它们来对算法进行计时
1.什么是getTickCount()函数? 什么是 getTickFrequency?
getTickCount()函数返回CPU 自某个事件(如启动电脑)以来走过的时钟周期数
getTickFrequency()函数返回CPU一秒钟所走得时钟周期数
2.我们怎么使用 getTickCount()函数 和getTickFrequency()函数 来获得算法的执行时间呢?
将getTickCount() 和getTickFrequency()组合起来可以很轻松地获取算法的执行时间(注意是以秒为单位),使用实例如下:
double time1 = static_cast( getTickCount() );//记录算法的起始时间
//执行某种算法步骤……
double time2 =
( static_cast( getiTickCount()) - time1)/ getTickFrequency();
// time2 为算法执行的时间
使用代码来验证程序:

//opencv 中如何进行程序的计时呢?#include<opencv2/opencv.hpp>using namespace cv;#include<iostream>using namespace std;int main(void){    //查看opencv 读取一张图像所需要的时间    double time1 = static_cast<double>( getTickCount());//记录起始时间,其中getTickCount()函数返回CPU 自某个事件(如启动电脑)以来走过的时钟周期数    Mat img = imread("E:/testpicture/crystal.jpg");//通过绝对路径从指定文件夹 读取一张名字为 crystal的 图像,图像格式为 .jpg 注意读取图像必须指定格式    double time2 = (static_cast<double>( getTickCount()) - time1)/getTickFrequency();//获得了读取一张图像所需的时间单位为秒。 其中getTickFrequency()函数返回CPU一秒钟所走得时钟周期数。    cout<<"从文件中读取一张图像的时间是:"<< time2 <<"秒"<<endl;//输出运行时间    return 0;}里写代码片

下面是程序运行的结果这里写图片描述

0 0
原创粉丝点击