opencv(cv2)打开摄像头

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


原文出处:/show_1EF5Q8DdD9tE.html