vs+opencv调用同一usb口的两路摄像头 5C

买了一个双目摄像头,只有一个usb口那种,支持两路设备识别和输出,我单独调用任何一路都能输出图像,但是同时调用两路显示时,第二路总是打不开,有没有哪个大佬遇到过相似的问题?怎么解决的呢?
附上我的代码:

#include

#include

using namespace cv;
using namespace std;
int main()
{
//【1】从摄像头读入视频

VideoCapture capture(2);
if(!capture.isOpened())

{cout<< "cannot open the camera.";cin.get();return -1;}
VideoCapture capture1(1);
if (!capture1.isOpened())
{
cout << "cannot open the camera1."; cin.get(); return -1;
}
while (1)
{
Mat frame; //定义一个Mat变量,用于存储每一帧的图像

Mat frame1; //定义一个Mat变量,用于存储每一帧的图像

    capture >> frame;  //读取当前帧   


    if (frame.empty())
    {
        printf("--(!) No captured frame -- Break!");
        //break;                  
    }
    else
    {
        imshow("原图", frame); //显示当前帧          
    }
capture1 >> frame1;  //读取当前帧   
    if (frame1.empty())
    {
        printf("--(!) No captured frame1 -- Break\r\n");
        //break;                  
    }
    else
    {
        imshow("原图1", frame1); //显示当前帧        
    }

    waitKey(30); //延时30ms  
}
return 0;

}

2个回答

楼主这个问题问得让人费解啊
你说的设备是一个双目摄像头,一个USB输出,那这样的情况数据肯定是串行出来的,你能够单独调出每一路的视频截图,这说明这个设备是正常工作的。
那么现在问题来了,你希望同时看到两路视频,这两路为什么不能采用分别调用的方式来解决呢?
从你的代码看,前面的定义mat做完,后面的catpture就有了一个先后之分,你声明的时候干脆一起声明啊,缩进也不一样,这个结构体不知道能不能正常实现你想表达的意思。

a776772760
工程小白 谢谢您的回复,我不太明白您的意思,我做了后文修改,还是不行啊
大约 2 年之前 回复

我不太明白您的意思,我这样改了只有也还是不行啊:
int main()
{
VideoCapture capture(2),capture1(1);
if (!capture.isOpened())
{ cout << "cannot open the camera."; cin.get(); return -1; }
if (!capture1.isOpened())
{ cout << "cannot open the camera1."; cin.get(); return -1;}
while (1)
{
Mat frame,frame1;
capture >> frame;
if (frame.empty())
{
printf("--(!) No captured frame -- Break!");

}
else
{
imshow("原图", frame);

}
capture1 >> frame1;
if (frame1.empty())
{
printf("--(!) No captured frame1 -- Break\r\n");

}
else
{
imshow("原图1", frame1);
}
waitKey(30);
}
return 0;
}图片说明

qq_28482225
广陵俊 同是这个问题,将两个摄像头的分辨率调成 640X360,用amcap可以同时打开,但是用opencv 只能每次单独打开一个(格式设置的是MJPG),不能同时打开,若有大佬解决还望不吝赐教,感激不尽!!!
6 个月之前 回复
weixin_43011065
weixin_43011065 回复凤歌笑楚狂: 我改了也不行
大约一年之前 回复
weixin_42327053
凤歌笑楚狂 并不知道怎么回事
一年多之前 回复
weixin_42327053
凤歌笑楚狂 回复weixin_41813682: 把左右相机分辨率调小才能都显示(320,240)
一年多之前 回复
weixin_41813682
睡个没有明天的觉 老哥,请问你这个问题解决了吗? 我买的也是这家的双目摄像头,现在也是只打的开左边的,我用labview就可以两个都打开,可是用OpenCV只能打开一个。如果您知道有什么解决办法的话还请赐教,谢谢了!
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐