2012-06-16 3 views
0

Я изучаю OpenCV, потому что я хочу создавать и программировать 3D-сканер в течение лета.OpenCV - Веб-камера не работает

Я купил три веб-камеры для этой цели (два для реальных стереоизображений и один для текстуры [или в качестве резервной копии]).

Я попытался получить видеоролик веб-камеры с OpenCV. Тем не менее, это не сработает, поскольку в итоге у меня появился черный экран, а не видео.

Затем я попробовал тот же код с веб-камерой моей бабушки. Он работал нормально. Тем не менее, я уже купил 3 веб-камеры того типа, который планировал использовать для создания своего сканера: http://www.amazon.com/Webcam-Camera-Vision-Meeting-compatible/dp/B0015TJNEY/ref=pd_bxgy_e_img_b

Я не хочу покупать новые веб-камеры.

Есть ли у кого-нибудь представление о том, почему мои веб-камеры не работают с OpenCV (они работают с другими программами)?

Как я могу заставить OpenCV принять мои веб-камеры?

Любые предложения будут оценены!

Благодаря

+0

@shobhit Ну, я искал сообщения об ошибках - нет. Я также посмотрел файл драйвера. Это называется: 'usbvideo.sys'. Я также осмотрел Stackoverflow и нашел: http://stackoverflow.com/questions/4430367/opencv-webcam-capture-problem?rq=1. В основном это говорит о моей проблеме. Но первое решение не работает, потому что я уже включил 'cvWaitKey'. Второе решение кажется моей проблемой, но я хочу знать, как это исправить. – eboix

+0

Что вы ищете? Мы можем сказать, что это окна по файлу драйвера usbvideo.sys, но даже в этом случае. Работает ли камера с другими программами? –

+0

Камера работает с другими программами, такими как проигрыватель VLC. У меня Windows 7 Enterprise. Если я не могу заставить свою веб-камеру работать с OpenCV, я загружу другую библиотеку и введу веб-камеру в файл, который затем прочитаю с помощью OpenCV. – eboix

ответ

0

Если ваша программа пройти этот шаг, вы должны попробовать другой номер для cvCaptureFromCAM(0); 0 является первым веб-камерой, но, возможно, ваш установлено как 1, 2 или 3. Вы также можете попробовать -1 и увидеть что происходит

CvCapture *capture; 
capture = cvCaptureFromCAM(0); 
if (!capture) 
{ 
    printf("Error at capture"); 
    return 1; 
} 
+0

Спасибо за помощь. Я делал это раньше. 'capture' не был' NULL'. Изображение, которое я получил от него, тоже не было «NULL». Однако он был пустым. – eboix

+0

Попробуйте использовать cvWaitKey (1); после каждого кадра или попробуйте отладки, и посмотрите, является ли ожидание проблемой. – Mark

+0

В моем коде есть 'cvWaitKey', и он работает с камерой моей бабушки. – eboix