import cv2
capture = cv2.VideoCapture(0)
while(True):
# 获取一帧
ret, frame = capture.read()
cv2.imshow('frame', frame)
if cv2.waitKey(1) == ord('q'):
break
cv2.VideoCapture(0)
使用cv2.VideoCapture(0)创建VideoCapture对象
参数:
- 0指的是摄像头的编号。
如果有两个摄像头,访问第2个摄像头传入1
capture.read()
返回值
- 第1个参数ret是一个布尔值,表示当前这一帧是否获取正确
- 第2个参数这一帧的numpy矩阵
capture .get(propId)
可以获取摄像头的一些属性,比如捕获的分辨率,亮度和对比度等。
参数
- propId是从0~18的数字,代表不同的属性,完整的属性列表可以参考:Property Identifier。
也可以使用cap.set(propId,value)来修改属性值。
比如说,我们在while之前添加下面的代码:
# 获取捕获的分辨率
# propId可以直接写数字,也可以用OpenCV的符号表示
width, height = capture.get(3), capture.get(4)
print(width, height)
# 以原分辨率的一倍来捕获
capture.set(cv2.CAP_PROP_FRAME_WIDTH, width * 2)
capture.set(cv2.CAP_PROP_FRAME_HEIGHT, height * 2)
某些摄像头设定分辨率等参数时会无效,因为它有固定的分辨率大小
感谢:
https://www.jianshu.com/p/2b79012c0228