繁体   English   中英

我无法使用opencv同时打开2个gige(basler)相机

[英]I can't open 2 gige(basler) cameras at the same time with opencv

我在win10 opencv3.4上使用了两个GigE(basler aca2500-14gm)摄像机,将两个摄像机的电线连接到了交换机,然后将其连接到我的计算机。但是我无法打开摄像机并获得同一帧。我的代码:`

int main()
{
PylonInitialize();
VideoCapture cap(0);
VideoCapture cap1(2);

if (!cap.isOpened())
{
    cout << "Camera 1 unsuccessfully opened" << endl;
}
if (!cap1.isOpened())
{
    cout << "Camera 2 unsuccessfully opened" << endl;
}

bool stop = false;
while (!stop)
{

    Mat frame;
    Mat frame1;


    cap >> frame;
    cap1 >> frame1;

    if (frame.empty() || frame1.empty())
    {
        break;
    }


    imshow("Open the camera 1", frame);
    imshow("Open the camera 2", frame1);

    if (waitKey(100) >= 0)
    {
        PylonTerminate();//
        stop = true;
    }
}

}`

顺便说一句,当我尝试运行basler SDK示例:Grab_MultipleCameras.cpp时,我可以打开相机,但窗口中的图像是灰色的。

有没有人帮我解决这个问题? 提前致谢。

当您运行此basler SDK示例时,可能会发生第二个摄像机仍然无法打开,而只是向您显示带有默认颜色(灰色)的窗口的情况。

另一可能的情况是您传递了错误的设备ID以使VideoCapture正常工作,请参阅此OpenCv VideoCap文档 另外,据我所知,如果您使用的是GigE摄像机,最好将每个摄像机的IP地址传递给VideoCapture

因此,我只想尝试在您的代码中改变一种想法:

VideoCapture cap(0);
VideoCapture cap1(2);

至:

VideoCapture cap(/*camera Ip Address*/);  //or try with different IDs
VideoCapture cap1(/*camera Ip Address*/);

还要看看这个答案VideoCapture和GigE摄像机 在那里声明,如果有多台摄像机,则最好传递IP地址。

还要检查的另一件事是,您是否可以在设备管理器中看到两个摄像机。

编辑:

嘿,我找到了有关使用Pylon SDK(来自相机供应商)和OpenCV的很好的文档(它可能是OpenCV的旧版本,但仍然有用)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM