我在win10 opencv3.4上使用了两个win10摄像头(basler can 2500-14‘m),我把两个摄像头的电线连接到交换机上,然后把它连接到我的computer.but上--我不能同时打开相机和获取帧。我的代码:‘
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 :Grab_MultipleCameras.cpp示例时,我可以打开相机,但是窗口中的图像是灰色的。
有人帮我解决这个问题吗?提前谢谢。
发布于 2018-01-23 06:47:05
当您运行这个basler示例时,可能会发生第二个相机仍然不能打开的情况,但它只会显示带有柔和颜色(灰色)的窗口。
另一个可能的情况是,您传递了错误的设备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 (来自相机供应商) andOpenCV的很好的文档(它可能是OpenCV的旧版本,但仍然很有用)
https://stackoverflow.com/questions/48393157
复制相似问题