我一直在玩OpenCV,我发现一些特定的捕获设备(PS3 Eye, Logitech C940, iSight)即使在不同的平台上也有一些奇怪的行为。
在Windows中使用OpenCV:上面提到的所有cam都能很好地工作。但是当我想使用2个摄像头,因此创建第二次捕获时,这将取决于我在双摄像头设置中使用的设备。
PS3 Eye + C940:没有问题2x C940:没有问题
2x PS3 Eye:没有机会,只有先连接的特定设备才会初始化。另一只PS3 Eye不能同时使用…没有错误事件,也没有显示有关问题的信息。
现在在MacOSX 10.7中使用OpenCV(与10.6.x相同),使用相同的设备甚至相同的QtGui应用程序与2个独立的GLWidgets在QtGui中显示cv输出存在不同的问题。
只要在Mac OS中不使用PS Eye,每个设置都很棒。我尝试了macam和其他几个工具,但我就是不能让OpenCV在OSX中初始化这个摄像头(我为我的项目买了3个,所以硬件问题不太可能)。
我仍然想知道问题在哪里…也许2个PS Eye能够在OSX上运行?我不知道。
我甚至可以同时从2个罗技全高清网络摄像头拍摄,性能很好。
你知道Windows双PS眼的局限性在哪里吗?也许USB ?为什么OSX中的OpenCV不能从PSEye中捕获,但macam可以访问cam?
我只是想知道发生了什么。也许你们中有人找到了在OSX中至少使用一个PS Eye的方法?还是这根本不可能?openv不能以某种方式使用macam组件?
视频捕获是非常依赖于平台的领域。所以Windows和OS X之间的差异是意料之中的,而不是奇怪的。OpenCV利用大量的视频捕获api来支持尽可能多的设备模型。目前(OpenCV 2.3.1)它在后端使用以下库/api:
Windows:- DirectShow (thought VideoInput library)
- Microsoft Video for Windows (VfW) API
- CMU 1394数码相机驱动程序
- matrix Imaging Library (MIL) (opt)
- OpenNI相机驱动程序(opt)
- 用于XIMEA器件的XIMEA API (opt)
- libdc1394 (API v1或API v2) - IIDC标准兼容摄像机(opt)
- Prosilica GigE Vision相机的PvAPI (opt)
- unicap -用于图像采集设备的统一API (opt)
- video4linux (V4L或V4L2) (opt)
- OpenNI相机驱动程序(Kinect) (opt)
- XINE (选择)
- 用于XIMEA器件的XIMEA API (opt)
:
- QuickTime (选择)
- QTKit (如果没有QuickTime,这两个在OpenCV中是互斥的)
- OpenNI相机驱动程序(opt)
- 用于XIMEA器件的XIMEA API (opt)
- 内置Android摄像头
* (opt) -这些接口是可选的-可以在OpenCV构建期间打开或关闭,可能需要一些额外的SDK。
关于PS3 Eye - on Windows,很可能是VideoInput库或安装的驱动程序的一些限制。在OS X上,首先,确保你的OpenCV是用QuickTime支持构建的。第二,确保macam.component正确安装到QuickTime中。以下是他们的常见问题解答:
为什么我不能在其他应用程序上使用我的摄像头?
。请将macam.组件复制到/Library/QuickTime/目录(供系统所有用户访问)或进入~/Library/QuickTime/(仅供该用户访问)。如果您有以前的副本,请先删除它。重启通常是不需要,但如果你遇到麻烦,试一试是件好事。来验证您的安装是否有效,使用一个简单的程序进行测试,例如如HackTVCarbon, VideoViewer或BTV