OpenCV学习笔记2-视频

来源:互联网 发布:手机淘宝店铺装修 编辑:程序博客网 时间:2024/06/05 15:37

1.从摄像头读取视频

函数:cv2.VideoCapture()


#用电脑摄像头捕获一段视频并显示import numpy as npimport cv2cv2.namedWindow('frame', cv2.WINDOW_NORMAL)cap = cv2.VideoCapture(0)while(True):    ret, frame = cap.read()                 #捕捉一帧图像    cv2.imshow('frame',frame)               #显示一帧图像    if cv2.waitKey(1) & 0xFF == ord('q'):        break                               #如果输入q就停止捕捉cap.release()                               #释放捕捉cv2.destroyAllWindows()                     #关闭窗口#cap.read() 返回一个布尔值。如果帧读取的是正确的,就是True。如果是读取视频文件,最后可以通过检查此函数的返回值来查看视频文件是否已经到了结尾。

2.保存视频文件

cv2.VideoWriter([filename, fourcc, fps, frameSize[, isColor]]) -> 对象

(1) filename:文件名;
(2) fourcc:4字节的格式码,确定视频编码格式。编码列表可从http://fourcc.org查到;
(3) fps:每秒的视频帧数;
(4) frameSize:视频的长和宽;
(5) isColor:布尔变量(True:彩色,False:黑白)

返回值是一个ViedoWriter的对象


#从摄像头中捕获视频,沿水平方向旋转每一帧并保存import numpy as npimport cv2cap = cv2.VideoCapture(0)fourcc = cv2.VideoWriter_fourcc(*'XVID')out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640,480))while(cap.isOpened()):    ret, frame = cap.read()    if ret==True:        frame = cv2.flip(frame,0)  #水平旋转180°        out.write(frame)        cv2.imshow('frame', frame)        if cv2.waitKey(1) & 0xFF == ord('q'):            break    else:        breakcap.release()out.release()cv2.destroyAllWindows()