C++ 无法在Opencv 3.2.0中为视频捕获设置后端
我喜欢用opencv捕捉usb网络摄像头拍摄的视频。为此,我尝试使用VideoCapture类和v4l2后端。下面的示例中,我以以下方式调用构造函数:C++ 无法在Opencv 3.2.0中为视频捕获设置后端,c++,opencv,v4l2,C++,Opencv,V4l2,我喜欢用opencv捕捉usb网络摄像头拍摄的视频。为此,我尝试使用VideoCapture类和v4l2后端。下面的示例中,我以以下方式调用构造函数: VideoCapture vc(id + CAP_V4L2); 其中id表示我的相机(此处为0) 为了检查是否成功,我做了如下操作: cout << vc.get(CAP_PROP_MODE)<<endl; // return 0 instead of the value of CAP_V4L2 如果你的代码没有错误并
VideoCapture vc(id + CAP_V4L2);
其中id表示我的相机(此处为0)
为了检查是否成功,我做了如下操作:
cout << vc.get(CAP_PROP_MODE)<<endl; // return 0 instead of the value of CAP_V4L2
如果你的代码没有错误并且工作正常,我无法准确地理解这个问题,我希望vc.get(CAP_PROP_MODE)也返回200,以表明后端设置正确。但是它们不是同一件事CAP_V4L2和CAP_PROP_MODE可能我用错误的方式解释了它,但是imho CAP_PROP_MODE将返回所选的后端,在这种情况下CAP_V4L2?CAP_PROP_MODE
的描述中说:“后端特定值指示当前捕获模式。”--这肯定与“后端ID”不同如果你能升级一点,那是从3.4.4版开始的。你的代码没有错,工作正常,我不能完全理解这个问题。我原以为vc.get(CAP_PROP_MODE)也会返回200,以表明后端设置正确。但它们不是CAP_V4L2和CAP_PROP_MODE的同一个东西也许我用错误的方式解释了它,但是imho CAP_PROP_MODE将返回所选的后端,在这种情况下CAP_V4L2?CAP_PROP_MODE的描述中说:“后端特定值指示当前捕获模式。”--这肯定与“后端ID”不同如果您可以升级一点,那么从3.4.4版开始就有了。
int main() {
int id = 0;
VideoCapture vc(id + CAP_V4L2);
if(!vc.isOpened()) {
std::cerr << "Unable to open cam " << std::endl;
exit(-1);
}
cout << vc.get(CAP_PROP_MODE) << " | " << CAP_V4L2 <<endl; // 0 | 200
}