基于OpenCV+MFC的KCF测速软件

embedded/2024/10/18 9:16:24/

基于OpenCV+MFC的KCF测速软件

  • 引言
  • 原理介绍
  • 使用介绍
    • (1)主界面
    • (2)打开视频
    • (3)点击KCF测速
    • (4)框选待检测目标
    • (5)测速结果
  • 资源链接(包含源码)

引言

  还记得刚上研二那会儿,导师突发奇想让我做乒乓球拍的性能测试,想着这个要是弄好了的话就给我做毕业课题(哈哈最后还是换了另外的课题),这个当时调研了一番,其中关于如何定义乒乓球拍的性能指标比较麻烦,即如何给其定性定量,当时并没有统一的标准,而我想到的就是看同一高度下乒乓球落到球拍后的反弹速度作为其中的一个性能指标。
  但是如何测量视频中某一物体的速度呢?最关键的是把要测量的物体给提取出来,当时想过不少方式,但发现都要定制算法提取特定物体不是特别方便,后来过了一段时间,发现了KCF对象跟踪算法,并且将其与界面结合后,只要框选一下待检测对象就能实现较好的跟踪效果了

原理介绍

KCF测速:采用VS开发环境,C++编程语言,MFC框架搭建界面,调用opencv算法库开发。主要思路是采用KCF算法进行目标跟踪,使用KCF找到目标后,选取其某一特征点,找到视频当前帧该特征点位置P2(以像素为单位),上一帧所在位置P1(以像素为单位),通过视频帧率求得相邻两帧间隔时间t,通过(P2-P1)/t可以简单求得当前帧目标的瞬时速度(这里单位为pix/s),本软件并未进行相机标定与真实物理世界进行连接,求得的是以像素为单位的速度,而非真实世界的速度。

使用介绍

(1)主界面

主界面如下:可以打开mp4、avi等格式的视频,也可以打开电脑连接的摄像头
在这里插入图片描述

(2)打开视频

在这里插入图片描述
在这里插入图片描述

(3)点击KCF测速

点击KCF测速后会弹出一个窗口,该窗口是用来框选待检测目标的
在这里插入图片描述

(4)框选待检测目标

使用鼠标左键点击下拉框选指定目标,然后点击“回车”,再按压键盘“ESC”键,就可以对框选目标进行KCF测速了(需要注意的一点是待检测目标运动的过程中最好不要有遮挡,否则kcf跟踪会失效)
在这里插入图片描述

(5)测速结果

其会将测速结果显示到右下角的文本框上
在这里插入图片描述

资源链接(包含源码)

链接:https://download.csdn.net/download/qq_44870829/89678392
资源内容包含如下:
在这里插入图片描述


http://www.ppmy.cn/embedded/103097.html

相关文章

TCP是什麽

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。 它为网络通信提供了可靠的、有序的和错误检查的传输服务。 TCP 是互联网协议套件(Internet Protocol Suite&#xff…

工厂模式与策略模式的区别?

工厂模式:设计模式--工厂模式-CSDN博客 策略模式:设计模式--策略模式-CSDN博客 如果想具体了解工厂模式和策略模式,请移步上述博客~ 工厂模式与策略模式是两种常见的设计模式,这两种设计模式有几点较相似: 封装性&…

如何使用GPT画出带中文的图和表?-已解决GPT画图表出现乱码的问题

众所周知,GPT的中文库有点问题,要求他画带中文的图或表存在中文的时候,就会出现乱码或者方框。 可以发现,GPT的中文库有问题,那么该如何解决这个问题呢? 直接在promote的时候上传你需要它使用的字体&…

如何在Windows系统上安装和配置Git客户端

😀前言 在这篇博文中,我将为大家介绍如何在Windows系统上安装和配置Git客户端,包括Git for Windows和TortoiseGit。这些工具是进行版本控制管理的必备工具,特别适合开发者在日常工作中使用。通过这篇文章,您将学会如何…

最长回文子串:动态规划推导

最长回文子串:结合图形推导动态规划 题目介绍 本题可以在力扣找到,题号为5。 给你一个字符串 s,找到 s 中最长的 回文子串。 示例 1: 输入:s “babad” 输出:“bab” 解释:“aba” 同样是符…

Vue实现步骤条(el-step)+Popover弹出框

1、实现效果 hover到每一个步骤条上时,如果当前有未完成情况(unFinishedMe不为空),就使用popover显示出来,如果没有hover时就不显示 2、实现思路 循环app信息列表显示多个进度条 使用el-steps 循环步骤列表&#xf…

突破编程:深入理解C++中的组合模式

突破编程:深入理解C中的组合模式 在C及众多面向对象编程语言中,设计模式是解决问题的经典方案,它们帮助开发者在面对复杂系统设计时,能够遵循一套经过验证的最佳实践。组合模式(Composite Pattern)是这些设…

ConfigMap

ConfigMap ConfigMap 是 Kubernetes 中用于配置管理的资源对象。它允许你将配置信息从容器镜像中解耦,使得配置可以独立于应用程序进行管理和更新。以下是 ConfigMap 的详细介绍,包括其主要功能、用法以及常见的场景。 1. ConfigMap 基本概念 ConfigM…