OpenCV的TickMeter计时类
OpenCV的TickMeter计时类
- 1. TickMeter是一个计时的类
- 1.1 计算耗时
- 1.2 计算循环的平均耗时和FPS
- 1.3 function
- 2. 案例
1. TickMeter是一个计时的类
https://docs.opencv.org/4.x/d9/d6f/classcv_1_1TickMeter.html#details

1.1 计算耗时
TickMeter tm;tm.start();// do something ...tm.stop();cout << "Total time: " << tm.getTimeSec() << endl;
1.2 计算循环的平均耗时和FPS
TickMeter tm;for (int i = 0; i < COUNT; i++){tm.start();// do something ...tm.stop();cout << "Last iteration: " << tm.getLastTimeSec() << endl;}cout << "Average time per iteration in seconds: " << tm.getAvgTimeSec() << endl;cout << "Average FPS: " << tm.getFPS() << endl;
1.3 function
| index | function |
|---|---|
| 1 | getAvgTimeMilli |
| 2 | getAvgTimeSec |
| 3 | getCounter |
| 4 | getFPS |
| 5 | getTimeMicro |
| 6 | getTimeMilli |
| 7 | getTimeSec |
| 8 | getTimeTicks |
| 9 | reset |
| 10 | start |
| 11 | stop |
2. 案例
import timeimport cv2tm = cv2.TickMeter()
index = 0
print(f"|index|function|")
print(f"|:----:|:----:|")
for i, con in enumerate(dir(tm)):if con.startswith("__"):continueindex += 1print(f"|{index}|\t{con}|")def show():for _ in range(10):tm.start()time.sleep(0.1)tm.stop()print(f"总计数次数 Last iteration: {tm.getCounter()}")print(f"getTimeSec 总耗时(s): {tm.getTimeSec()} getTimeMilli 总耗时(ms): {tm.getTimeMilli()} "f"getTimeMicro 总耗时(us): {tm.getTimeMicro()} getTimeTicks 总tick(us): {tm.getTimeTicks()}")print(f"Average time per iteration in seconds: {tm.getAvgTimeSec()} Millis: {tm.getAvgTimeMilli()}")print(f"Average FPS: {tm.getFPS()}")show()
tm.reset()
print("after tm.reset()" + "------------------------")
show()
|index|function|
|:----:|:----:|
|1| getAvgTimeMilli|
|2| getAvgTimeSec|
|3| getCounter|
|4| getFPS|
|5| getTimeMicro|
|6| getTimeMilli|
|7| getTimeSec|
|8| getTimeTicks|
|9| reset|
|10| start|
|11| stop|
总计数次数 Last iteration: 1
getTimeSec 总耗时(s): 0.105019959 getTimeMilli 总耗时(ms): 105.019959 getTimeMicro 总耗时(us): 105019.959 getTimeTicks 总tick(us): 105019959
总计数次数 Last iteration: 2
getTimeSec 总耗时(s): 0.209122084 getTimeMilli 总耗时(ms): 209.122084 getTimeMicro 总耗时(us): 209122.084 getTimeTicks 总tick(us): 209122084
总计数次数 Last iteration: 3
getTimeSec 总耗时(s): 0.311539417 getTimeMilli 总耗时(ms): 311.53941699999996 getTimeMicro 总耗时(us): 311539.41699999996 getTimeTicks 总tick(us): 311539417
总计数次数 Last iteration: 4
getTimeSec 总耗时(s): 0.412974 getTimeMilli 总耗时(ms): 412.974 getTimeMicro 总耗时(us): 412974.0 getTimeTicks 总tick(us): 412974000
总计数次数 Last iteration: 5
getTimeSec 总耗时(s): 0.51804475 getTimeMilli 总耗时(ms): 518.04475 getTimeMicro 总耗时(us): 518044.75 getTimeTicks 总tick(us): 518044750
总计数次数 Last iteration: 6
getTimeSec 总耗时(s): 0.623065542 getTimeMilli 总耗时(ms): 623.0655419999999 getTimeMicro 总耗时(us): 623065.5419999999 getTimeTicks 总tick(us): 623065542
总计数次数 Last iteration: 7
getTimeSec 总耗时(s): 0.727750709 getTimeMilli 总耗时(ms): 727.750709 getTimeMicro 总耗时(us): 727750.709 getTimeTicks 总tick(us): 727750709
总计数次数 Last iteration: 8
getTimeSec 总耗时(s): 0.831228417 getTimeMilli 总耗时(ms): 831.228417 getTimeMicro 总耗时(us): 831228.417 getTimeTicks 总tick(us): 831228417
总计数次数 Last iteration: 9
getTimeSec 总耗时(s): 0.933850459 getTimeMilli 总耗时(ms): 933.850459 getTimeMicro 总耗时(us): 933850.459 getTimeTicks 总tick(us): 933850459
总计数次数 Last iteration: 10
getTimeSec 总耗时(s): 1.038880917 getTimeMilli 总耗时(ms): 1038.880917 getTimeMicro 总耗时(us): 1038880.9169999999 getTimeTicks 总tick(us): 1038880917
Average time per iteration in seconds: 0.10388809169999999 Millis: 103.88809169999999
Average FPS: 9.625742312099858
after tm.reset()------------------------
总计数次数 Last iteration: 1
getTimeSec 总耗时(s): 0.10503875 getTimeMilli 总耗时(ms): 105.03875 getTimeMicro 总耗时(us): 105038.75 getTimeTicks 总tick(us): 105038750
总计数次数 Last iteration: 2
getTimeSec 总耗时(s): 0.210075042 getTimeMilli 总耗时(ms): 210.075042 getTimeMicro 总耗时(us): 210075.042 getTimeTicks 总tick(us): 210075042
总计数次数 Last iteration: 3
getTimeSec 总耗时(s): 0.315131042 getTimeMilli 总耗时(ms): 315.131042 getTimeMicro 总耗时(us): 315131.04199999996 getTimeTicks 总tick(us): 315131042
总计数次数 Last iteration: 4
getTimeSec 总耗时(s): 0.416519501 getTimeMilli 总耗时(ms): 416.519501 getTimeMicro 总耗时(us): 416519.501 getTimeTicks 总tick(us): 416519501
总计数次数 Last iteration: 5
getTimeSec 总耗时(s): 0.521595918 getTimeMilli 总耗时(ms): 521.5959180000001 getTimeMicro 总耗时(us): 521595.9180000001 getTimeTicks 总tick(us): 521595918
总计数次数 Last iteration: 6
getTimeSec 总耗时(s): 0.626131752 getTimeMilli 总耗时(ms): 626.131752 getTimeMicro 总耗时(us): 626131.752 getTimeTicks 总tick(us): 626131752
总计数次数 Last iteration: 7
getTimeSec 总耗时(s): 0.727543668 getTimeMilli 总耗时(ms): 727.543668 getTimeMicro 总耗时(us): 727543.6680000001 getTimeTicks 总tick(us): 727543668
总计数次数 Last iteration: 8
getTimeSec 总耗时(s): 0.832573168 getTimeMilli 总耗时(ms): 832.573168 getTimeMicro 总耗时(us): 832573.1680000001 getTimeTicks 总tick(us): 832573168
总计数次数 Last iteration: 9
getTimeSec 总耗时(s): 0.937604126 getTimeMilli 总耗时(ms): 937.604126 getTimeMicro 总耗时(us): 937604.1259999999 getTimeTicks 总tick(us): 937604126
总计数次数 Last iteration: 10
getTimeSec 总耗时(s): 1.04264996 getTimeMilli 总耗时(ms): 1042.6499600000002 getTimeMicro 总耗时(us): 1042649.9600000002 getTimeTicks 总tick(us): 1042649960
Average time per iteration in seconds: 0.10426499600000001 Millis: 104.26499600000001
Average FPS: 9.590946514782392Process finished with exit code 0相关文章:
OpenCV的TickMeter计时类
OpenCV的TickMeter计时类 1. TickMeter是一个计时的类1.1 计算耗时1.2 计算循环的平均耗时和FPS1.3 function 2. 案例 1. TickMeter是一个计时的类 https://docs.opencv.org/4.x/d9/d6f/classcv_1_1TickMeter.html#details 1.1 计算耗时 TickMeter tm;tm.start();// do some…...
蓝桥杯JAVA刷题--001
文章目录 题目需求2.代码3.总结 题目需求 2.代码 class Solution {public String convertDateToBinary(String date) {if (date null || date.length() ! 10 || date.charAt(4) ! - || date.charAt(7) ! -) {throw new IllegalArgumentException("输入的日期格式不正确&…...
免费又开源:企业级物联网平台的新选择 ThingsPanel
在开源领域,选择合适的开源协议是开发者和企业能否充分利用平台的关键。ThingsPanel,作为一个专注于物联网的开源平台,近日将协议从 AGPLv3 改为更开放的 Apache 2.0。这一改变对开发者和用户意味着什么? 为什么协议要从 AGPLv3 转…...
鸿蒙开发:文本合成语音
前言 Android开发的同学都知道,在Android当中,实现一段文字合成语音播放,可以使用系统提供的对象TextToSpeech来很快的实现,如果不用系统自带的,也可以使用三方提供的,比如讯飞的语音合成等等,总…...
雷军:科技传奇的逐梦之旅
亲爱的小伙伴们😘,在求知的漫漫旅途中,若你对深度学习的奥秘、Java 与 Python 的奇妙世界,亦或是读研论文的撰写攻略有所探寻🧐,那不妨给我一个小小的关注吧🥰。我会精心筹备,在未来…...
LeetCode - 初级算法 数组(删除排序数组中的重复项)
免责声明:本文来源于个人知识与公开资料,仅用于学术交流。 删除排序数组中的重复项 这篇文章讨论如何从一个非严格递增的数组 nums 中删除重复的元素,使每个元素只出现一次,并返回新数组的长度。因为数组是排序的,只要是相同的肯定是挨着的,所以我们需要遍历所有数组,然…...
2024年度培训运维总结
目前带的弟子跟我实战训练运维的总就业率基本可以稳定在 100% 左右(因为我不带小白和没学历和大龄,悟性低都筛掉了还能找我说明条件够了) 以下是弟子私教训练营的最新就业数据(2024年12月25日): 面试辅导…...
java重装小结
一、Java安装 安装路径 https://www.oracle.com/java/technologies/javase/javas e8-archive-downloads.html 具体类型可参考: Java安装配置-CSDN博客 我在这一步主要碰到的问题就是访问官网报404错误,可参考: 在oracle官网下载资源显示…...
ubuntu20.04 中文输入法安装
中文输入法安装指南 在 Ubuntu 20.04 上安装中文输入法,您可以按照以下步骤操作: 打开终端。安装 fcitx 输入法框架和中文输入法模块:sudo apt update sudo apt install fcitx fcitx-pinyin安装中文语言支持:sudo apt install l…...
SQL常用语句(基础)大全
SQL语句的类型 1.DDL 1.库2.表 2.DML 1.插入数据 insert inot2.删除数据 delete / truncate3.修改数据 update set 3.DQL 1.无条件查询2.查询 什么开始 到什么结束3.指定条件查询 1.单个条件 ro in2.多个条件 and4.查询不为NULL值 is not null ,为NULL值 is null5.模糊查询 li…...
计算和可视化相对湿度结果
了解如何确定 CFD 模型中的相对湿度。 了解相对湿度 大气是干燥空气和水蒸气的混合物,每一种的压力之和等于蒸气压。相对湿度是指空气中的水分量与空气在特定温度下可以容纳的最大水分量之比。它通常以百分比表示。它的范围从 0(干燥空气)到…...
uniapp-vue3(下)
关联链接:uniapp-vue3(上) 文章目录 七、咸虾米壁纸项目实战7.1.咸虾米壁纸项目概述7.2.项目初始化公共目录和设计稿尺寸测量工具7.3.banner海报swiper轮播器7.4.使用swiper的纵向轮播做公告区域7.5.每日推荐滑动scroll-view布局7.6.组件具名…...
一起学习Firtran: Fortran中的流程控制与操作符
流程控制语句 在计算机编程中,控制程序流程是算法设计中的一个核心概念,它使得程序能够根据特定条件执行不同的操作或重复执行某段代码。这显著增强了计算机算法相对于简单数学公式的功能和灵活性。 if语句 在单个 if 语句中只有当测试表达式࿰…...
Sonic:开源Go语言开发的高性能博客平台
Sonic:一个用Go语言开发的高性能博客平台 简介 Sonic,一个以其速度如声速般快速而命名的博客平台,是一个用Go语言开发的高性能博客系统。正如其名字所暗示的,Sonic旨在提供一个简单而强大的博客解决方案。这个项目受到了Halo项目…...
SpringBoot教程(十四) SpringBoot之集成Redis
SpringBoot教程(十四) | SpringBoot之集成Redis 一、Redis集成简介二、集成步骤 2.1 添加依赖2.2 添加配置2.3 项目中使用之简单使用 (举例讲解)2.4 项目中使用之工具类封装 (正式用这个)2.5 序列化 &…...
RSI和CCI指标组合:如何评估需求供应区?昂首资本实战指南
在市场分析中,分笔成交点数量提供了一个有价值的视角,帮助我们识别需求和供应区。通过这些数据,我们可以假设供需区域的参数与主要振荡器中的区域参数类似。以RSI和CCI为例,这些指标不仅能够反映市场的超买和超卖情况,…...
PTPVT 插值说明
文章目录 PTPVT 插值说明 PTPVT 插值说明PVT Hermite插值PVT 三次多项式插值PT 插值Sin轨迹测试结果PVT Hermite插值结果PVT 三次多项式插值结果PT 插值结果 用户轨迹测试结果PVT Hermite插值结果PT 插值结果 PTPVT 插值说明 PT模式: 位置-时间路径插值算法。 PVT模…...
Spring MVC和servlet
1.Spring MVC是Spring框架的一个扩展 2.Spring MVC工作流程 1、用户发送请求至前端控制器DispatcherServlet。 2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及…...
java下载文件流,不生成中间文件。
java下载文件流,不生成中间文件。 代码设计:代码实现 代码设计: 从前端获取的数据经过后端加工后,生成文件流,并返回前端,(不生成中间文件,注意内存,记得关闭流…...
计算机专业考研 408 学科学习方法
计算机专业考研 408 学科涵盖数据结构、计算机组成原理、操作系统和计算机网络四门核心课程,内容多且难度大。但只要掌握科学的学习方法,便能化繁为简,稳步提升。以下为大家详细介绍 408 学科的学习方法。 一、基础夯实阶段:全面…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...
MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用
文章目录 一、背景知识:什么是 B-Tree 和 BTree? B-Tree(平衡多路查找树) BTree(B-Tree 的变种) 二、结构对比:一张图看懂 三、为什么 MySQL InnoDB 选择 BTree? 1. 范围查询更快 2…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...
SQL Server 触发器调用存储过程实现发送 HTTP 请求
文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...
微服务通信安全:深入解析mTLS的原理与实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言:微服务时代的通信安全挑战 随着云原生和微服务架构的普及,服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...
