windows - OpenCV 2.3 (C++,QtGui),初始化一些特定的 USB 设备和设置时出现问题

标签 windows macos opencv webcam video-capture

我玩 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/

相关文章:

c++ - 同时运行同一类的对象

Windows 等同于 Linux namespace (每个进程文件系统挂载)?

windows - GUI 使用批处理

macos - Cocoa - 强制用户切换?

c++ - OpenCV Matcher - std::bad_alloc 异常

opencv - 如何检查点是否在一组轮廓内

c++ - 如何使用 OpenCV 从已知的 3D 点云(没有 I 构建)估计新图像 I 的相机姿态矩阵

windows - 为什么显示 'Updating the Git index failed'

windows - WSC(Windows 脚本组件)模型的安全性如何?

windows - 管理 windows 和 mac git 提交者之间的权限