OpenCV找不到我的USB网络摄像头

我试图在MacBook上用内置的iSight摄像头创建一个OpenCV应用程序。 我从互联网上抓取了一些非常简单的代码,并且毫不费力地运行它。 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 Warning: Max Camera Num is 0; Using camera 0

我可以采取哪些步骤让OpenCV认识到我有另一台相机连接到我的USB驱动器?


这是基于Windows的经验,但我相信主要问题是相同的。 (从笔记本电脑上的Logitech USB摄像头获得输入。)

据我记得; OpenCV不支持多个摄像头,因此不支持摄像头。 我猜你可以用你所显示的代码轻松地运行你的内置摄像头。 我解决类似问题的办法是停用内置摄像头。 为USB摄像头提供cvCaptureFromCAM(0)功能的唯一“可用”插槽。

我希望这可以解决您的问题,即使解决方案有点“笨拙”。

链接地址: http://www.djcxy.com/p/83773.html

上一篇: OpenCV can't find my USB webcam

下一篇: Is it possible to initialize an std::array of unnamed structs?