我正在尝试使用OpenCV从USB摄像头捕获视频。
#include <highgui.h>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
VideoCapture cap (-1);
if (!cap.isOpened())
cout << "Cam initialize failed";
else cout << "Cam initialized";
return 0;
}
无法初始化相机。 cap.isOpened()返回零。
同一个程序,使用相同版本的OpenCV和相同的USB相机,正在我朋友的机器上正常运行。我正在运行Fedora 16.相机正在另一个应用程序中正常工作(例如,Cheese)。
我在Google和Stack Overflow中进行了一些搜索。但没有有用的帮助。 有什么想法吗?
答案 0 :(得分:1)
尝试以root身份运行您的程序。您可能没有权限,并且opencv不告诉您这是否是cap.isOpened()失败的原因。
答案 1 :(得分:0)
manual here表示VideoCapture::VideoCapture(int device)
接受
device:打开的视频捕获设备的id(即摄像机索引)。如果连接了一台摄像机,只需传递0。
如果您的系统中有1台摄像头,我认为您应该将-1
更改为0
。