OpenCV没有初始化USB摄像头

时间:2012-10-15 15:35:31

标签: c++ video opencv

我正在尝试使用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中进行了一些搜索。但没有有用的帮助。 有什么想法吗?

2 个答案:

答案 0 :(得分:1)

尝试以root身份运行您的程序。您可能没有权限,并且opencv不告诉您这是否是cap.isOpened()失败的原因。

答案 1 :(得分:0)

manual here表示VideoCapture::VideoCapture(int device)接受

  

device:打开的视频捕获设备的id(即摄像机索引)。如果连接了一台摄像机,只需传递0。

如果您的系统中有1台摄像头,我认为您应该将-1更改为0