[英]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.