如何实现YOLOv8保存目标检测后的视频文件

        首先安装所需的库和依赖项,确保你已经安装了OpenCV和YOLOv8的相关库和依赖项。你可以使用pip或conda来安装它们。
        其次加载YOLOv8模型,使用YOLOv8的训练权重文件和配置文件,加载模型并进行初始化。这可以通过使用适当的库函数来完成,例如OpenCV的dnn.readNetFromDarknet()。
        使用OpenCV的cv2.VideoCapture()函数打开要进行目标检测的视频文件。你需要提供视频文件的路径作为参数。
        创建输出视频文件:使用OpenCV的cv2.VideoWriter()函数创建一个输出视频文件,用于保存目标检测后的结果。你需要指定输出视频的路径、编解码器、帧率和分辨率等参数。
        逐帧进行目标检测,使用一个循环来逐帧读取视频文件,然后将每一帧送入YOLOv8模型进行目标检测。你可以使用OpenCV的cv2.imshow()函数将检测结果显示在屏幕上,或者将其绘制在原始帧上。
        将检测结果写入输出视频,将每一帧的检测结果写入输出视频文件。你可以使用OpenCV的cv2.VideoWriter()函数的write()方法来实现。最后释放资源,在处理完所有帧后,记得释放所有打开的视频文件和释放内存等资源。

具体代码如下:

import cv2
from ultralytics import YOLOdef yolo_pre():yolo=YOLO('./yolov8n.pt')video_path='C:\\Users\\25055\\Desktop\\测试2.mp4' #检测视频的地址cap = cv2.VideoCapture(video_path)  # 创建一个 VideoCapture 对象,用于从视频文件中读取帧# 获取视频帧的维度frame_width = int(cap.get(3))frame_height = int(cap.get(4))# 创建VideoWriter对象fourcc = cv2.VideoWriter_fourcc(*'mp4v')out = cv2.VideoWriter('C:\\Users\\25055\Desktop\\output.mp4', fourcc, 20.0, (frame_width, frame_height)) #保存检测后视频的地址while cap.isOpened():status, frame = cap.read()  # 使用 cap.read() 从视频中读取每一帧if not status:breakresult = yolo.predict(source=frame, save=True)result = result[0]anno_frame = result.plot()#cv2.imshow('行人', anno_frame)out.write(anno_frame) #写入保存# 注释的框架是通过调用 result.plot() 获得的,它会在框架上绘制边界框和标签。# 带注释的框架使用 cv2.imshow() 窗口名称“行人”显示。if cv2.waitKey(1) & 0xFF == ord('q'):breakcap.release()cv2.destroyAllWindows()print('保存完成')video_yolo_path='C:\\Users\\25055\Desktop\\output.mp4'return video_yolo_path

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/819340.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java面试题:描述Java 17中的密封接口及其用途

Java 17是继Java 11和Java 16之后的又一个长期支持(LTS)版本,它于2021年9月发布。在Java 17中,一个重要的新特性是密封接口(Sealed Interfaces),这是对Java接口的增强,它允许接口有更…

【Git】Git的安装与常用命令

Git的安装与常用命令 一、Git的安装 (一)下载 官网下载:https://git-scm.com/downloads 镜像网站:https://registry.npmmirror.com/binary.html?pathgit-for-windows/ (二)安装 双击安装&#xff0c…

Elasticsearch分布式搜索

实用篇-ES-环境搭建 ES是elasticsearch的简称。我在SpringBoot学习 数据层解决方案 的时候,写过一次ES笔记,可以结合一起看一下。 之前在SpringBoot里面写的相关ES笔记是基于Windows的,现在我们是基于docker容器来使用,需要你们提…

安装jmeter和ant

安装jmeter和ant 安装java环境 安装jdk和jre 下载Java SE Development Kit 8 Java SE subscribers will receive JDK 8 updates until at least December 2030. 选择指定包进行安装,如windows 共享账号参考:Oracle官网 账号及密码 目前官网下载低…

springboot接口提高查询速度方法

接口想要提高查询速度&#xff0c;需要减少查询数据库的次数&#xff0c;需要把循环里面的查询提出来一次性查询完毕&#xff0c;然后通过java代码来获取响应的值。如下所示&#xff1a; List<OrderInfoHtVO> orderInfoList orderInfoService.getOrderInfoHtlist(query…

K12智慧校园-学工中心

1 系统概述 学工管理系统用于帮助学校学工部门负责拟定学院年度学生工作计划&#xff0c;提出年度学生工作思路及工作要点&#xff0c;并负责指导各系开展学生工作&#xff1b;负责学院的学风建设与校园文明督查&#xff1b;负责新生军训工作的组织、协调和安排&#xff1b;负…

顺序表 (头删 尾删 清空)

//头删 | 1 #include "head.h" | 1 #ifndef ww87 void head_del(p lp) | 2 int main(int argc, const char *argv[]) …

js纯前端实现语音播报,朗读功能(2024-04-15)

实现语音播报要有两个原生API 分别是【window.speechSynthesis】【SpeechSynthesisUtterance】 项目代码 // 执行函数 initVoice({text: 项目介绍,vol: 1,rate: 1 })// 函数 export function initVoice(config) {window.speechSynthesis.cancel();//播报前建议调用取消的函数…

[阅读笔记2][FLAN]FINETUNED LANGUAGE MODELS ARE ZERO-SHOT LEARNERS

接下来这篇是谷歌的FLAN&#xff0c;提出了指令微调这一新范式&#xff0c;在2022年发表。 这篇论文指出GPT3的zero-shot性能相比few-shot性能差太多了。他们发现如果对预训练模型进行指令微调能使zero-shot性能显著提升&#xff0c;下面右图显示指令微调后zero-shot比GPT3 few…

【zml】vp9 vp8

目录 问题 方案 知识点 研究过程 源码编译的可能 问题 所有 的机型 中&#xff0c;就海思芯片的有这个问题。应该是它的h264的编解码 问题&#xff0c;所以目前是让它以vp9在推流就没有问题。 但zlm对于vp9的录相是没有实现的。 所以目前现状是海思芯片的&#xff0c;就…

Ubuntu 22.04安装中文输入法

1. 安装 sudo apt install fcitx5 2. 管理已安装的语言 Setting->Region & Language->Manage Installed Language 在下图中点击“安装”&#xff0c;之后需要等一会 选择Fcitx 5 3. 添加输入法 Setting->Keyboard 点击chinese 选择你想要的输入法 重启一下&a…

安卓选择器

一、首先引入依赖库 //时间选择器implementation io.github.ShawnLin013:number-picker:2.4.13 二、自定义时间选择器 public class TimePickerCustom {private final BottomSheetDialog bottomDialog;private final NumberPicker year;private final NumberPicker month;pr…

【STL】迭代器iterator详解

前言 本篇文章以对string的操作来演示迭代器的操作。 一、什么是迭代器iterator&#xff1f; 迭代器&#xff08;iterator&#xff09;是一种可以遍历容器元素的数据类型。迭代器是一个变量&#xff0c;相当于容器和操纵容器的算法之间的中介。C迭代器是一种用于遍历容器中元的…

pta L1-062 幸运彩票

L1-062 幸运彩票 分数 15 全屏浏览 切换布局 作者 陈越 单位 浙江大学 彩票的号码有 6 位数字&#xff0c;若一张彩票的前 3 位上的数之和等于后 3 位上的数之和&#xff0c;则称这张彩票是幸运的。本题就请你判断给定的彩票是不是幸运的。 输入格式&#xff1a; 输入在第…

力扣-删除排序链表中的重复元素II

题目 82-删除排序链表中的重复元素II 思路 因为题目中链表是已排序的且重复的节点是挨着的&#xff0c;因此通过一次遍历就可解决改题。同时注意到重复节点可能出现在表头&#xff0c;因此可以在表头新加一个虚拟节点&#xff08;这是一个处理链表问题时较常用的方法&#x…

DRF请求与响应的控制解析方式

DRF请求与响应的控制解析方式 目录 DRF请求与响应的控制解析方式请求&#xff08;Request&#xff09;控制解析格式 响应&#xff08;Response&#xff09;控制解析格式 请求&#xff08;Request&#xff09; DRF的Request类重写了原先Django的request&#xff0c;它比原先多了…

深入理解瑞芯微(Rockchip)VENDOR_STORAGE

序&#xff1a; 在嵌入式开发中&#xff0c;特别是在使用瑞芯微&#xff08;Rockchip&#xff09;系列ARM处理器时&#xff0c;经常会遇到需要在不更改系统固件&#xff08;如Android固件&#xff09;的情况下&#xff0c;存储设备特定的信息&#xff0c;如设备序列号、校准参…

火车头采集一键发布到Zblog

火车头采集发布到Zblog系统&#xff0c;主要操作步骤如下&#xff1a; 目录 1、Zblog火车头Web发布模块 2、内容发布参数映射&#xff0c;火车头发布到Zblog 3、简数一键发布到Zblog方法 1、Zblog火车头Web发布模块 自行编写Zblog火车头Web发布模块&#xff0c;一般要使用f…

ELK之Filebeat实用配置及批量部署(部署200+可用)

跟我之前Zabbix-agent批量部署脚本Linux and Windows&#xff08;部署300可用&#xff09;文章的套路一样&#xff0c;在使用该脚本前&#xff0c;请先准备好安装包及配置好安装包的资源下载点&#xff0c;由于我这边是纯内网&#xff0c;所以我就找了一个NAS做了共享目录&…

docker最新版安装

docker安装 检查系统版本即卸载旧docker安装docker依赖工具及底层依赖、仓库源安装dockerdocker阿里云镜像资源站参考 检查系统版本即卸载旧docker # 查看操作系统的发行版号 uname -r# 查看系统版本 cat /etc/redhat-release# 卸载旧版本docker(如已安装过) yum remove docke…