2016-11-21 2 views
1

OpenCV를 사용하여 두 번째 카메라를 열려면 어떻게합니까? 나는 VS2008, OpenCV 2.4.13을 사용하고 있으며, 2 종류의 USB 카메라가 부착되어 있습니다. 두 번째 카메라를 열 수 없습니다

나는 아래의 코드를 사용하여 시도,하지만 난 오류 얻을 :

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

당신은 –

+0

당신이 할 수있는 http://docs.opencv.org/2.4/modules/highgui/doc/reading_and_writing_images_and_video.html#videocapture-grab을 잡아()를 검색()를 사용한다 아래 내 경험 기반 대답을 확인 :) 그것이 도움이되기를 바랍니다. –

+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

답장을 보내 주셔서 감사합니다. 하지만 이제 다음 코드를 사용할 때 두 번째 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 질문을 명확하게 보려면 업데이트하십시오. –

관련 문제