openCV(三)视频相关操作

本文详细介绍了如何使用OpenCV进行视频的捕获、帧读取、视频编码和保存,包括创建VideoCapture对象、处理帧操作、VideoWriter的使用以及实例演示。适合初学者了解视频处理基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

视频的读取、显示与保存

函数说明
cap=cv.VideoCapture(index/path)创建一个视频捕获对象,index为摄像头索引,path为视频文件路径
cap.isOpened()检查视频捕获对象是否已初始化完成
ret, frame = cap.read()逐帧捕获视频
正确读取帧,ret为True,frame为每帧图像
out=cv.VideoWriter(filename, fourcc, fps, framesize,iscolor)创建视频写对象
filename:输出视频文件名
fourcc:视频编码格式,例如,
cv.VideoWriter_fourcc(‘XVID’)
cv.VideoWriter_fourcc(
‘MJPG’)
若编码器代号为 -1,则运行时会弹出选择框
fps:创建的视频流的帧率,用浮点数表示,例如20.0
framesize:视频流的大小,用元组表示,例如(640,480)
iscolor:是否使用彩色帧,用bool值表示
out.write(frame)逐帧保存视频
out.release()释放写对象
cap.release()释放捕获对象

一个栗子
从摄像头读取视频,显示在窗口中,按S键另存在当前目录并退出

import numpy as np
import cv2 as cv
cap = cv.VideoCapture(0)
# 定义编解码器并创建VideoWriter对象
fourcc = cv.VideoWriter_fourcc(*'XVID')
out = cv.VideoWriter('output.avi', fourcc, 20.0, (640,  480))
while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        print("Can't receive frame (stream end?). Exiting ...")
        break
    out.write(frame)
    cv.imshow('frame', frame)
    if cv.waitKey(1) == ord('s'):
        break
# 完成工作后释放所有内容
cap.release()
out.release()
cv.destroyAllWindows()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值