我在win10 opencv3.4上使用了两台GigE(basler aca2500-14gm)摄像机,我将两台摄像机的电线连接到交换机,然后将它连接到我的电脑。但我可以' t打开相机并同时获取相框。 我的代码: `
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时, 我可以打开相机,但窗口中的图像是灰色的。
有没有人帮我解决这个问题? 提前谢谢。
答案 0 :(得分:0)
当您运行此basler SDK示例时,可能会发生第二个摄像头仍然无法打开但它只是显示带有defualt颜色(灰色)的窗口。
另一个可能的事情是你传递错误的设备ID以使VideoCapture工作,请参阅此内容 OpenCv VideoCap documentation。另外据我所知,如果你使用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 and GigE camera 。据说,当有多个摄像头时,传递IP地址会更好。
要检查的另一件事是,您是否可以在设备管理器中看到两个摄像头。
修改强>
嘿,我找到了关于使用Pylon SDK( from camera vendor) andOpenCV的很好的文档(它可能是旧版本的OpenCV,但仍然有用)