我正在导入立体视觉的源代码。作者的下一个代码是有效的。它需要两个摄像头来源。我目前有两个不同的相机,我收到图像。两者都有效。它在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
捕获两个玩家的任何方法答案 0 :(得分:2)
首先,摄像机通常从0开始编号 - 这只是问题吗?
其次,directshow和多个USB网络摄像头在Windows中非常糟糕。有时它可以使用两个相同的相机,有时只有它们不同。
您也可以在初始化摄像机之间尝试延迟,有时会锁定捕获流,直到它发送数据,防止另一个被检测到。
通常,司机认为他们是唯一的摄像头并且进行不正确的调用以锁定整个捕获图。在Windows中编写正确的驱动程序+ fdirectshow过滤器非常复杂,这没有帮助
答案 1 :(得分:2)
答案 2 :(得分:1)
获得2个PS3眼睛,每个约10欧元,以及免费的codelaboratories.com SDK,这使您可以使用C,C#,Java和AS3包含最多2个摄像头。示例等。你也可以获得75 fps @ 640 * 480的FIXED帧速率。他们的免费驱动程序版本5.1.1.0177提供了不错的DirectShow组件,但仅适用于单个摄像头。
其余的假设:多凸轮DirectShow驱动程序应该是任何制造商的默认设置,不提供这是直接故障实现USB的非常基本的PORPUSE和功能作为接口。与为特定传感器/芯片组实现驱动程序本身相比,实现起来也非常容易。
确认在同一对中工作的替代品(通过DirectShow):
如果您对自己的工作很认真,可以使用一副机器视觉相机来获得性能。市场上最便宜的,具有德国工程质量,CCD,CMOS,单声道,彩色,GigE(以太网),USB,FireWire,优秀的专用驱动器系列: