利用Opencv从摄像头采集视频
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import cv2 #创建窗口 cv2.namedWindow('video', cv2.WINDOW_AUTOSIZE) #获取视频设备 cap = cv2.VideoCapture(0) while True: ret, frame = cap.read() # 将视频帧在窗口中显示 # 视频帧frame也是mat类型 cv2.imshow('video', frame) # 等待键盘事件,如果为q,则退出 # waitkey是以毫秒为单位 key = cv2.waitKey(1) if(key & 0xFF == ord('q')): break cap.release() cv2.destroyAllWindows()
视频采集(使用三个API就可以实现对视频数据的采集)
- VideoCapture()
- cap.read()
- cap.release()
1、VideoCapture()实际是一个虚拟的采集器,当我们调用它的时候,告诉它一个设备号,一般设备号是从0开始的,一般我们只要添0就可以打开摄像头,打开摄像头后就可以通过cap.read()将视频一帧一帧地读取出来。然后用cap.release()把cap这个资源给释放掉。
2、一般的动画视频是一秒钟24帧。
3、![](https://img2022.cnblogs.com/blog/2921686/202210/2921686-20221011171139860-1949649858.png)
![](https://img2022.cnblogs.com/blog/2921686/202210/2921686-20221011171139860-1949649858.png)
VideoCapture()第二个参数是api,在不同平台下使用不同的api,比如Linux、windows
4、cap.read() 函数
‘
5、出现特殊异常:看看你的电脑有没有摄像头,没有摄像头也是不行的。