5

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

4

2 回答 2

1

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

于 2014-03-15T19:41:49.653 回答
0

这里的手册VideoCapture::VideoCapture(int device)接受

设备:打开的视频捕获设备的ID(即相机索引)。如果连接了单个摄像头,则只需传递 0。

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

于 2012-10-16T17:18:01.703 回答