2012-06-15 2 views
0

저는 OpenCV를 처음 접했고 샘플 코드를보고 실행하여 제 베어링을 얻으려고합니다.OpenCV - 웹캠 비디오 표시 오류

내가보고있는 샘플 프로그램 중 하나는 웹캠 비디오를 표시하는 프로그램입니다. 여기에서 중요한 라인 (프로그램이보다 멀리 실행하지 않습니다)입니다 :

// Make frame. 
CvCapture* capture = cvCaptureFromCAM(0); 

if(!capture) { 
    printf("Webcam not initialized...."); 
} 
// Display video in frame. 

불행하게도, if 문이 항상 실행합니다. 어떤 이유로 든 capture이 초기화되지 않았습니다.

심지어 낯선 사람, 나는이 프로그램을 실행할 때, 그것은 심지어 내가 사용하고자하는 웹캠을 선택하는 나에게 GUI를 제공합니다 : 나는 웹캠을 선택한 후에도,

Webcam Selection GUI

그러나를 capture은 아니다 초기화!

이것은 무엇을 의미합니까? 이 문제를 어떻게 해결할 수 있습니까?

의견을 보내 주셔서 감사합니다.

+1

카메라를 사용하고있는 다른 제품 (예 : skype)이 있습니까? –

+0

+1 Martin Beckett. 나는 이것이 카메라 드라이버 문제 (또는 리눅스에서 v4l)라고 확신한다. – ArtemStorozhuk

답변

1

OpenCV는 사용자가 선택한 후에야 웹캠에 액세스 할 수 있습니다. 웹캠을 사용할 수있을 때까지이 경우, 루프 노력이 여전히 작동하지

CvCapture *capture = NULL; 
do { 
    // you could also try passing in CV_CAP_ANY or -1 instead of 0 
    capture = cvCaptureFromCAM(0); 
} while (!capture); 

경우, 오류를 설명하는 문자열을 얻을 수 cvErrorStr(cvGetErrStatus())를 호출합니다.

+0

확인. 나는 지금 당장 그것을 할 것이다. 제안 해 주셔서 감사합니다. – eboix

+0

'capture'가 초기화되었지만 다음에 가져온 창은 비어있었습니다. 제 질문에 답해 주셔서 감사합니다. – eboix

+0

그런 경우 다른 의견 작성자의 제안에 따라 최신 버전의 OpenCV가 있는지 확인하고 비디오 드라이버를 확인하는 것이 좋습니다. 가능한 경우 다른 카메라를 사용하여 현재 작동하도록 할 수 있습니다. – gvl