opencv调用摄像头采集图像

Opencv集成了大量视频和图像处理的方法,进行计算机视觉领域进行相关研究中,经常要调用摄像头采集图像数据,一般方法如下:

在这里插入图片描述
1、cap = cv2.VideoCapture(0)
VideoCapture()中参数是0,表示打开笔记本的内置摄像头,参数是视频文件路径则打开视频,如cap = cv2.VideoCapture("…/test.avi")
2、ret,frame = cap.read()
cap.read()按帧读取视频,ret,frame是获cap.read()方法的两个返回值。其中ret是布尔值,如果读取帧是正确的则返回True,如果文件读取到结尾,它的返回值就为False。frame就是每一帧的图像,是个三维矩阵,类型np.array。 3、cv2.waitKey(1),waitKey()方法本身表示等待键盘输入, 参数是1,表示延时1ms切换到下一帧图像,对于视频而言; 参数为0,如cv2.waitKey(0)只显示当前帧图像,相当于视频暂停,; 参数过大如cv2.waitKey(1000),会因为延时过久而卡顿感觉到卡顿。 c得到的是键盘输入的ASCII码,esc键对应的ASCII码是27,即当按esc键是if条件句成立,用下面方式直接确定是输入的哪个键: if cv2 . waitKey(1) & 0xFF == ord (‘q’): 4、调用release()释放摄像头,调用destroyAllWindows()关闭所有图像窗口。