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

プログラムをルートとして実行してみてください。許可がない可能性があり、opencv はそれが原因で cap.isOpened() が失敗したかどうかを通知しません。

于 2014-03-15T19:41:49.653 に答える
0

ここのマニュアルにVideoCapture::VideoCapture(int device)

device: 開いているビデオ キャプチャ デバイスの ID (つまり、カメラ インデックス)。接続されているカメラが 1 台の場合は、0 を渡します。

システムにカメラが 1 台ある場合は、-1を に変更する必要があると思います。0

于 2012-10-16T17:18:01.703 に答える