首页 文章

Mac OS X下的OpenCV程序打开iSight,但忽略了我的USB网络摄像头

提问于
浏览
1

我有以下问题:在Mac OS X 10.5.8下的openCV程序中,当我尝试打开我的USB摄像头视频时,它总是打开iSight内置摄像头,虽然我明确地将摄像机编号设置为1(iSight应该是是0) . 此外,选择摄像机编号为2,3等也会打开iSight摄像头,尽管我只连接了2台摄像机 .

我尝试了以下内容

CvCapture * camera = cvCaptureFromCAM( 1 );

CvCapture * camera = cvCreateCameraCapture ( 1 );

他们都给出了相同的结果 . 有趣的是,当我从Skype或PhotoBooth从iSight摄像头打开视频捕获时,它占用了 Channels ,而openCV程序被迫打开网络摄像头 Channels ,没有任何问题 .

我的问题是,如何在我的openCV程序中明确选择网络摄像头,而不必先在另一个程序中占用iSight Channels ?

谢谢 .

附:该程序在Windows下工作 - 我只在带有1个摄像头(相同的网络摄像头)的机器上尝试过但是如果我指定了不同于0或CV_CAP_ANY的任何东西它会崩溃,所以我认为它正确搜索了摄像头 .

2 回答

  • 0

    看起来这个问题只是1.1中的一个错误,我假设你使用的版本是因为你在mac上并且私有框架是用该版本构建的 . 我通过拉下2.1源代码来修复这个问题,构建它,然后链接到那里的dylibs .

  • 0

    获取最新的OpenCV(此时版本为2.1)并尝试打开您的设备:

    if ((capture = cvCaptureFromCAM(0)) == NULL)
    {
            std::cerr << "!!! ERROR: vCaptureFromCAM No camera found\n";
            exit(-1);
    }
    

相关问题