2016-11-21 6 views
1

OpenCVを使用して2番目のカメラを開くにはどうすればよいですか?私はVS2008、OpenCV 2.4.13を使用しており、2種類のUSBカメラを接続しています。2番目のカメラを開くことができません

私は以下のコードを使用してみましたが、私はエラーを取得:

Capture1 can't be opened

コードは次のとおりです。

int _tmain(int argc, _TCHAR* argv[]) 
{ 
    VideoCapture capture(0); 
    if(!capture.isOpened()) 
     std::cout << "Capture0 can't be opened\n" << std::endl; 

    VideoCapture capture1(1); 
    if(!capture1.isOpened()) 
     std::cout << "Capture1 can't be opened\n" << std::endl; 

    return 0; 
} 
+0

あなたは(グラブを使用する必要があります)複数のカメラを使用した場合、その後)(取得http://docs.opencv.org/2.4/modules/highgui/doc/reading_and_writing_images_and_video.html#videocapture-grab –

+0

することができます私の経験に基づく回答を以下にチェックしてください:) –

+0

VideoCapture capture1(DSHOW +1)はどうですか? –

答えて

0

私はキャプチャする準備を待って、数秒かかるいくつかの古いカメラを経験しています。その "待機中"の時間にキャプチャすると、空の(OpenCV)または黒の画像(DirectShow)が返されます。それは単一のカメラでも起こります。 while(img.empty())ループは、有効な画像が正しく返されるまでループし、この期間の長さを測定できます。

複数のカメラ環境では、すべてのカメラのキャプチャを準備するために、取得してから取得できます。

http://docs.opencv.org/2.4/modules/highgui/doc/reading_and_writing_images_and_video.html#videocapture-grab

+0

@Jack_Wellemが開かれても、キャプチャの準備ができているわけではありません:) –

+0

ありがとうございます。 しかし、今私は、次のコードを使用するとき、私は2番目のcammeraを開くことができないことがわかります。 'int _tmain(int argc、_TCHAR * argv []) { VideoCapture capture(0); if(!capture.isOpened()) std :: cout << "Capture0を開くことができません。\ n" << std :: endl; VideoCapture capture1(1); if(!capture1.isOpened()) std :: cout << "Capture1を開くことができません。\ n" << std :: endl; \t return 0; } ' –

+0

@Jack_Wellemあなたの質問をより明瞭に表示するように更新してください。 –

関連する問題