2012-05-03 4 views
0

Я использую OpenCV 2.1 и Visual Studio 2008 в Windows. Я пытаюсь захватить кадры с камеры CCD и хочу отображать в Windows. Камера имеет формат PAL. Камера обнаруживает, но показывает пустой серый экран.opencv - cvCaptureFromCAM (CV_CAP_DSHOW) захват пустой кадр

Я нашел много сообщений, связанных с пустым экраном, но никто не работает в моем случае. Поэтому я публикую этот вопрос.

Ниже мой код:

#include "stdafx.h" 
#include "cv.h" 
#include "cxcore.h" 
#include "highgui.h" 
#include <iostream> 

int main(int argc, char* argv[]) 
{ 
    cvNamedWindow("mywindow", CV_WINDOW_AUTOSIZE); 

    CvCapture* capture = cvCaptureFromCAM(CV_CAP_DSHOW); 

    if (!capture) { 
     fprintf(stderr, "ERROR: capture is NULL \n"); 
     getchar(); 
     return -1; 
    } 

    while (1) { 
     IplImage* frame = cvQueryFrame(capture); 

     if (!frame) { 
      fprintf(stderr, "ERROR: frame is null...\n"); 
      getchar(); 
      break; 
     } 
     else 
     { 
      fprintf(stderr, "Size of camera frame %d X %d\n",frame->width,frame->height); 
     } 

     cvShowImage("mywindow", frame); 

     if ((cvWaitKey(10) & 255) == 27) break; 
    } 

    // Release the capture device housekeeping 
    cvReleaseCapture(&capture); 
    cvDestroyWindow("mywindow"); 

    return 0; 
} 

Над кодом возврата размер кадра 320 X 240, но пустой экран.

код работает отлично для USB веб-камера с кодом CvCapture* capture = cvCaptureFromCAM(1);

Я использую AVerMedia Gold Camera Card на моей доске. Итак, нужен ли мне SDK для использования этой камеры или есть ли возможность использовать CCD-камеру?

Драйвер установлен правильно и проверяется с помощью приложения EzCaptureVC.

ответ

2

OpenCV должен поддерживать вашу камеру, иначе нет гарантии, что он будет работать: проверьте compatibility list.

Также 2.1 это очень устарело. Я предлагаю вам попробовать еще раз с 2.3.1, поскольку в этой области были некоторые улучшения.

+0

Спасибо за быстрый ответ karlphillip. Я проверяю список совместимости с камерой, и моя камера не входит в этот список. Поэтому я буду использовать opensv 2.3.1, и я дам нам знать мой результат с этим. Но позвольте мне добавить дополнительную информацию о результате, с которым я столкнулся раньше. Мой текущий код, указанный в вопросе, работал отлично до нескольких дней с другой картой захвата камеры. Я меняю карту захвата камеры на более высокую функцию, и я потерял канал с камеры. – user934179

+0

Итак, это подтверждает, что проблема связана с ** камерой и opencv **, а не с кодом и opencv. – karlphillip

+0

Теперь я меняю режим захвата видео. Я пытаюсь использовать videoInput для захвата с камеры и работает ... НО возникла одна проблема: я не могу изменить размер видео в videoInput. Он отображается в размере 320X280 по умолчанию, и мне это нужно в размере 640X480. Любая помощь ??????? – user934179

Смежные вопросы