Python OpenCV10:OpenCV 视频基本操作

article/2025/9/24 21:54:42

1. 读视频

1.1 获取视频对象

要在 OpenCV 中获取视频,需要创建一个 VideoCapture 对象并指定要读取的视频文件。

cv.VideoCapture(filepath)

参数:

filepath 视频文件路径

返回值:

cap 读取视频的对象

1.2 获取视频属性

cap.get(propId) 获取视频的属性信息

参数:

propId 表示视频属性种类的数字:

1.3 修改视频属性

cap.set(propId,value)

参数:

proid 表示视频属性种类的数字,与上面的表格相对应。

value 修改后的属性值

1.4 判断图像是否读取成功

cap.isOpened()

返回值:

读取成功则返回True,否则返回False。

1.5 获取视频的一帧图像

ret, frame = cap.read()

返回值:

ret 获取成功则返回True,否则返回False。

frame 获取到的一帧的图像

1.6 释放视频

cap.realease() 释放视频

2. 保存视频

2.1 设置视频的编解码器

cv.VideoWriter_fourcc(c1, c2, c3, c4)

2.2 获取视频写入对象

要在 OpenCV 中保存视频,需要创建一个 VideoWriter 对象并指定要输出文件的名称。

cv.VideoWriter(filename, fourcc, fps, frameSize)

参数:

filename 视频保存的位置

fourcc 视频编解码器的4字节代码

fps 帧率

frameSize 帧大小:(width, height)

例:读写视频。

import cv2 as cv# 读取视频
cap = cv.VideoCapture("image/KartRider.mp4")# 判断是否读取成功
# 执行下面的写视频代码时注释掉这个while
while cap.isOpened():# 获取每一帧图像ret, frame = cap.read()# 获取成功则显示图像if ret:cv.imshow("frame", frame)# 按q退出if cv.waitKey(25) & 0xFF == ord("q"):breakcap.release()
cv.destroyAllWindows()# 获取视频图像的宽和高
width = int(cap.get(3))
height = int(cap.get(4))# 设置保存视频的文件名和格式
fourcc = cv.VideoWriter_fourcc("M", "J", "P", "G")
out = cv.VideoWriter("out.avi", fourcc, 10, (width, height))while True:ret, frame = cap.read()if ret:out.write(frame)else:breakcap.release()
out.release()
cv.destroyAllWindows()

http://chatgpt.dhexx.cn/article/fcvXaMW2.shtml

相关文章

Renderers

渲染器 (Renderers) 在将 TemplateResponse 实例返回给客户端之前,必须渲染它。渲染过程采用模板和上下文的中间表示,并将其转换为可以提供给客户端的最终字节流。—— Django 文档 REST framework 包含许多内置的渲染器 (Renderer) 类,允许…

python调用opencv实现视频读写

文章目录 一、从文件中读取视频并播放1.1 基本API讲解1.2 python实现 二、保存视频2.1 基本API讲解2.1 python实现范例 一、从文件中读取视频并播放 1.1 基本API讲解 在OpenCV中我们要获取一个视频,需要创建一个VideoCapture对象,指定你要读取的视频文…

记一次有趣的debug,VS编译器上Debug和Realease的差异

之前自己写过一个imageread的函数,用了好久一直没问题。最近两天,同事让我realease一个项目给他,其中就包含了我自己写的imageread函数。 我的函数就长这样,不包含公司的code,不算泄密哈。 在realse之前,我…

C++语言基础篇

✅作者简介:CSDN内容合伙人,全栈领域新星创作者,阿里云专家博主,华为云云享专家博主,掘金后端评审团成员 💕前言: 学长出的这一系列专栏适合有⼀点 C 基础&#xff0c…

PCL12.1 Realease 附加依赖项

PCL12.1 Realease 附加依赖项 libboost_atomic-vc142-mt-g-x64-1_78.lib libboost_bzip2-vc142-mt-g-x64-1_78.lib libboost_chrono-vc142-mt-g-x64-1_78.lib libboost_container-vc142-mt-g-x64-1_78.lib libboost_context-vc142-mt-g-x64-1_78.lib libboost_contract-vc142-…

Vue强制刷新页面重新加载数据方法

业务场景 在管理后台执行完增删改查的操作之后,需要重新加载页面刷新数据以便页面数据的更新 实现原理 就是通过控制router-view 的显示与隐藏,来重渲染路由区域,重而达到页面刷新的效果,show -> flase -> show 具体代码…

Linux 重新加载 nginx 配置命令

1. 查找 nginx 位置 whereis nginx2. 进入 nginx 目录 cd /usr/local/nginx/sbin3. 检查 nginx 配置文件是否正确 ./nginx -t 4. 重新加载配置文件 ./nginx -s reload

IDEA 无法重新加载Maven项目

IDEA 无法重新加载Maven项目 如图: 真头疼,搞了半小时才搞明白,我的Maven版本是3.8.6,而idea版本是2020,用不了这么新版的maven。 解决方案 maven版本高于idea版本,去查找低于idea版本日期的maven或者直…

Unity架构之详解域重新加载和场景重新加载

一、unity进入运行模式包括以下主要阶段 备份当前场景:这仅在场景被修改后发生。这样当退出运行模式时,Unity 将场景恢复为运行模式开始前的状态。Domain Reload:通过重新加载脚本域来重置脚本状态。Scene Reload:通过重新加载场…

Pycharm如何重新加载

在日常工作中,我们可能会经常遇到一种情况,那就是当我们程序执行结束后,相应的项目文件并没有自动显现出来,这时为避免我们关闭Pycharm再重新打开的麻烦,我们可以使用Pycharm中的同步或者快捷键进行重新加载。 1.同步 …

Box2d源码学习十一GJK之距离的实现

本系列博客是由扭曲45原创,欢迎转载,转载时注明出处,http://blog.csdn.net/cg0206/article/details/8352227 Box2d中距离是指两个形状最近点之间的距离,主要用于形状的碰撞检测,通过GJK算法实现,在GJK中又使…

GJK算法求凸多边形之间的距离

GJK算法最初用来求三维空间中凸多面体的距离(即最近距离),也因此经常用来做碰撞检测(距离是否为0)。后被推广到n维空间中求凸包之间的距离,此处用来求二维平面上2个凸多边形的距离。 GJK算法首先要解决…

GJK算法,碰撞检测(自学笔记,侵权删)

学哔哩哔哩《看似简单的复杂问题,奇怪而优雅的解决方式(GJK算法) | Reducible》——来自博主“我最会爬惹”笔记 一、凸形和凹形的基础概念 所有图形可以分成两种:凸形和凹形,如图1.1所示。 图1.1 凸形和凹形 凸形的性…

判断两个形状是否相交(二)-GJK

判断两个形状是否相交二-GJK 原文地址一 介绍二凸多边形性质三Minkowski和四单纯形五支持函数六创建单纯形七相交检测八迭代 然后我们开始循环迭代第二次迭代第三次迭代 九检测单纯形结束语 判断两个形状是否相交(二)-GJK 原文地址 一、 介绍: GJK和SAT一样&am…

碰撞检测GJK算法论文解析一

碰撞检测GJK算法论文解析一 碰撞检测Objcet Representation And Distance1.涉及的概念2.内容详解 Preliminaries1.涉及的概念2.内容详解 碰撞检测 碰撞检测是3维游戏内必不可少的一个功能,有了碰撞检测,游戏才能显得更加真实。之前查找碰撞检测的资料&a…

GJK之判断是否相交

由于排版问题,新文章已经更新到 本文新地址 原文地址: http://www.codezealot.org/archives/88 一、 介绍: GJK和SAT一样,只适用于凸多边形。GJK更为强大的地方在于,它可以通过“支持函数”(稍后讨论)支持所有的形状。因此,和SA…

引擎开发_ 碰撞检测_GJK 算法详细介绍

概述 和SAT(分离轴定理)算法一样,GJK算法也只对凸体有效。 GJK算法的优势是:通过support函数(后面会详细讲述),从而支持任何凸体形状之间的碰撞检测;相比SAT算法,你不需要一些额外的操作&#x…

Planning-碰撞检测之GJK

原文:dyn4j:GJK (Gilbert–Johnson–Keerthi) 目录 1. Minkowski Sum(明可夫斯基和)2. Simplex3. support函数4. 构建Simplex G J K GJK GJK和 S A T SAT SAT一样用于检测凸多边形,和 S A T SAT SAT不同, G J K GJK GJK可以处理任意形状的凸多边形&#…

GJK算法

转自:http://blog.sina.com.cn/s/blog_833d50630100xw1r.html GJK算法最初用来求三维空间中凸多面体的距离(即最近距离),也因此经常用来做碰撞检测(距离是否为0)。后被推广到n维空间中求凸包之间的距离&…

碰撞检测GJK算法论文解析二

碰撞检测GJK算法论文解析二 The Theoretical Algorithm内容详解 初探The Distance Subalgorithm内容详解 Appendix Ⅱ涉及的概念内容详解 接上文,本篇文章讲解GJK算法论文的第四、第五部分前半部分,这是整个算法最为核心的部分。第四部分阐述了算法的核心…