3

我正在导入立体视觉的源代码。作者的下一个代码有效。它需要两个摄像机源。我目前有两个不同的相机,我收到图像。两者都有效。它在 capture2 崩溃。有趣的是,如果我更改网络摄像头的顺序(拔下它们并颠倒顺序),第一个摄像头将是第二个摄像头。我们这行不通?我还使用 Windows XP sp3 和 Windows 7 X64 进行了测试。同样的问题。

//---------Starting WebCam----------
    capture1= cvCaptureFromCAM(1);
    assert(capture1!=NULL); cvWaitKey(100);
    capture2= cvCaptureFromCAM(2);
    assert(capture2!=NULL);

此外,如果我使用 -1 作为参数,只需给我第一个(一直)。

或使用函数 cvCaptureFrom 捕获两个摄像头的任何方法

4

3 回答 3

2

某些主板无法与某些 USB 2.0 相机配合使用。一台 USB 2.0 相机占用 40-60% 的 USB 控制器。解决方案是从 pci2usb 控制器连接第二个 USB 2.0 摄像头

于 2012-11-06T16:00:11.557 回答
2

首先,相机通常从 0 开始编号 - 这只是问题所在吗?

其次,directshow 和多个 USB 网络摄像头在 Windows 中是出了名的糟糕。有时它适用于两个相同的相机,有时只有它们不同。

您还可以尝试在初始化相机之间延迟,有时一个会锁定捕获流,直到它发送数据,防止另一个被检测到。

驱动程序通常认为他们是唯一的摄像头,并做出错误的调用来锁定整个捕获图。在 Windows 中编写正确的驱动程序 + fdirectshow 过滤器非常复杂,这无济于事

于 2012-04-17T15:54:42.020 回答
1

获得 2 个 PS3 Eyes,每个大约 10 欧元,以及免费的 codelaboratories.com SDK,这使您可以支持多达 2 个使用 C、C#、Java 和 AS3 的摄像头,包括。示例等。您还可以获得高达 75 fps @ 640*480 的 FIXED 帧速率。他们的免费驱动程序版本 5.1.1.0177 提供了不错的 DirectShow 组件,但仅适用于单个相机。

其余评论:多机位 DirectShow 驱动程序应该是任何制造商的默认设置,不提供这是直接失败将 USB 的非常基本的 PORPUSE 和功能实现为接口。与为特定传感器/芯片组实现驱动程序本身相比,它也非常容易实现。

确认可以成对工作的替代方案(通过 DirectShow):

  • Microsoft Lifecam HD Cinema(如果可以,请使用通用 UVC 驱动程序,fps 限制较少)
  • Logitech Webcam Pro 9000(不要与 QuickCam Pro 9000 混淆,后者不起作用)
  • 创意VF0220
  • 创意VF0330
  • 峡谷 WCAMN-1N

如果您对自己的工作很认真,请购买一对机器视觉相机以获得性能。市场上最便宜的,具有德国工程质量、CCD、CMOS、单色、彩色、GigE(以太网)、USB、FireWire,以及一系列优秀的专用驱动程序:

http://www.theimagingsource.com

于 2012-07-07T13:09:02.720 回答