1 代码
打开笔记本内置摄像头
import cv2
cap = cv2.VideoCapture(0) # VideoCapture()中参数是0,表示打开笔记本的内置摄像头
cv2.namedWindow('camera')
while cap.isOpened():
ret, frame = cap.read()
if ret:
cv2.imshow('camera', frame)
cv2.waitKey(1)
打开外接usb摄像头
import cv2
cap = cv2.VideoCapture(1) # VideoCapture()中参数是1,表示打开外接usb摄像头
cv2.namedWindow('camera')
while cap.isOpened():
ret, frame = cap.read()
if ret:
cv2.imshow('camera', frame)
cv2.waitKey(1)
2 注释
cap = cv2.VideoCapture(0)
VideoCapture()中参数是0,表示打开笔记本的内置摄像头;当参数为1时,表示打开外接usb摄像头摄像头。
cap.isOpened():
若返回True表示摄像头打开成功,若返回False表示摄像头打开失败。
ret,frame = cap.read()
ret,frame是获cap.read()方法的两个返回值。其中ret是布尔值,如果读取帧是正确的则返回True,如果文件读取到结尾,它的返回值就为False。frame就是每一帧的图像,是个三维矩阵。
waitKey(0)
只显示当前帧,相当于视频暂停。如果没有这段代码,图片将一闪而过。
cv2.waitKey(1) # 参数是1,表示延时1ms切换到下一帧图像
cv2.waitKey(1000) # 会因为延时过久而卡顿感觉到卡顿。
cv2.waitKey(0) # 只显示当前帧图像,相当于视频暂停。