我玩 OpenCV 有一段时间了,我发现一些特定的捕获设备(PS3 Eye、Logitech C940、iSight)甚至在不同的平台上都有一些奇怪的行为。
在 Windows 中使用 OpenCV:上面提到的所有摄像头都运行良好。但是当我想使用 2 个摄像头并因此创建第二个捕获时,这将取决于我在双摄像头设置中使用的设备。
PS3 Eye + C940:没问题 2x C940:没问题
2x PS3 Eye:没有机会,只有最先连接的特定设备会初始化。另一台 PS3 Eye 不能同时使用...没有错误事件,也没有显示有关问题的信息。
现在在 MacOSX 10.7(与 10.6.x 相同)中使用 OpenCV,使用相同的设备甚至相同的 QtGui-Application 与 2 个独立的 GLWidgets 在 QtGui 中显示 cv 输出时会出现不同的问题。
只要不在 Mac OS 中使用 PS Eye,每个设置都很棒。我尝试了 macam 和其他几种工具,但我就是无法让 OpenCV 在 OSX 中初始化这个 cam(我为我的项目买了 3 个,所以不太可能出现硬件问题)。
我仍然想知道问题出在哪里...也许 2 PS Eye 可以在 OSX 中工作,如果一个可以的话?我说不出来。
我什至可以同时从 2 个罗技全高清网络摄像头进行捕捉,性能出色。
知道 Windows 中 Dual PS Eye 的局限性吗?也许USB?为什么 OSX 中的 OpenCV 无法从 PSEye 捕获,但 macam 可以访问摄像头?
我只是想了解发生了什么。也许你们中有人找到了在 OSX 中使用至少一个 PS Eye 的方法?或者这是不可能的? opencv 不能以某种方式使用 macam 组件吗?
最佳答案
视频捕捉是一个非常依赖于平台的领域。因此,Windows 和 OS X 之间的差异是意料之中的,而不是好奇。 OpenCV 利用大量视频捕获 API 来支持尽可能多的设备模型。目前(OpenCV 2.3.1)它在后端使用以下库/API:
Windows :
- DirectShow(思想 VideoInput 库)
- Microsoft 的 Windows 视频 (VfW) API
- CMU 1394 数码相机驱动
- Matrox 成像库 (MIL) (选择)
- OpenNI 相机驱动程序(选择)
- XIMEA 设备的 XIMEA API(选择)
Linux:
- libdc1394(API v1 或 API v2)- 符合 IIDC 标准的相机(选择)
- Prosilica GigE Vision 相机的 PvAPI (选择)
- unicap - 图像采集设备的统一 API(opt)
- video4linux(V4L 或 V4L2)(选择)
- OpenNI 相机驱动程序(用于 Kinect)(opt)
- XINE (选择)
- XIMEA 设备的 XIMEA API(选择)
操作系统:
- QuickTime (选择)
- QTKit (如果没有QuickTime,这两者在OpenCV中是互斥的)
- OpenNI 相机驱动程序(选择)
- XIMEA 设备的 XIMEA API(选择)
安卓:
- 内置安卓摄像头
* (opt) - 这些接口(interface)是可选的 - 可以在 OpenCV 构建期间打开或关闭,并且可能需要一些额外的 SDK。
关于 PS3 Eye - 在 Windows 上,很可能是 VideoInput 库或安装的驱动程序的一些限制。在 OS X 上——首先,确保你的 OpenCV 是用 QuickTime 支持构建的。其次,确保 macam.component 已正确安装到 QuickTime 中。这是他们的 FAQ 的引述:
Why can't I use my webcam with other applications?
You can. Please copy the macam.component into the /Library/QuickTime/ directory (for access by all users on the system) or into the ~/Library/QuickTime/ (for access by only that user). If you have a previous copy, please delete it first. A restart is usually not needed, but if you have trouble, it's a good thing to try. To verify that your installation works, test with a simple program such as HackTVCarbon, VideoViewer, or BTV.
关于windows - OpenCV 2.3 (C++,QtGui),初始化一些特定的 USB 设备和设置时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7247475/