要使用摄像头,需要使用cv2.VideoCapture(0)创建VideoCapture对象,参数0指的是摄像头的编号,如果你电脑上有两个摄像头的话,访问第2个摄像头就可以传入1,依此类推。
# 打开摄像头并灰度化显示
import cv2 as cv
# 0表示摄像头的编号
capture = cv.VideoCapture(0)
while(True):
# 获取一帧
# 第1个参数ret(return value缩写)是一个布尔值,表示当前这一帧是否获取正确
ret, frame = capture.read()
# 将这帧转换为灰度图
gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
cv.imshow('frame', gray)
if cv.waitKey(1) == ord('q'):
break
摄像头捕捉到的图像:
获取并修改摄像头的属性值
通过capture.get(propId)可以获取摄像头的一些属性,比如捕获的分辨率,亮度和对比度等。propId是从0~18的数字,代表不同的属性。要修改摄像头的属性值,可以使用capture.set(propId,value)。比如说,我们在while之前添加下面的代码,可以捕获相对于上面2倍分辨率的视频。
# 获取捕获的分辨率
# propId可以直接写数字,也可以用OpenCV的符号表示
width, he