OpenCV I_05视频基础

来源:互联网 发布:妖师鲲鹏传txt下载知轩 编辑:程序博客网 时间:2024/05/21 19:35

目标

• 学会读取视频文件,显示视频,保存视频文件

• 学会从摄像头获取并显示视频

• 你将会学习到这些函数:cv2.VideoCapture(),cv2.VideoWrite()

5.1 用摄像头捕获视频

我们经常需要使用摄像头捕获实时图像。OpenCV 为这中应用提供了一个非常简单的接口。让我们使用摄像头来捕获一段视频,并把它转换成灰度视频显示出来。从这个简单的任务开始吧。

为了获取视频,你应该创建一个 VideoCapture 对象。他的参数可以是设备的索引号,或者是一个视频文件。设备索引号就是在指定要使用的摄像头。一般的笔记本电脑都有内置摄像头。所以参数就是 0。你可以通过设置成 1 或者其他的来选择别的摄像头。之后,你就可以一帧一帧的捕获视频了。但是最后,别忘了停止捕获视频。


首先,导入opencv库 cv2,numpy数组,还有时间停顿的time

import cv2import numpy as np import time


捕获视频


为了获取视频,你应该创建一个 VideoCapture 对象。他的参数可以是设备的索引号,或者是一个视频文件。设备索引号就是在指定要使用的摄像头。一般的笔记本电脑都有内置摄像头。所以参数就是 0。你可以通过设置成 1 或者其他的来选择别的摄像头。之后,你就可以一帧一帧的捕获视频了。但是最后,别忘了停止捕获视频。

cap=cv2.VideoCapture(0)while(True):ret,frame=cap.read()# frame为视频的帧 可以对每一帧进行处理cv2.imshow('Video',frame)if cv2.waitKey(1) == ord('q'):breakcap.release()cv2.destroyAllWindows()

录像写入视频

注意,视频格式 *‘XVID’可以为:

I420对应为未压缩的YUK文件.avi. 

PIM1对应MPEG-1文件.avi

XVID对应MPEG-4文件.avi

THEO对应.ogv

FLVI对应flash视频.flv

# 读取摄像头到cap对象cap = cv2.VideoCapture(0)# 格式fourcc = cv2.VideoWriter_fourcc(*'XVID') # .flv *'FLV1'# 视频框架out = cv2.VideoWriter('output.avi',fourcc, 20, (640,480))   #视频  格式  fps  sizewhile(cap.isOpened()):ret, frame = cap.read()# cap 对象读取出帧frameif ret==True:# frame帧写入到视频对象outout.write(frame)cv2.imshow('frame',frame)if cv2.waitKey(1) & 0xFF == ord('q'):breakelse:breakcap.release()out.release()cv2.destroyAllWindows()

读取写入视频

# 读取写入视频cap = cv2.VideoCapture('PIC/001.mp4')fps = cap.get(cv2.CAP_PROP_FPS)size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)),int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))fourcc = cv2.VideoWriter_fourcc(*'PIM1')OutVideo = cv2.VideoWriter('PIC/002.avi',fourcc,fps,size)ret,frame = cap.read()while ret:OutVideo.write(frame)ret,frame = cap.read()


总结:

'''函数:cv2.VideoCapture(),cv2.VideoWrite()'''import cv2import numpy as np import time# 捕获视频cap=cv2.VideoCapture(0)while(True):ret,frame=cap.read()# frame为视频的帧 可以对每一帧进行处理cv2.imshow('Video',frame)if cv2.waitKey(1) == ord('q'):breakcap.release()cv2.destroyAllWindows()# 录像写入视频# 读取摄像头到cap对象cap = cv2.VideoCapture(0)# 格式fourcc = cv2.VideoWriter_fourcc(*'XVID') # .flv *'FLV1'# 视频框架out = cv2.VideoWriter('output.avi',fourcc, 20, (640,480))   #视频  格式  fps  sizewhile(cap.isOpened()):ret, frame = cap.read()# cap 对象读取出帧frameif ret==True:# frame帧写入到视频对象outout.write(frame)cv2.imshow('frame',frame)if cv2.waitKey(1) & 0xFF == ord('q'):breakelse:breakcap.release()out.release()cv2.destroyAllWindows()# 读取写入视频cap = cv2.VideoCapture('PIC/001.mp4')fps = cap.get(cv2.CAP_PROP_FPS)size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)),int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))fourcc = cv2.VideoWriter_fourcc(*'PIM1')OutVideo = cv2.VideoWriter('PIC/002.avi',fourcc,fps,size)ret,frame = cap.read()while ret:OutVideo.write(frame)ret,frame = cap.read()


0 0
原创粉丝点击