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

OpenCV技术应用(8)— 如何将视频分解

前言:Hello大家好,我是小哥谈。本节课就手把手教大家如何将一幅图像转化成热力图,希望大家学习之后能够有所收获~!🌈      

     目录

🚀1.技术介绍

🚀2.实现代码

🚀1.技术介绍

视频是由大量的组成的。其中,每一帧都是一幅图像所谓视频分解,就是把组成视频的每一帧从视频文件中分解出来本案例将使用OpenCV分解一个视频文件,把分解得到的视频帧保存在如图所示的images文件夹下。

在保存视频帧之前,要先命名将要被保存的视频帧。关键代码如下所示:

frame_name = 1 # 使用数字命名将要被保存的帧

具备了这个标签后,再来编写“将这些视频帧保存在images文件夹下”的代码。需要注意的是,在拼接保存视频帧路径之前,要先把frame_name由整数转为字符串。关键代码如下所示:

cv2.imwrite("images/" + str(frame_name) + ".jpg", frame) # 保存视频帧

🚀2.实现代码

本案例的操作对象是视频文件。首先,使用VideoCapture类的构造方法打开视频文件。然后,读取视频帧。接着,把读取到的视频帧保存在images文件夹下。最后,释放被视频文件占用的空间。

具体的实现代码如下所示:

import cv2video = cv2.VideoCapture(r"C:\Users\Lenovo\Desktop\room.mp4") # 打开视频文件
frame_name = 1 # 使用数字命名将要被保存的帧
while (video.isOpened()): # 视频文件被打开后retval, frame = video.read() # 读取视频帧if retval == True: # 读取到视频帧后cv2.imwrite("data/images/" + str(frame_name) + ".jpg", frame) # 保存视频帧else: # 没有读取到视频帧break # 终止循环frame_name = frame_name + 1 # 用于命名将要被保存的帧的数字执行自加操作cv2.waitKey(1) # 1毫秒后播放视频文件的下一帧
print("视频已分解完成!") # 控制台输出提示信息
video.release() # 释放被视频文件占用的空间

运行结果如下所示:


http://www.lryc.cn/news/264262.html

相关文章:

  • Swagger2接口测试文档
  • 【Java】BigDecimal 比较自动化页面获取数据的大小
  • 开源键盘工程QMK
  • Elasticsearch的批量bulk 提交 写入的方式会有顺序问题吗?
  • 云原生之深入解析如何使用Vcluster Kubernetes加速开发效率
  • PCL 已知同名点对计算旋转矩阵并对点云进行旋转
  • MyBatis ORM映射
  • 在线客服系统推荐:为何选择Zoho Desk?
  • 手绘心情树叶,探索情绪世界
  • 智能优化算法应用:基于水基湍流算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • 打开和关闭GBASE南大通用数据库连接
  • Zookeeper 集群搭建过程中常见错误
  • Linux开发工具——vim篇
  • 基于YOLOv5的吸烟检测系统设计与实现
  • 递归算法:二叉树前序、中序、后序遍历解析与递归思想深度剖析
  • WebGL开发数字孪生项目
  • 【51单片机系列】C51中的中断系统扩展实验
  • Poi实现复杂Excel导出,理解POI操作Excel思路!!!
  • 关于 jsconfig.json 文件在导入文件路径提示方面
  • 验证码:防范官网恶意爬虫攻击,保障用户隐私安全
  • python学习笔记--异常捕获
  • ChatGPT如何计算token数?
  • 页面菜单,通过get请求一个url后,跳转另外一个页面,+丢失问题
  • 高并发场景下的延时双删
  • log4js-node在nodejs项目中的使用示例
  • Java_集合进阶(Collection和List系列)
  • QT GUI代码大全(MainWindow, QFile, QPainter, QGraphicsItem/Scene/View)
  • C# Onnx Yolov8 Detect 物体检测 多张图片同时推理
  • 学习使用js保留两位小数同时去掉小数末尾多余的00
  • linux驱动的学习 驱动开发初识