OpenCV-Python learning-2.视频、相机简单处理

177 阅读1分钟

本文主要说明视频的简单使用。

摄像头获取

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()

本节jupyter notebook地址