Opencv+VS2010同时打开三路摄像头源代码及各类问题分析

来源:互联网 发布:4g卡显示2g网络能用吗 编辑:程序博客网 时间:2024/05/21 09:16

本文使用Opencv2.4.9和VS2010进行的打开多路摄像头:

在opencv2.1版本及之前版本支持最多同时打开2个摄像头,在之后的版本由于opencv对DirectShow进行了封装,可以同时打开多个摄像头。下面是同时打开三路摄像头的例子;

#include "stdafx.h"
#include <opencv2/opencv.hpp>
using namespace cv;

int _tmain(int argc, _TCHAR* argv[])
{
VideoCapture capture0(2);
VideoCapture capture1(1);
VideoCapture capture2(0);
if (!capture0.isOpened()||!capture1.isOpened()||!capture2.isOpened())
{
printf("error");
return -1;
}
Mat frame0,frame1,frame2;
while (1)
{
capture0>>frame0;
capture1>>frame1;
capture2>>frame2;
imshow("播放视频0",frame0);
imshow("播放视频1",frame1);
imshow("播放视频2",frame2);

waitKey(30);
}

return 0;
}


关于使用opencv同时打开多路摄像头的注意事项和相关问题说明如下:

(1)在获取摄像头设备的时候必须按照倒序的顺序进行获取,因为opencv里面获取的摄像头设备序号是按照倒序的顺序排列的。

(2)如果安装有360安全卫视需要将360安全卫视关闭或者运行摄像头采集。

(3)请勿使用USB hub进行电脑USB口的扩展来进行对电脑多个摄像头的实验,因为USB hub受功率和数据传输的限制只能带动一个摄像头(好的USB hub最多带动两个)

(4)一台电脑最多同时带动三个摄像头,虽然一台电脑有多个USB接口但是只有一个USB主控器,可能会受到USB主控器对于USB数据传输的限制(如果是USB3.0的主控器可能会同时带动多个摄像头),若需同时带动多个摄像头可以通过安装PCI转USB卡或PCIE转USB卡,使USB摄像头数据传输直接通过PCI进行传输。


转载请标明出处:http://blog.csdn.net/u011028345/article/details/53384927

1 0
原创粉丝点击