python_Opencv_读取视频

python

目标
  • 学会读取视频文件,显示视频,保存视频文件
  • 学会从摄像头获取并显示视频
  • 你将会学习到这些函数:cv2.VideoCapture(),cv2.VideoWrite()
用摄像头捕获视频

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

上代码:

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

2

3 import numpy as np

4 import cv2

5

6 cap = cv2.VideoCapture(0) # 创建一个VideoCapture对象

7 while(True):

8

9 ret, frame = cap.read() # 一帧一帧读取视频

10 gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)# 对每一帧做处理,设置为灰度图

11 cv2.imshow('frame',gray) # 显示结果

12 if cv2.waitKey(1) & 0xFF == ord('q'): # 按q停止

13 break

14

15 cap.release() # 释放cap,销毁窗口

16 cv2.destroyAllWindows()

View Code

  • 运行一下可以看到摄像头打开,并且显示了灰度图,按q退出

读取视频文件:

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

2

3 import numpy as np

4 import cv2

5

6 cap = cv2.VideoCapture(0)

7

8 # Define the codec and create VideoWriter object

9 fourcc = cv2.VideoWriter_fourcc(*'XVID')

10 out = cv2.VideoWriter('test.avi',fourcc, 20.0, (640,480))

11

12 while(cap.isOpened()):

13 ret, frame = cap.read()

14 if ret==True:

15 frame = cv2.flip(frame,0)

16

17 # write the flipped frame

18 out.write(frame)

19

20 cv2.imshow('frame',frame)

21 if cv2.waitKey(1) & 0xFF == ord('q'):

22 break

23 else:

24 break

25 # Release everything if job is finished

26 cap.release()

27 out.release()

28 cv2.destroyAllWindows()

View Code

  • 本例子中的演示会比较麻烦。需要安装合适版本的ffmpeg 或者gstreamer,才能正确运行改程序

以上是 python_Opencv_读取视频 的全部内容, 来源链接: utcz.com/z/388261.html

回到顶部