c++统计执行时间,单位 s。

#include <opencv2/opencv.hpp>double time0 = static_cast<double>(cv::getTickCount());
xxxxxx
time0 = ((double)cv::getTickCount() - time0) / cv::getTickFrequency();
std::cout << "time : " << time0 << std::endl;

C++版的getTickFrequency返回的是每秒钟的tick数

C版的cvGetTickFrequency返回的是每微妙的tick数

double t = (double)cvGetTickCount();
//  算法过程
t = (double)cvGetTickCount() - t;

printf( "run time = %gms\n", t/(cvGetTickFrequency()*1000) );

printf( "run time = %gs\n", t/(cvGetTickFrequency()*1000000) );

这//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;
}

 int64 tStart = 0;
 int64 tDuration = 0;   tStart = getTickCount();            tDuration = getTickCount() - tStart; double fps = static_cast<double>(getTickFrequency() / tDuration);int64 tStart = 0;
 int64 tDuration = 0;   tStart = getTickCount();            tDuration = getTickCount() - tStart; double fps = static_cast<double>(getTickFrequency() / tDuration);
  printf("fps:%f\n",fps);printf("fps:%f\n",fps);

计时函数

1. 纯C 高精度(100ns)测量慢

[cpp] view plain copy
  1. #include <Windows.h>
  2. #include <stdio.h>
  3. int timer1_test()
  4. {
  5. LARGE_INTEGER start;
  6. LARGE_INTEGER end ;
  7. LARGE_INTEGER frequency;
  8. int i = 0;
  9. if (!QueryPerformanceFrequency(&frequency))
  10. {
  11. return -1;
  12. }
  13. QueryPerformanceCounter(&start); //开始计时
  14. //     for (int i = 0; i < 100000; ++i)
  15. //     {
  16. //         ;// 用循环来测试计时
  17. //     }
  18. Sleep(1);
  19. QueryPerformanceCounter(&end); //结束计时
  20. printf("main cost:%f\n", (double)(end.QuadPart - start.QuadPart) / (double)frequency.QuadPart); //打印for循环执行时间
  21. getchar();
  22. return 0;
  23. }

2.纯C 低精度(1ms)测量快

w plai copy
  1. #include <stdio.h>
  2. #include <time.h>
  3. void timer2_test()
  4. {
  5. clock_t start,end;
  6. start=clock();
  7. Sleep(1000);
  8. end=clock();
  9.     double duration = (double)(end - start);
        cout << "--> time: " << duration << " s" << endl;
        printf("time  : %f  ms \n",duration/1000);   double duration = (double)(end - start);
        cout << "--> time: " << duration << " s" << endl;
        printf("time  : %f  ms \n",duration/1000);
  10. }

3.C++  OpenCV测试 高精度 view p copy

  1. #include"opencv.hpp"
  2. void timer3_test()
  3. {
  4. int64 start=0,end=0;
  5. start = getTickCount();
  6. Sleep(1000);
  7. end = getTickCount();
  8. cout << "The differences: " << 1000.0*(end - start)/getTickFrequency()<<" ms"<< endl;
  9. }

这个是在多线程下比较精确的

#include <time.h>
struct timespec time1={0,0};
struct timespec time2={0,0};
int main()
{   

        clock_gettime(CLOCK_REALTIME,&time1);
        sRect result = tracker.update( frame);
        clock_gettime(CLOCK_REALTIME,&time2);
        ///
        sum_time += (time2.tv_sec-time1.tv_sec)*1000+(time2.tv_nsec-time1.tv_nsec)/1000000 ;
        printf("time  : %d  ms \n", (time2.tv_sec-time1.tv_sec)*1000+(time2.tv_nsec-time1.tv_nsec)/1000000);

    return 0;
} <time.h>
struct timespec time1={0,0};
struct timespec time2={0,0};
int main()
{   

        clock_gettime(CLOCK_REALTIME,&time1);
        sRect result = tracker.update( frame);
        clock_gettime(CLOCK_REALTIME,&time2);
        ///
        sum_time += (time2.tv_sec-time1.tv_sec)*1000+(time2.tv_nsec-time1.tv_nsec)/1000000 ;
        printf("time  : %d  ms \n", (time2.tv_sec-time1.tv_sec)*1000+(time2.tv_nsec-time1.tv_nsec)/1000000);

    return 0;
}

opencv 计时 帧率相关推荐

  1. 为什么OpenCV计算的帧率是错误的?

     点击上方"LiveVideoStack"关注我们 ▲扫描图中二维码或点击阅读原文▲ 了解音视频技术大会更多信息 作者:王伟 编辑:Alex   引 言   我们有一个平台来周期性 ...

  2. OpenCV-计时函数cv::getTickCountcv::getTickFrequency

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 场景需求 使用OpenCV时,如果有计时的需求,就记住两个函数cv::getTickCount和 ...

  3. iOS之深入探究动画渲染降帧

    一.为什么要对动画降帧? 众所周知,刷新频率越高体验越好,对于 iOS app 的刷新频率应该是越接近越 60fps 越好,主动给动画降帧,肯定会影响动画的体验.但是另一方面,我们也知道动画渲染的过程 ...

  4. opencv获取摄像头帧率分辨率

    python opencv 获取摄像头分辨率,设置摄像头分辨率 import cv2cap = cv2.VideoCapture(0)#先设置参数,然后读取参数cap.set(3,1280) # wi ...

  5. OpenCV~捕获摄像头 帧率fps和waitkey函数 问题

    本文分析在使用OpenCV捕获摄像头时发现的两个问题: 使用capture.get(CV_CAP_PROP_FPS)方法获取帧率为0! waitKey()函数有几个作用?改变它的参数大小会影响计算得到 ...

  6. 【C++】【OpenCv】图片加噪声处理,计时,及键盘事件响应捕捉

    图像噪声添加 cv::Mat addGuassianNoise(cv::Mat& src, double a, double b) {cv::Mat temp = src.clone();cv ...

  7. OpenCV 【十二】OpenCV如何扫描图像、利用查找表和计时

    目录 OpenCV如何扫描图像.利用查找表和计时 1.函数计算时间测试case 2. Mat图像的存储机理 3. 像素遍历的3--4种方式 4. 实例 OpenCV如何扫描图像.利用查找表和计时 如何 ...

  8. opencv python 从摄像头获取视频、帧率、分辨率等属性设置和使用

    opencv python 从摄像头获取视频.帧率.分辨率等属性设置和使用 文章目录: 1,为了获取视频,你应该创建一个 VideoCapture 对象.他的参数可以是设备的索引号,或者是一个视频文件 ...

  9. OpenCV之core 模块. 核心功能(1)Mat - 基本图像容器 OpenCV如何扫描图像、利用查找表和计时 矩阵的掩码操作 使用OpenCV对两幅图像求和(求混合(blending))

    Mat - 基本图像容器 目的 从真实世界中获取数字图像有很多方法,比如数码相机.扫描仪.CT或者磁共振成像.无论哪种方法,我们(人类)看到的是图像,而让数字设备来"看"的时候,则 ...

最新文章

  1. QCOW2 — 再谈 COW、ROW 快照技术
  2. golang RSA base64 加解密 签名验签
  3. CS224n笔记二:word2vec
  4. 必须掌握的八个cmd命令行
  5. 读书笔记 数据化营销
  6. dubbo原理和机制_面试官几个 Dubbo 微服务框架问题,把我整懵了?
  7. ROS main函数中订阅器的编写
  8. CANape中使用vCDMStudio批量标定
  9. 前端博站项目中遇到的问题总结
  10. 串操作指令---movs,stos,rep
  11. 随机存储器(RAM),只读存储器(ROM),高速缓存(CACHE),内存,硬盘,CPU
  12. PON光模块相关知识
  13. 河南理工大学计算机专业几本,河南理工大学是几本?河南理工大学是985或211吗...
  14. supervisor+cesi多服务器进程集中管理
  15. 算法分享: 动态规划之拱桥回文算法
  16. 域名与DNS域名系统
  17. mysql缩写月名转换_mysql数据库时间、字符串类型互转
  18. 京东 API接口:item_search - 按关键字搜索商品
  19. 985大学计算机专业保研率排名,中国高校保研率排名,前二十名多数是985大学
  20. WebBench压力测试工具(详细源码注释+分析)

热门文章

  1. java两行两行读取问文件,正则提取两行之间所有行内容方法.
  2. mega_[MEGA DEAL]带有Kotlin捆绑包的完整Android Oreo(95%折扣)
  3. android_通过高级应用程序开发策略在Android中进行用户参与
  4. clickhouse 新增列_ClickHouse入门记录
  5. mysql crm动态列设计_值得收藏:一份非常完整、详细的MySQL规范
  6. mac好用大java_好用,小个头大本事!Mac下轻量级清理软件。
  7. n个数求和 java_暴力+辗转相除法——N个数求和
  8. 合格的后端Coder都应该写好UT和Mock测试
  9. 如何优雅关闭 Spring Boot 应用
  10. 轻松高效玩转DTO(Data Transfer Object)