OpenCV从相机中读取视频
从相机中读取视频:许多情况下需要用摄像机捕捉实时画面,这里用笔记本电脑内置的摄像头捕捉视频,需要创建一个VideoCapture对象,它的参数可以是设备索引或者视频文件的名称,设备索引就是指定哪个摄像头的数字,传递0选择第一个摄像头。从视频中逐帧捕获,在最后需要释放俘虏。
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
if not cap.isOpened():
print('Cannot open camera!')
exit()
while True:
#逐帧捕获
ret,frame = cap.read()
#如果正确读取一帧,ret是True。可以通过检查此返回值,来检查视频的结尾
if not ret:
print('Cannot receive frame!')
break
gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
#显示灰度图像
cv2.imshow('frame',gray)
if cv2.waitKey(1) == ord('q'):
break
#完成所有操作后,释放捕获器,销毁所有窗口
cap.release()
cv2.destroyAllWindows()
'''
还可以使用cap.get(pro)方法访问该视频的一些功能,其中pro是0—18之间的数字,每个数字表示视频的属性(如果适用于该视频),并且
可以显示完整的详细信息,其中一些值可以用cap.set(pro,value)进行修改,value是想要的新值。
例如:通过cap.get(cv2.CAP_PROP_FRAME_WIDTH)和cap.get(cv2.CAP_PROP_FRAME_HEIGHT)检查框架的宽度和高度,默认情况下的分辨率是640*480
如果需要修改为320*240,则ret = cap.set(cv2.CAP_PROP_FRAME_WIDTH,320) and ret = cap.set(cv2.CAP_PROP_FRAME_HEIGHT,240)
'''