2012-01-01 2 views
4

웹캠에서 피드를 가져와 표시하는 작동하는 opencv 코드가 있습니다. (코드는 하나 hereopencv의 cvGetCaptureProperty 문제

에서 변형되는 유일한 문제는 I가

int fps = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FPS); 
printf ("Frames per Second: %d\n",fps); 

같이 초당 프레임 값을 출력 할 때 -1 인쇄 도착이다.

다른 (측) 문제는 일부 런타임 오류/경고

VIDIOC_QUERYMENU: Invalid argument 
VIDIOC_QUERYMENU: Invalid argument 
select timeout 
HIGHGUI ERROR: V4L2: Unable to get property <unknown property string>(5) - Invalid argument 
HIGHGUI ERROR: V4L: Property <unknown property string>(2) not supported by device 
HIGHGUI ERROR: V4L2: Unable to get property <unknown property string>(1) - Invalid argument 
HIGHGUI ERROR: V4L: Property <unknown property string>(2) not supported by device 

있을 나타납니다하지만 코드가 수행하는 웹캠 즉, 디스플레이 비디오를 해야하는지 않습니다.

어떤 아이디어로 문제를 해결할 수 있습니까? 나는 우분투에서 이클립스에서 opencv를 사용하고있다. 11.10

미리 감사드립니다.

답변

2

오류 메시지로 판단 할 때 웹캠 드라이버에 문제가있는 것 같습니다. 오류 메시지는 Webcam 드라이버가 포함 된 Linux 커널의 일부인 Video4Linux (오류 메시지의 V4L 또는 V4L2)에서 발생합니다. select() 오류 및 "장치에서 지원되지 않음"오류 메시지가 나타나는 것은 웹캠이 V4L2 API의이 부분을 구현하지 않았 음을 의미합니다.

알려진 드라이버가있는 카메라로 코드를 테스트하면 이것이 문제인지 확인할 수 있습니다. 불행하게도 이것은 커널에 포함 된 웹캠 드라이버에서 매우 일반적입니다. 대부분 리버스 엔지니어링되어 있으므로 비디오 스트림에 액세스하는 것은 아주 좋은 일입니다.

+0

덕분에, 그러나 어떤 FPS의 -1 값에 대해을? 그것에 관한 어떤 생각? – wrahool

+0

나열된 오류 메시지는 "측면 문제"가 아닙니다. 그것들은 실제로 문제의 근원입니다. OpenCV는 드라이버에 FPS (오류 메시지의 원인)를 쿼리 할 수 ​​없으므로 오류 코드 (-1)를 반환합니다. 나는 왜 OpenCV 문서가 오류 코드가 0이어야한다고 말하고 있는지 잘 모르겠다. 이것이 버그이거나 문서가 오래된 것일 수 있습니다. 내가 보니 –

+0

. 고맙습니다. – wrahool

0

는 HIGHGUI 오류 오류이 시도 :

export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so 
+0

당신은 그것이 무엇을하는지 설명해야합니다. –