我意识到这已经发布过了,但是我还没有能够收集以前帖子中的任何信息(大多数都是以前的版本,解决方案是错误修复)。
当有人告诉我我从错误的回购中撤出时,我刚从3.0.0降级到2.4.9。在此之前,由于2.4.9到3.0.0的更改,我在编译ARUco库时遇到了常量问题,所以这个更改显然有效,因为我现在可以编译。但是,之前一直工作的程序无法打开VideoCapture对象。我知道这是因为下面代码中的断言assert(webCamL.isOpened())
失败了,删除断言时返回的帧是空的。
webcamL = cv::VideoCapture(0);
assert(webcamL.isOpened());
Mat tmp;
webcamL.read(tmp);
int width = webcamL.get(CV_CAP_PROP_FRAME_WIDTH);
int height = webcamL.get(CV_CAP_PROP_FRAME_HEIGHT);
cout << width << " " << height << endl << tmp.size().width << " " << tmp.size().height << endl;
老实说,我不知所措。 2.4.9坏了吗?这是一个基本的程序,我无法想到任何调试方式。相机绝对存在于/dev/video0
中并且它在昨天工作,所以我不确定我应该做什么。