OpenCV自学笔记8:读取视频文件

读取视频文件

OpenCV提供了VideoCapture类来支持视频读/写。VideoCapture类通过read()函数来获取每一帧,即一个RGB图像。

本文用到的视频traffic.flv,来源于原作者Github,地址为:
https://github.com/techfort/pycv/tree/master/chapter8/surveillance_demo

——————————————–

OpenCV读取视频并显示

# -*- coding:utf-8 -*-

import cv2

cap = cv2.VideoCapture('video/traffic.flv')

while True:
    ret, frame = cap.read() # 读
    cv2.imshow("capture", frame) # 显示
    if cv2.waitKey(100) & 0xFF == ord('q'): #键盘按键q,退出
        break

视频读取的部分截屏如下:

这里写图片描述

——————————————–

OpenCV写入视频

# -*- coding:utf-8 -*-

import cv2

# Step1. 调用VideoCapture构造器
cap = cv2.VideoCapture('video/traffic.flv')
fps = cap.get(cv2.CAP_PROP_FPS)
size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)), int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))

# Step2. 改用YUV颜色编码 写入到另一个视频文件中
# 注意,视频文件的后缀改为.avi,由于I420采用YUV颜色编码,只支持.avi格式
writer = cv2.VideoWriter('video/trafficOutput.avi', cv2.VideoWriter_fourcc('I', '4', '2', '0'), fps, size)
ret, frame = cap.read()
while ret:
    writer.write(frame)
    ret, frame = cap.read()


# Step3.读取新的文件
cap = cv2.VideoCapture('video/trafficOutput.avi')
while True:
    ret, frame = cap.read() # 读
    cv2.imshow("capture", frame) # 显示
    if cv2.waitKey(100) & 0xFF == ord('q'): #键盘按键q,退出
        break

运行程序后,会在生成一个新的文件:trafficOutput.avi

这里写图片描述

今天就学到这里啦~~

这里写图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值