当前位置: 首页 > news >正文

基于OpenCV+MFC的视频读取与对象跟踪平台

基于OpenCV+MFC的视频读取与对象跟踪平台

  • 引言
  • 一、软件功能简介
  • 二、各个功能介绍
    • 1、视频操作模块功能介绍
      • 1.1打开视频
      • 1.2打开摄像头
      • 1.3开始录制
      • 1.4结束录制
      • 1.5暂停
      • 1.6恢复
      • 1.7关闭
      • 1.8还原
    • 2、对象跟踪模块功能介绍
      • 2.1 BSM跟踪
      • 2.2 颜色跟踪
      • 2.3 光流跟踪
      • 2.4 KCF多对象跟踪
  • 资源链接

引言

  好久没写关于视觉的文章了,读研那会儿做了很多的小程序一直存在硬盘都吃灰了,这次我得把它们二次利用起来,拿出来晾凉,不然就有些浪费了,哈哈哈哈。
  下面这个是本人读研期间做的一个小平台,当时还用它水了篇小软著,想着给自己评奖的时候多加点分来着,但最后也是没用到。
  虽然现在看着挺简单的,但当时为了实现它还是耗费了我不少心思的,尤其是KCF多对象跟踪,直接通过界面框选某个物体来进行对象跟踪的这个操作,当时卡了好几天才弄出来,哈哈这个挺好玩的。
  文章最后会附带资源获取链接——内含源码、使用视频等。

一、软件功能简介

视频读取与对象跟踪平台:
  采用VS开发环境,C++编程语言,MFC框架搭建界面,调用opencv算法库开发。具有读取、暂停、恢复、保存、录制视频的功能,并通过多种对象跟踪算法对视频中的指定物体进行跟踪。所包含的对象跟踪算法有BSM跟踪,颜色跟踪,光流跟踪,KCF多对象跟踪等算法。

软件运行结果如下所示:
在这里插入图片描述

二、各个功能介绍

1、视频操作模块功能介绍

1.1打开视频

  软件打开运行后,单击打开视频按钮,如下,会弹出对话框,可用来选择要打开的视频。选择的视频格式有avi、MP4等常用的视频格式。
在这里插入图片描述

  如上选择bike.avi视频后,点击对话框的打开按钮,视频会显示在软件主界面的显示窗口上,如下所示
在这里插入图片描述

  若打开的视频正处于播放阶段,不进行视频关闭则无法打开下一个视频,即在视频播放时再次点击打开视频按钮,则会弹出如下警告
在这里插入图片描述

1.2打开摄像头

  点击打开摄像头时会打开电脑所连接的外置摄像头,当无外部链接的摄像头时会打开电脑本身自带的摄像头,电脑没有链接摄像头则报错。
  打开摄像头时,主界面显示窗口如下:
在这里插入图片描述

1.3开始录制

  当打开摄像头时,点击此开始录制按钮可以进行视频录制操作,点击开始录制按钮会弹出如下对话框,此处需要选择要录制的视频的保存路径,当录制完成时,录制好的视频会报保存在此路径下:
在这里插入图片描述

当点击下方的结束录制按钮时,在当前路径下可以看到保存的视频
在这里插入图片描述

若未打开摄像头,直接点击开始录制按钮,会弹出警告,如下
在这里插入图片描述

1.4结束录制

点击结束,若未开始录制按钮,直接打开此结束按钮,会弹出警示框如下
在这里插入图片描述

1.5暂停

  当前若有视频运行,点击暂停按钮时,在播放中的视频或者正在录制的摄像头都会停止播放或录制操作。
  若未读取视频或打开摄像头,直接打开暂停按钮,则会弹出警告如下
在这里插入图片描述

1.6恢复

  当前由视频运行或者摄像头开启时,并且已经进行了暂停按钮的点击,选择恢复按钮可以恢复被暂停的视频播放或摄像录制操作。
  若未读取视频或打开摄像头,直接打开恢复按钮,则会弹出警告如下
在这里插入图片描述

1.7关闭

  若打开的视频正处于播放阶段,或者摄像头处于录制阶段,不进行关闭则无法打开下一个视频或摄像头,只有关闭当前视频或摄像头才可以打开下一个。
  若当前未有视频播放或者摄像录制,直接点击关闭按钮,会弹出如下警示框
在这里插入图片描述

1.8还原

  当打开的视频播放完成或者关闭时,点击此还原按钮会重新打开上一个视频进行播放。

2、对象跟踪模块功能介绍

2.1 BSM跟踪

  BSM又称背景消去建模法, 消除背景建模就是找出视频中移动的区域,只能对运动的物体进行跟踪,跟踪效果如下
在这里插入图片描述

上方左侧为原始视频图像,当点击BSM跟踪按钮后,显示效果如右侧所示。

2.2 颜色跟踪

  颜色跟踪,可以根据某个物体的特定的颜色进行跟踪,此处内置的是跟踪绿色,若是其他颜色物体跟踪可以更改内置颜色像素值来进行跟踪,如下所示

在这里插入图片描述

2.3 光流跟踪

  光流法是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。在此处使用光流法跟踪并将跟踪的角点连续画出,效果如下
在这里插入图片描述

2.4 KCF多对象跟踪

当打开某个视频后,点击KCF多对象跟踪按钮,会弹出对象选择框如下
在这里插入图片描述

当我们使用鼠标点击拉伸时,可以框处我们想要的跟踪的某个物体,

在这里插入图片描述

  然后点击enter键,再点击esc键,视频就可以继续运行,并且跟踪所选择的对象了,如下:

在这里插入图片描述

  当然此KCF多对象跟踪可以不只跟踪某个对象,还可以跟踪多个对象,选择多个对象框住跟踪,如下:

在这里插入图片描述

资源链接

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • MathType7.4中文版本功能详解!你的数学公式编辑神器
  • Conda Shell初始化指南:激活你的开发环境
  • RK3568平台开发系列讲解(文件系统篇)文件描述符 fd(File Descriptor)是什么?
  • 电脑自动重启是什么原因?重启原因排查和解决办法!
  • C++_sizeof的相关知识点
  • C++模板元一生之友之:std::enable_if
  • 若依vue版前端白名单处理
  • php之 进行签名公钥、私钥(SHA1withRSA签名)
  • oracle(19c)用户管理
  • pytorch学习笔记3 tensor索引和切片
  • 如何使用哔哩哔哩下载与缓存视频?
  • 【无标题】图像增强技术:直方图均衡化、拉普拉斯算子、对数变换与伽马变换
  • Markdown语法学习
  • 同一台机器上,github多账号操作
  • HPC高性能计算平台
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • CSS实用技巧干货
  • Idea+maven+scala构建包并在spark on yarn 运行
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • JavaScript设计模式系列一:工厂模式
  • vue学习系列(二)vue-cli
  • webgl (原生)基础入门指南【一】
  • 安卓应用性能调试和优化经验分享
  • 程序员最讨厌的9句话,你可有补充?
  • 解析 Webpack中import、require、按需加载的执行过程
  • 理清楚Vue的结构
  • 浏览器缓存机制分析
  • 扑朔迷离的属性和特性【彻底弄清】
  • 前端设计模式
  • 如何设计一个比特币钱包服务
  • 鱼骨图 - 如何绘制?
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • python最赚钱的4个方向,你最心动的是哪个?
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • 如何正确理解,内页权重高于首页?
  • 移动端高清、多屏适配方案
  • ​ArcGIS Pro 如何批量删除字段
  • # Spring Cloud Alibaba Nacos_配置中心与服务发现(四)
  • #DBA杂记1
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • #图像处理
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (LLM) 很笨
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (六)Hibernate的二级缓存
  • (六)软件测试分工
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (一)基于IDEA的JAVA基础12