Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在openCV中使用两个视频捕获来捕获同一设备_C++_Opencv - Fatal编程技术网

C++ 在openCV中使用两个视频捕获来捕获同一设备

C++ 在openCV中使用两个视频捕获来捕获同一设备,c++,opencv,C++,Opencv,如果我使用VideoCapture从同一设备获取图像,如下所示: VideoCapture cap1,cap2; cap1.open(0); cap2.open(0); Mat image1,image2; cap1 >> image1; cap2 >> image2; image1和image2是否相同?您不能同时在两个不同的VideoCapture上打开相同的设备 选中此项: VideoCapture cap1,cap

如果我使用
VideoCapture
从同一设备获取图像,如下所示:

    VideoCapture cap1,cap2;
    cap1.open(0);
    cap2.open(0);
    Mat image1,image2;
    cap1 >> image1;
    cap2 >> image2;

image1
image2
是否相同?

您不能同时在两个不同的
VideoCapture
上打开相同的设备

选中此项:

VideoCapture cap1,cap2;
cap1.open(0);
if (!cap1.isOpened()) {
    cerr << "ERROR! Unable to open camera 0 on cap1\n";
}
cap2.open(0);
if (!cap2.isOpened()) {
    cerr << "ERROR! Unable to open camera 0 on cap2\n";
}
视频捕获cap1、cap2;
cap1.开放(0);
如果(!cap1.isOpened()){

cerr你确定吗?我试过了,但没有出现错误。我使用openCV 3.0。@user7857293你有没有像我的例子中那样检查Ispened
?@user7857293你真幸运,在同一台设备上打开2
VideoCapture
就像把同一栋房子卖给两个不同的人……可能取决于设备的驱动程序。为什么不直接测试一下呢?使用cb::absdiff在两幅图像上显示,然后测试是否有任何像素不是cv::Vec3b(0,0,0),那么帧就不一样了。@Mika我需要扫描垫子来测试是否有任何像素不是cv::Vec3b(0,0,0)?您可以使用cv::inRange,而不是从(1,1,1)到(255255255)并在生成的遮罩上显示Countnon0,但您可能会错过最小的更改(0,0,1),(0,1,0),(1,0,0);@Mika嗯,我扫描了它,它不是所有像素的Vec3b(0,0,0)。我认为图像在流中可能是交替的。@Mika谢谢你的回答。