视频处理
本章任务
- 捕获摄像头文件
- 播放视频文件
- 保存视频文件
1. VideoCapture类介绍
1.1 类函数介绍
捕获对象 = cv2.VideoCapture("摄像头ID")
程序中参数介绍:
- ID = -1时,表示随机取一个摄像头
- ID = 0 时,表示获取第一个摄像头
- ID = 1 时,表示获取第二个摄像头
若只有一个摄像头,ID为“0”或者“-1”都可以
要求:使用cv2.VideoCapture类捕获摄像头
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
while(cap.isOpened()):
ret, frame = cap.read()
cv2.imshow('frame', frame)
c = cv2.waitKey(1)
if c==27: # ESC键
break
cap.release()
cv2.destroyAllWindows()
1.2 播放视频
程序中参数介绍:
要求:播放视频
import numpy as np
import cv2
cap = cv2.VideoCapture('news1.avi')
while(cap.isOpened()):
ret, frame = cap.read()
cv2.imshow('frame', frame)
c = cv2.waitKey(1)
if c==27:
break
cap.release()
cv2.destroyAllWindows()
1.3 保存视频
程序中参数介绍:
要求:保存视频
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
fourcc = cv2.VideoWriter_fourcc('I', '4,','2', '0')
out = cv2.VideoWriter('output.avi',fourcc,20,(640,480))
while(cap.isOpened()):
ret, frame = cap.read()
if ret==True:
out.write(frame)
cv2.imshow('frame', frame)
if cv2.waitKey(1) == 27:
break
else :
break
cap.release()
out.release()
cv2.destroyAllWindows()
1.4 视频操作基础
要求:提取视频帧
import numpy as np
import cv2
cap = cv2.VideoCapture('output.avi')
while(cap.isOpened):
ret, frame = cap.read()
frame = cv2.Canny(frame, 100, 200)
cv2.imshow('frame', frame)
c = cv2.waitKey(30)
if c==27:
break
cap.release()
cv2.destroyWindows()