Python使用CV2库捕获、播放和保存摄像头视频
Python、CV2库、捕获、播放
要使用Python的CV2库捕获、播放和保存摄像头视频,可以按以下步骤进行操作:
1. 导入cv2库并创建VideoCapture对象来打开摄像头:
```
import cv2
cap = cv2.VideoCapture(0)
```
其中参数`0`表示打开默认的摄像头设备。
2. 创建VideoWriter对象以保存视频:
```
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640, 480))
```
在此示例中,使用XVID编解码器来创建VideoWriter对象。`output.avi`是输出视频文件的名称,`20.0`是视频的帧率(每秒钟多少帧),`(640, 480)`是视频帧的大小。
3. 在while循环中读取视频帧,对其进行处理,将其写入输出视频并显示在窗口上:
```
while(cap.isOpened()):
ret, frame = cap.read()
if ret==True:
out.write(frame)
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
```
在此示例中,`cap.read()`用于读取视频帧,`out.write(frame)`用于将视频帧写入输出视频,`cv2.imshow()`用于显示视频帧。当按下键盘上的“q”键时,退出循环。
4. 释放资源并关闭窗口:
```
cap.release()
out.release()
cv2.destroyAllWindows()
```
最后,完整代码如下:
```python
import cv2
cap = cv2.VideoCapture(0)
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640, 480))
while(cap.isOpened()):
ret, frame = cap.read()
if ret==True:
out.write(frame)
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()
```
[[2](