Mac上的OpenCV无法打开USB网络摄像头



我使用OpenCV的videoccapture .open(int)从运行Mac OS X v10.7 (Lion)的MacBook Pro中的USB网络摄像头获取视频捕获失败。使用open(0)成功获取iSight相机的捕获。但是我没能找到摄像头。

WebCam已安装,与Skype和macam驱动程序运行良好。

下面是我使用的一部分代码:

VideoCapture cap; 
for (int i = 1; i < 1500; i++) {
    if (cap.open(i))
    {
        cout << "Found camera %dn" << i;
        break;
    }
}
if(!cap.isOpened()) {  // Check if we succeeded
    return -1;
}

如果我用0初始化i,它立即找到iSight相机。如果我用1初始化i,那么当i = 500时,它再次找到iSight。

如何解决这个问题?

尝试运行没有这一行的代码:break;。也许你会发现不止一个摄像头,其中一个是WebCam。注意cap.open的参数不仅仅是相机的数量——它还定义了你想使用的API:

摄像机调度方式:index为摄像机编号。

  • 如果给定从0到99的索引,它会尝试查找第一个
  • API,可以访问给定的相机索引。
  • 添加100的倍数来选择API(来自cap.cpp的注释)

可能性(取自highgui_c.h):

CV_CAP_ANY      =0,     // autodetect  
CV_CAP_MIL      =100,   // MIL proprietary drivers  
CV_CAP_VFW      =200,   // platform native  
CV_CAP_V4L      =200,
CV_CAP_V4L2     =200,  
CV_CAP_FIREWARE =300,   // IEEE 1394 drivers  
CV_CAP_FIREWIRE =300,  
CV_CAP_IEEE1394 =300,  
CV_CAP_DC1394   =300,  
CV_CAP_CMU1394  =300,  
CV_CAP_STEREO   =400,   // TYZX proprietary drivers  
CV_CAP_TYZX     =400,  
CV_TYZX_LEFT    =400,  
CV_TYZX_RIGHT   =401,  
CV_TYZX_COLOR   =402,  
CV_TYZX_Z       =403,  
CV_CAP_QT       =500,   // QuickTime  
CV_CAP_UNICAP   =600,   // Unicap drivers  
CV_CAP_DSHOW    =700,   // DirectShow (via videoInput)  
CV_CAP_PVAPI    =800,   // PvAPI, Prosilica GigE SDK  
CV_CAP_OPENNI   =900,   // OpenNI (for Kinect)  
CV_CAP_OPENNI_ASUS =910,   // OpenNI (for Asus Xtion)  
CV_CAP_ANDROID  =1000,  // Android  
CV_CAP_XIAPI    =1100,   // XIMEA Camera API  
CV_CAP_AVFOUNDATION = 1200  // AVFoundation framework for iOS (OS X Lion will have the same API)

可能CV_CAP_AVFOUNDATION = 1200是你正在寻找的-尝试从1200开始循环,不要忘记删除break;,我认为你会找到你正在寻找的

相关内容

  • 没有找到相关文章

最新更新