opencv(cv2)打开摄像头 作者:马育民 • 2020-04-27 20:09 • 阅读:10044 ``` 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](https://docs.opencv.org/3.3.0/d4/d15/group__videoio__flags__base.html#gaeb8dd9c89c10a5c63c139bf7c4f5704d "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 原文出处:http://malaoshi.top/show_1EF5Q8DdD9tE.html