python同时打开两个摄像头并显示和保存为视频文件
时间: 2024-03-11 10:49:24 浏览: 57
Python+OpenCV采集本地摄像头的视频
可以使用OpenCV库实现同时打开两个摄像头并将视频保存为文件。下面是示例代码:
```python
import cv2
# 设置视频编码器和帧率
fourcc = cv2.VideoWriter_fourcc(*'XVID')
fps = 30.0
# 打开第一个摄像头
cap1 = cv2.VideoCapture(0)
# 获取第一个摄像头的宽度和高度
width1 = int(cap1.get(cv2.CAP_PROP_FRAME_WIDTH))
height1 = int(cap1.get(cv2.CAP_PROP_FRAME_HEIGHT))
# 创建第一个摄像头的视频写入器
out1 = cv2.VideoWriter('camera1.avi', fourcc, fps, (width1, height1))
# 打开第二个摄像头
cap2 = cv2.VideoCapture(1)
# 获取第二个摄像头的宽度和高度
width2 = int(cap2.get(cv2.CAP_PROP_FRAME_WIDTH))
height2 = int(cap2.get(cv2.CAP_PROP_FRAME_HEIGHT))
# 创建第二个摄像头的视频写入器
out2 = cv2.VideoWriter('camera2.avi', fourcc, fps, (width2, height2))
while True:
# 读取第一个摄像头的帧
ret1, frame1 = cap1.read()
# 读取第二个摄像头的帧
ret2, frame2 = cap2.read()
# 将第一个摄像头的帧写入视频
out1.write(frame1)
# 将第二个摄像头的帧写入视频
out2.write(frame2)
# 显示第一个摄像头的帧
cv2.imshow('Camera 1', frame1)
# 显示第二个摄像头的帧
cv2.imshow('Camera 2', frame2)
# 按下 q 键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放摄像头、释放视频写入器并关闭窗口
cap1.release()
cap2.release()
out1.release()
out2.release()
cv2.destroyAllWindows()
```
这段代码和之前的代码类似,不同之处在于创建了两个视频写入器,并将每个摄像头的帧写入到对应的视频文件中。按下 q 键可退出循环并关闭窗口。
阅读全文