Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带两个摄像头的OpenCV VC++;_Opencv_Webcam - Fatal编程技术网

带两个摄像头的OpenCV VC++;

带两个摄像头的OpenCV VC++;,opencv,webcam,Opencv,Webcam,我正在导入立体视觉的源代码。作者的下一个代码工作。它需要两个摄像头。我目前有两个不同的摄像头,我接收图像。两者都有效。它在capture2时坠毁。有趣的是,如果我改变网络摄像头的顺序(拔下插头并颠倒顺序),第一个摄像头将是第二个摄像头。我们知道它不起作用吗?我还测试了WindowsXPSP3和Windows7x64。同样的问题 //---------Starting WebCam---------- capture1= cvCaptureFromCAM(1); assert(ca

我正在导入立体视觉的源代码。作者的下一个代码工作。它需要两个摄像头。我目前有两个不同的摄像头,我接收图像。两者都有效。它在capture2时坠毁。有趣的是,如果我改变网络摄像头的顺序(拔下插头并颠倒顺序),第一个摄像头将是第二个摄像头。我们知道它不起作用吗?我还测试了WindowsXPSP3和Windows7x64。同样的问题

//---------Starting WebCam----------
    capture1= cvCaptureFromCAM(1);
    assert(capture1!=NULL); cvWaitKey(100);
    capture2= cvCaptureFromCAM(2);
    assert(capture2!=NULL);
另外,如果我使用-1作为参数,只需给我第一个(一直)


或者使用函数cvCaptureFrom捕获两个摄像机的任何方法首先,摄像机通常从0开始编号-这就是问题所在吗

其次,directshow和多个USB网络摄像头在windows中是出了名的糟糕。有时,它将与两个相同的相机一起工作,有时,只有当它们是不同的

您还可以尝试在初始化摄像头之间进行延迟,有时一个摄像头会锁定捕获流,直到它发送数据,从而阻止另一个摄像头被检测到


通常情况下,驾驶员会假设他们是唯一的摄像头,并打错误的电话锁定整个捕获图。在Windows中编写正确的驱动程序+fdirectshow过滤器非常复杂,这对这一点没有帮助。获得2只PS3眼睛,每只大约10欧元,以及免费的codelaboratories.com SDK,这使您可以使用C、C、Java和AS3支持多达2个摄像头,包括示例等。您还可以获得75 fps@640*480的固定帧速率。他们的免费驱动程序版本5.1.1.0177提供了不错的DirectShow组件,但仅适用于单个摄像头

其他注释:对于任何制造商来说,多摄像头DirectShow驱动程序都应该是默认的,如果不提供,这将直接导致无法实现USB作为接口的非常基本的端口和功能。与为特定传感器/芯片组实现驱动程序本身相比,它也非常容易实现

已确认成对工作的备选方案(通过DirectShow):

  • Microsoft Lifecam高清影院(如果可以,请使用通用UVC驱动程序,减少fps限制)
  • Logitech网络摄像头Pro 9000(不要与QuickCam Pro 9000混淆,后者不起作用)
  • 创意VF0220
  • 创意VF0330
  • 峡谷WCAMN-1N
如果你对自己的工作很认真,那就买一对机器视觉摄像机来提高性能。市场上最便宜的,具有德国工程质量、CCD、CMOS、单声道、彩色、GigE(以太网)、USB、FireWire、优秀的专用驱动程序:


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

它不符合要求,我尝试了0和1,它只给出了一个,第二个摄像头被压碎了,但当我在插入摄像头时更改了摄像头的顺序,它还改变了第一个摄像头的顺序,我无法调用第二个摄像头。操作系统将按特定顺序找到摄像头-可能取决于USB端口的连接方式。这可能是因为它只能检测到一个摄像头,因为第一个摄像头锁定了一些资源,阻止了另一个摄像头被发现——这通常是网络摄像头驱动程序的错误。请尝试这个解决方案:我以前也尝试过,但是所有这些函数都是过时的,并且没有在新版本中实现。OpenCV 2.2无法识别所有这些函数