Проблемы с OpenCV2.2 cvCaptureFromCAM ... только возвращение зеленого экрана.(Камера Logitech C260) - PullRequest
1 голос
/ 03 марта 2011

Я пишу программу, которую нужно захватывать с веб-камеры, используя 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.

Кто-нибудь знает, в чем может быть проблема? Я очень ценю любую помощь.

1 Ответ

0 голосов
/ 06 марта 2011

Вам нужно вызывать cvCaptureFromCAM (или cvCreateCameraCapture) только один раз, вне циклов, чтобы инициализировать и открыть камеру. Затем вы можете получить новые кадры, просто вызывая cvQueryFrame каждый раз. (Думайте о cvCapture как об источнике кадра, а не как о самом кадре.)

Вероятно, существует некоторое ограничение ОС, из-за которого нельзя открывать ресурс камеры более нескольких раз ... это может быть объяснением описанных вами "всего 10 кадров".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...