Я установил OpenCV 2.1 на свой ноутбук и пытаюсь внедрить программу распознавания лиц.Я использую Logitech C210 для своего проекта.Я знаю, что с камерой все в порядке, потому что программное обеспечение обнаруживает и отображает ее, а запуск facedetect.exe в каталоге примеров показывает, что камера работает.Но каким-то образом при использовании исходного кода facedetect.cpp в моем VS2010 Ultimate я даже не смог заставить работать cvCaptureFromCAM!Вот мой код:
#include "stdafx.h"
#include <iostream>
#include "cv.h"
#include "highgui.h"
using namespace std;
using namespace cv;
int main(int, char**) {
IplImage* frame;
// CvCapture* cap = cvCaptureFromCAM(-1);
// cvNamedWindow( "Example2_9", CV_WINDOW_AUTOSIZE );
CvCapture* capture;
cvWaitKey(20);
capture = cvCreateCameraCapture( -1 ); //yes, if 0 doesn't work try with -1
//assert( capture != NULL );
for(;;) {
frame = cvQueryFrame(capture);
if(frame == NULL)
return -1;
imshow("cap", frame);
if(waitKey(30) >= 0)
break;
}
}
Хорошо, так что это не фактический код распознавания лица (он слишком длинный), но он выдвигает на первый план проблему здесь:что значение захвата после cvCaptureFromCAM составляет 0x000000.Это не должно случиться, не так ли?Может кто-нибудь сказать мне, что происходит?