OpenCV не может найти мою веб-камеру USB - PullRequest
0 голосов
/ 04 ноября 2011

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

#include <stdio.h>
#include <opencv.hpp>

int main( int argc, char **argv )
{
    CvCapture *capture = 0;
    IplImage  *frame = 0;
    int       key = 0;

    /* initialize camera */
    capture = cvCaptureFromCAM(0);

    /* always check */
    if ( !capture ) {
        fprintf( stderr, "Cannot open initialize webcam!\n" );
        return 1;
    }

    /* create a window for the video */
    cvNamedWindow( "Test", CV_WINDOW_AUTOSIZE );

    while( key != 'q' ) {
        /* get a frame */
        frame = cvQueryFrame( capture );

        /* always check */
        if( !frame ) break;

        /* display current frame */
        cvShowImage( "Test", frame );

        /* exit if user press 'q' */
        key = cvWaitKey( 1 );
    }

    /* free memory */
    cvDestroyWindow( "Test" );
    cvReleaseCapture( &capture );

    return 0;
}

Я скомпилировал это с:

g++ webcam.c -o webcam -I/opt/local/include/opencv2 -I/opt/local/include -L/opt/local/lib -lopencv_core -lopencv_highgui

Согласнодокументации, изменив строку capture = cvCaptureFromCAM(0); на capture = cvCaptureFromCAM(1);, я смогу получить доступ к другой веб-камере, которую я подключил, но при запуске программы выдается сообщение об ошибке: Warning: Max Camera Num is 0; Using camera 0

Какие шаги могутМне нужно, чтобы OpenCV узнал, что к USB-накопителю подключена другая камера?

1 Ответ

0 голосов
/ 16 ноября 2011

Это основано на опыте работы с Windows, но я считаю, что основная проблема будет та же.(Чтобы получить вход с USB-камеры Logitech на моем ноутбуке.)

Насколько я помню;OpenCV не поддерживает несколько камер, и, следовательно, не выбор камеры.Я предполагаю, что вы можете легко запустить вашу встроенную камеру с кодом, который вы показали.Моим решением аналогичной проблемы была деактивация встроенной камеры.Предоставление USB-камере единственного «доступного» слота для функции cvCaptureFromCAM (0).

Я надеюсь, что это может решить вашу проблему, даже если решение немного «неуклюжее».

...