2015-06-13 2 views
0

Я только начал изучать opencv, но теперь застрял в программе.Изображение не отображается с помощью веб-камеры в opencv

Я пытаюсь запустить программу, которая просто отображает видео со встроенной веб-камеры.

#include <opencv2\highgui\highgui.hpp> 

int main() { 
cvNamedWindow("Streaming", CV_WINDOW_AUTOSIZE); 
CvCapture* capture = cvCreateCameraCapture(0); 
IplImage* frame; 
while (1) { 
    frame = cvQueryFrame(capture); 
    if (!frame) break; 
    cvShowImage("Streaming", frame); 
    char c = cvWaitKey(33); 
    if (c == 27) break; 
} 
cvReleaseCapture(&capture); 
cvDestroyWindow("Streaming"); 
return 0; 
} 

Все отлично работает без ошибок не бросали, но когда я запускаю программу новое окно с именем Streaming в настоящее время открыт и мой вебкамера свет также включается (значит, веб-камера была запущена), Но, несмотря на все это нет в открывшемся новом окне отображается видео.

Может ли это помочь? Я просто новичок в этом.

Спасибо заранее!

+1

На моей машине этот код работает отлично! У вас есть вторая камера для проверки кода? Или другое программное обеспечение, которое использует вашу веб-камеру, возможно, оно сломано. – LSA

+2

Возможно, вам будет интересно использовать интерфейс C++, можно найти пример [здесь] (http://stackoverflow.com/questions/30024908/unrecognized-or-unsupported-array-type-in-cvgetmat/30028217#30028217) , –

ответ

2

Предлагаю перейти от старой реализации cv к новым методам от OpenCV 2.

Посмотрите на класс VideoCapture, он имеет гораздо более интуитивные методы. Например, вы можете использовать метод isOpened(), чтобы проверить, была ли ваша веб-камера успешно активирована.

Существует также хороший учебник за here, чтобы помочь вам с новыми методами.