vix*_*xo7 5 c++ macos webcam opencv
我在运行 Mac OS X v10.7 (Lion) 的MacBook Pro 中使用OpenCV的 VideoCapture.open(int) 从 USB 网络摄像头获取视频捕获失败。使用 open(0) 成功从 iSight 摄像头获取捕获。但我没有任何运气试图找到网络摄像头。
网络摄像头已安装并与Skype和macam驱动程序应用程序配合使用。
这是我正在使用的代码的一部分:
VideoCapture cap;
for (int i = 1; i < 1500; i++) {
if (cap.open(i))
{
cout << "Found camera %d\n" << i;
break;
}
}
if(!cap.isOpened()) { // Check if we succeeded
return -1;
}
Run Code Online (Sandbox Code Playgroud)
如果我i用 0初始化,它会立即找到 iSight 摄像头。如果我i用 1初始化,那么当i= 500时它会再次找到 iSight 。
我该如何解决这个问题?
尝试在没有此行的情况下运行您的代码:break;。您可能会发现不止一台相机,其中之一就是网络摄像头。
请注意, 的参数cap.open不仅是相机的数量 - 它还定义了您要使用的 API:
摄像机调度方式:index为摄像机编号。
可能性(取自 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)
Run Code Online (Sandbox Code Playgroud)
可能CV_CAP_AVFOUNDATION = 1200就是您正在寻找的东西 - 尝试从 1200 开始循环,不要忘记删除break;,我认为您会找到您正在寻找的东西。
| 归档时间: |
|
| 查看次数: |
10007 次 |
| 最近记录: |