Я пишу программу, которую нужно захватывать с веб-камеры, используя opencv. Я использую камеру Logitech C260 и OpenCV2.2, Windows XP, QT Creator. Вот пример моего кода:
int i = 0;
int arg = 0;
CvCapture *pCapturedImage = cvCaptureFromCAM(arg);
cvNamedWindow( "Example1", CV_WINDOW_AUTOSIZE );
IplImage* img1= cvQueryFrame(pCapturedImage);
IplImage* img2;
IplImage* merged;
int MAX_FRAMES = 10;
for (int i = 0; i < MAX_FRAMES; i++){
pCapturedImage = cvCaptureFromCAM(arg);
if (!pCapturedImage){
printf("Uh oh");
}
img1 = cvQueryFrame(pCapturedImage);
printf("Query");
cvShowImage( "Example1", img1 );
cvWaitKey(0);
}
for (int i = 0; i < MAX_FRAMES; i++){
printf("Enter");
img2 = img1;
pCapturedImage = cvCaptureFromCAM(arg);
if (!pCapturedImage){
printf("Uh oh");
}else
printf("Capture");
img1 = cvQueryFrame(pCapturedImage);
printf("Query");
cvShowImage( "Example1", img1 );
cvWaitKey(0);
img1 = mergePhotos(img2, img1, i*25, i*25);
printf("Merge");
cvShowImage( "Example1", img1 );
cvWaitKey(0);
}
Это не работает, хотя. Я получаю только около 10 первых снимков, затем после этого снимок становится пустым (я выложу фотографию, но мне не разрешено).
Я в тупике. Я пробовал cvCaptureFromCAM и cvCreateCameraCapture. Я попытался изменить аргументы для этой функции. Я перепробовал все свои порты USB.
Кто-нибудь знает, в чем может быть проблема? Я очень ценю любую помощь.