本文主要说明视频的简单使用。
摄像头获取
import cv2
cap=cv2.VideoCapture(0)#0表示设备号
while True:
ret,frame=cap.read();#ret为bool型的是否正确读取,frame为每一帧,可以理解为一张图片
cv2.imshow('frame',frame)
if(27==cv2.waitKey(50) or ret==False):#ecs退出,50ms刷新一次
#OpenCV默认情况下只处理按键
break
cap.release()
cv2.destroyAllWindows()
效果如下图。
视频播放
import cv2
cap=cv2.VideoCapture("D:/迅雷下载/暮光之城BD国英双语双字[电影天堂www.dy2018.com].mkv")#视频文件位置
while(cap.isOpened()):
ret, frame = cap.read()
cv2.imshow('frame',frame)
if 27==cv2.waitKey(25):#25ms一刷新
break
cap.release()
cv2.destroyAllWindows()
(摄像头)视频保存
import cv2
cap=cv2.VideoCapture(0)#默认大小640x480
fps=20
out=cv2.VideoWriter('../../source/out.avi',cv2.VideoWriter_fourcc(*'XVID'),fps,(640,480))
#视频名, 格式, 码率(fps), 帧的尺寸
#http://www.fourcc.org/codecs.php
while(cap.isOpened()):
ret, frame = cap.read()
frame=cv2.flip(frame,1)#1:水平翻转,0:竖直,-1:水平且竖直
out.write(frame)
cv2.imshow('frame',frame)
if 27==cv2.waitKey(1000/fps):#esc退出
break
cap.release()
out.release()
cv2.destroyAllWindows()