OpenCV实现视频的读取、显示、保存

目录

1,从文件中读取视频并播放

1.2代码实现

1.3效果展示

2,保存视频

[2.1 代码实现](#2.1 代码实现)

[2.2 结果展示](#2.2 结果展示)


1,从文件中读取视频并播放

在OpenCV中我们需要获取一个视频,需要创建一个VideoCapture对象,指定你要读取的视频文件:

(1)创建读取视频的对象

cap = cv.VideoCapture(filepath) 参数:视频文件路径

(2)视频的某些属性

(3)判断图像是否读取成功

(4)获取视频的一帧图像

(5)调用cv.imshow显示图像,在显示图像时使用cv.waitkey()设置适当的持续时间,如果太低视频会播放的非常快,如果太高就会播放的非常慢,通常情况下设置为 25 ms

(6) 调用cap.release()将视频释放掉

1.2代码实现

复制代码
import numpy as np
import cv2 as cv

#获取视频对象
cap = cv.VideoCapture(r'E:\All_in\opencv\video.mp4')
#判断是否读取成功

while(cap.isOpened()):
    #获取某一帧图像
    ret , frame = cap.read()
    #获取成功显示图像
    if ret == True:
        cv.imshow('frame',frame)
    #每一帧间隔25ms
    if cv.waitKey(25)& 0xFF == ord('q'):
        break

#释放视频对象
cap.release()
cv.destroyWindow()

1.3效果展示

2,保存视频

2.1 代码实现

复制代码
import cv2 as cv
import numpy as np

#读取视频
cap = cv.VideoCapture(r'E:\All_in\opencv\video.mp4')

#获取图像的属性(宽和高),并将其转化为整数
frame_width = int(cap.get(3))
frame_height = int(cap.get(4))

#创建保存图像的对象 , 设置编码格式,帧率,图像的宽 高等
'''函数第一个参数为输出文件路径,因为我们想保存为AVI格式,所以要指定编码格式为'M','J','P','G'(MJPEG压缩)
,帧率设置为10,视频帧的宽高设置为前面获取到的frame_width和frame_height。'''
out = cv.VideoWriter('outpy.avi',cv.VideoWriter_fourcc('M','J','P','G'),10,(frame_width,frame_height))
while(True):
    #获取视频中每一帧图像
    ret ,frame= cap.read()
    if ret==True:
        #将每一帧图像写入输出文件中
        out.write(frame)
    else:
        break

#释放资源
cap.release()
out.release()
cv.destroyAllWindows()

2.2 结果展示

相关推荐
MATLAB代码顾问3 小时前
5大智能算法优化标准测试函数对比(Python实现)
开发语言·python
ting94520003 小时前
Tornado 全栈技术深度指南:从原理到实战
人工智能·python·架构·tornado
果汁华3 小时前
Browserbase Skills:让 Claude Agent 真正“看见“网页世界
人工智能·python
ZhengEnCi3 小时前
04-缩放点积注意力代码实现 💻
人工智能·python
DeepReinforce4 小时前
三、AI量化投资:使用akshare获取A股主板20260430所有的涨停股票
python·量化·akshare·龙头战法
HackTwoHub4 小时前
AI大模型网关存在SQL注入、附 POC 复现、影响版本LiteLLM 1.81.16~1.83.7(CVE-2026-42208)
数据库·人工智能·sql·网络安全·系统安全·网络攻击模型·安全架构
段一凡-华北理工大学4 小时前
【高炉炼铁领域炉温监测、预警、调控智能体设计与应用】~系列文章08:多模态数据融合:让数据更聪明
人工智能·python·高炉炼铁·ai赋能·工业智能体·高炉炉温
万粉变现经纪人4 小时前
如何解决 pip install llama-cpp-python 报错 未安装 CMake/Ninja 或 CPU 不支持 AVX 问题
开发语言·python·开源·aigc·pip·ai写作·llama
其实防守也摸鱼5 小时前
CTF密码学综合教学指南--第五章
开发语言·网络·笔记·python·安全·网络安全·密码学
网络工程小王5 小时前
【LangChain 大模型6大调用指南】调用大模型篇
linux·运维·服务器·人工智能·学习