OpenCV同时打开3个摄像头并保存为视频

#include <opencv2/opencv.hpp>
#include<iostream>

using namespace cv;
using namespace std;

int main()
{

	//initialize and allocate memory to load the video stream from camera
	VideoCapture camera1(1 + cv::CAP_DSHOW);
	/*camera1.set(CAP_PROP_FRAME_WIDTH, 320);
	camera1.set(CAP_PROP_FRAME_HEIGHT, 240);*/

	VideoCapture camera2(0 + cv::CAP_DSHOW);
	//camera2.set(CAP_PROP_FRAME_WIDTH, 320);
	//camera2.set(CAP_PROP_FRAME_HEIGHT, 240);

	VideoCapture camera3(3 + cv::CAP_DSHOW);
	if (!camera1.isOpened())
	{
		cout << "ERROR!camera 1 open failed" << endl;
		return 1;
	}
	if (!camera2.isOpened())
	{
		cout << "ERROR!camera 3 open failed" << endl;
		return 1;
	}
	if (!camera3.isOpened())
	{
		cout << "ERROR!camera 3 open failed" << endl;
		return 1;
	}
	//grab and retrieve each frames of the video sequentially
	Mat frame1;
	camera1 >> frame1;
	if (frame1.empty()) {
		cerr &
可以使用OpenCV库实现同时打开两个摄像头视频保存为文件。下面是示例代码: ```python import cv2 # 设置视频编码器和帧率 fourcc = cv2.VideoWriter_fourcc(*&#39;XVID&#39;) 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(&#39;camera1.avi&#39;, 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(&#39;camera2.avi&#39;, fourcc, fps, (width2, height2)) while True: # 读取第一个摄像头的帧 ret1, frame1 = cap1.read() # 读取第二个摄像头的帧 ret2, frame2 = cap2.read() # 将第一个摄像头的帧写入视频 out1.write(frame1) # 将第二个摄像头的帧写入视频 out2.write(frame2) # 显示第一个摄像头的帧 cv2.imshow(&#39;Camera 1&#39;, frame1) # 显示第二个摄像头的帧 cv2.imshow(&#39;Camera 2&#39;, frame2) # 按下 q 键退出循环 if cv2.waitKey(1) & 0xFF == ord(&#39;q&#39;): break # 释放摄像头、释放视频写入器关闭窗口 cap1.release() cap2.release() out1.release() out2.release() cv2.destroyAllWindows() ``` 这段代码和之前的代码类似,不同之处在于创建了两个视频写入器,将每个摄像头的帧写入到对应的视频文件中。按下 q 键可退出循环关闭窗口。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值