4

我正在研究实时制作高动态范围视频的项目。目标是使用 3 个现成的网络摄像头(Microsoft LiveCam Studio)来实现。我开始尝试使用 OpenCV,但在打开摄像头时遇到了困难。于是我直接跳了过去videoInput。我可以让任何两个相机相互配合。我可以让任何两个网络摄像头与笔记本电脑上的内置网络摄像头配合使用。但是如果我尝试同时运行所有三个网络摄像头,我会得到

错误:无法启动图表'

经过几个小时的调查后videoInput.cpp,我无法弄清楚为什么两个相同类型的相机没有问题,但是当我添加第三个时却失败了。

当我到达这堵意想不到的墙时,我以为我的项目几乎完成了。

你对此有什么想法吗?

视窗 7(64)

视觉工作室 2011

我需要以同步的方式从所有 3 台摄像机中获取一帧。我愿意接受有关如何完成这项工作的任何建议。是否有任何其他框架可以让我避免使用 DirectShow 或 MediaFoundation?有没有人有我可以查看的代码,可以打开多个摄像头并从流中拉出帧?

4

2 回答 2

3

相机很可能只通过 directshow 连接(至少在 Windows 上),我不知道微软提供的任何低级 API 可以直接与相机对话。

您是否能够使用常规网络摄像头查看器同时运行 3 个摄像头?

这可能是直接显示或 USB 带宽的限制 - 尝试将它们连接到不同的端口。

即使那样,您也无法使用 directshow 准确同步摄像机,时间将达到帧间隔(1/10 秒?)。

于 2011-05-04T20:15:02.667 回答
1

The typical problem is that USB bandwidth is insufficient for two cameras running in the same time, both cameras do fine independently but once you try them both - you have a failure. Another less frequent reason is the camera driver. Perhaps you can try it out in low resolution mode - if this attempt succeeds then version with insufficient bandwidth is the most likely one.

Sometimes you can work things around by connecting cameras to different USB hosts/controllers (not the ports on the same host!). The API itself does not limit you to use one camera at a time only.

于 2012-04-17T13:14:55.957 回答