2011-08-30 50 views
3

我一直在玩OpenCV,并且发现了一些特定捕捉设备(PS3 Eye,Logitech C940,iSight)的一些奇怪行为,在不同的平台上。OpenCV 2.3(C++,QtGui),问题初始化一些特定的USB设备和设置

在Windows中使用OpenCV:上面提到的所有摄像头都工作正常。但是当我想使用2个摄像头并因此创建第二个摄像头时,它将取决于我在双摄像头设置中使用的设备。

PS3眼+ C940:没有问题 2X C940:没有问题

2倍PS3眼睛:没有机会,只是这是第一次连接将初始化特定设备。另一个PS3 Eye不能同时使用...没有错误事件,也没有关于该问题的信息。

现在在MacOSX 10.7中使用OpenCV(对于10.6.x也是如此),使用相同设备甚至是具有2个独立GLWidgets的相同QtGui应用程序在QtGui中显示cv输出时存在不同的问题。

只要不在Mac OS中使用PS Eye,每个设置都很棒。我尝试了macam和其他几个工具,但是我只是无法让OpenCV在OSX中初始化这个凸轮(我为我的项目购买了3个硬件,因此不太可能)。

我仍然想知道问题出在哪里......也许2 PS Eye在OSX上工作,如果一个人做了?我不知道。

我甚至可以从2x Logitech FULL HD网络摄像机中同时拍摄出性能不错的影像。

任何想法,其中限制可能与双PS眼在Windows中?也许USB?为什么不能从PSEye的OSX Capture中打开OpenCV,但是macam可以访问凸轮?

我只是想了解发生了什么。也许你们中的任何人都找到了在OSX中至少使用单一PS Eye的方法?或者这是不可能的?不能opencv以某种方式使用macam组件?

回答

9

视频捕捉是非常依赖于平台的区域。因此,Windows和OS X之间的差异比想象的更令人期待。 OpenCV利用很多视频捕获API来支持尽可能多的设备模型。目前(OpenCV 2.3。1)它使用下列库/ API的在后端:

的Windows:

  • 的DirectShow(认为VideoInput库)
  • 微软的Windows视频(VFW)API
  • CMU 1394数码相机驱动
  • Matrox影像库(MIL)(OPT)
  • OpenNI摄像头驱动程序(OPT)
  • XIMEA API为XIMEA设备(OPT)

的Linux:

  • libdc1394(API v1或API第2版) - IIDC符合标准的摄像机(OPT)
  • PvAPI为Prosilica GigE视觉相机(opt)
  • unicap - 用于图像采集设备的统一API (OPT)
  • video4linux实现(V4L或V4L2)(OPT)
  • OpenNI照相机驱动程序(用于超高动力学)(OPT)
  • XINE (OPT)
  • XIMEA API用于XIMEA设备(OPT)

OS X:

  • 的QuickTime (OPT)
  • QTKit (如果没有QuickTime的,这两个是相互排斥的OpenCV中)
  • OpenNI照相机驱动程序(OPT)
  • XIMEA API用于XIMEA设备( OPT)

安卓

  • 内置Android摄像头

*(OPT) - 这些接口是可选的 - 可以开启或关闭OpenCV的构建过程中打开,并可能需要一些额外的SDK。

关于PS3 Eye - 在Windows上,它很可能是VideoInput库或安装的驱动程序的一些限制。在OS X上 - 首先,确保您的OpenCV是使用QuickTime支持构建的。其次,确保macam.component已正确安装到QuickTime中。这里是他们的报价FAQ

为什么我不能在其他应用程序中使用我的摄像头?

您可以。请将macam.component复制到 /Library/QuickTime /目录(供系统中所有用户访问) 或〜/ Library/QuickTime /(仅供该用户访问)。如果 您有以前的副本,请先删除它。重新启动通常不需要,但是如果您遇到问题,尝试一下是件好事。到 验证您的安装是否有效,请使用简单程序 作为HackTVCarbon,VideoViewer或BTV进行测试。

+0

+1好的总结。你介意看看[我的回复](http://code.opencv.org/issues/2726)? – karlphillip

+0

我以为我回答。 –

+0

是的,你做到了。在你回复之前几分钟,我写了以前的评论,哈哈。只要忽略它。 – karlphillip