【计算机视觉(2)】

基于Python的OpenCV基础入门------视频的处理

视频

视频是由一系列连续的图像帧组成的。每一帧都是视频中的一张静止图像,它们以非常快的速度连续播放,给人一种连续运动的感觉。视频的帧率指的是每秒钟播放的帧数,常见的帧率有24帧/秒、30帧/秒和60帧/秒等。帧率越高,视频播放越流畅。视频的处理就是通过循环将视频流中的所有的帧进行处理

OpenCV视频处理操作:

创建视频对象

cap = cv2.VideoCapture(value)

参数:

设备索引或者一个视频文件名。摄像头读取则是设备索引,0为默认摄像头;视频文件读取则为filename

判断视频是否成功初始化

ret = cap.isOpened()

返回值:

ret :bool类型,成功则为True,否则为False。

读取视频帧

ret, frame = video.read()

返回值:

ret:bool类型,判断是否读取到帧,成功为True,否则为False。

frame:读取到的帧

获取视频特征

cap.get(propId)

参数:

propId : 0 到 18 之间的整数。每一个数代表视频的一个属性,在这里仅举几个常用的参数:

int 属性 propld
0 视频文件的当前位置(毫秒) CV_CAP_PROP_POS_FRAMES
1 下一步要解码/捕获的帧的基于0的索引 CV_CAP_PROP_POS_AVI_RATIO
3 视频流中帧的宽度 CV_CAP_PROP_FRAME_HEIGHT
4 视频流中帧的高度 CV_CAP_PROP_FPS
5 帧率 CV_CAP_PROP_FOURCC

设置视频参数

cap.set(propId, value)

参数:

propId : 0 到 18 之间的整数

value:设置的新值

声明编码器

fourcc = cv2.VideoWriter_fourcc('M', 'P', '4', 'V' ) , FourCC 是用于指定视频解码器的 4 字节代码。

参数 说明
'M', 'P', '4', 'V' MPEG-4编码类型,文件扩展名为 .mp4
'X','2','6','4' MPEG-4编码类型,文件扩展名为.mp4
'P','I','M','I' MPEG-1编码类型,文件扩展名为.avi
'X', 'V', 'I', 'D' MPEG-4编码类型,文件扩展名为.avi
'I', '4', '2', '0' YUV编码类型,文件扩展名为avi

保存视频

out = cv2.VideoWriter(filename,fourcc, fps, frameSize)

参数:

filename:视频保存的位置

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

fps:帧率

frameSize:帧大小

释放视频对象

capture.release(),释放视频对象是必要的清理操作

视频处理基本操作的代码实现:

复制代码
import cv2

cap = cv2.VideoCapture('img/1.mp4')

while(cap.isOpened()):
    ret, frame = cap.read()
    if ret == True:
        cv2.imshow('frame', frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break

实现效果如下图:

相关推荐
蔗理苦3 小时前
2025-04-05 吴恩达机器学习5——逻辑回归(2):过拟合与正则化
人工智能·python·机器学习·逻辑回归
程序猿阿伟3 小时前
《SQL赋能人工智能:解锁特征工程的隐秘力量》
数据库·人工智能·sql
啥都鼓捣的小yao4 小时前
Python解决“数字插入”问题
python·算法
csssnxy4 小时前
叁仟数智指路机器人是否支持远程监控和管理?
大数据·人工智能
csdn_aspnet4 小时前
如何在 Linux 上安装 Python
linux·运维·python
车斗4 小时前
win10 笔记本电脑安装 pytorch+cuda+gpu 大模型开发环境过程记录
人工智能·pytorch·电脑
KY_chenzhao4 小时前
数据驱动防灾:AI 大模型在地质灾害应急决策中的关键作用。基于DeepSeek/ChatGPT的AI智能体开发
人工智能·chatgpt·智能体·deepseek·本地化部署
大多_C4 小时前
量化方法分类
人工智能·分类·数据挖掘
jimin_callon4 小时前
VBA第三十八期 VBA自贡分把表格图表生成PPT
开发语言·python·powerpoint·编程·vba·deepseek
郭涤生4 小时前
第三章:事务处理_《凤凰架构:构建可靠的大型分布式系统》
笔记·架构·系统架构