【问题标题】:Opening 2 WebCams From The Same USB Cable从同一根 USB 电缆打开 2 个网络摄像头
【发布时间】:2014-04-06 07:23:39
【问题描述】:

所以我得到了这个很酷的双 WebCam,它通过一根 USB 电缆连接到 mac。

我可以看到我的 mac 在我连接相机时识别了它。我从XCODE 编写了一个小程序,将凸轮视频流式传输到QTCaptureView 到左右两个QTCaptureViews

                 [ left cam view ]    [ right cam view ]

在我发布一些代码之前,我想告诉你,如果我选择其中一个要流式传输的摄像头和面部时间摄像头(例如,它可以是任何其他摄像头,而不是连接到同一端口的摄像头)我同时得到两个流式传输。 但如果我选择两台摄像机进行投影,则只有一台可以工作。 这可能是硬件级别上不可能的事情? 我真的很想听听一些想法。

【问题讨论】:

    标签: macos image-processing webcam


    【解决方案1】:

    一个简单的解决方案是使用来自GraphEdit 的“视频捕获源”过滤器,您应该会看到两个可以同时呈现的捕获端口。

    更高级的解决方案是如下使用OpenCV:

    Mat Lframe,Rframe;
    

    对于多头相机,使用:

    VideoCapture cap(0); // open the default camera
    if(cap.grab())
        cap.retrieve(Lframe,0); cap.retrieve(Rframe,1);// get a new frame
    

    对于两个立体摄像机:

    VideoCapture capL(0),capR(1);
    capL.grab();capR.grab();
    capL.retrieve(Lframe); capR.retrieve(Rframe);// get a new frame
    

    更多详情请见VideoCapture

    【讨论】:

    • 你确定这不是与集线器有关的东西吗?
    • 这取决于系统如何看到它们,如果两个不同的 ID 已分配给摄像机,则使用两个立体版本。如果分配了单个 ID,因此计算机可以看到单个摄像机(两个通道的输出是同步、编码和一起传输的),那么多头版本可能适合您。您可以通过 graphedit 轻松检查。
    • 当我创建 2 个 VideoCapture 对象时,应用程序不会加载。一个就可以了
    • @or azran,我怀疑 USB 带宽分配问题。不太确定这是否是原因(通常是 2 个单独的相机,每个相机都有单独的 USB 电缆)。但是,还是要试一试。克服这个问题的一些方法:1)在捕获线的线之间放置一个睡眠(毫秒)。 2)使用较低的分辨率,这将减少每个摄像机使用的带宽。 3)使用MJPEG格式(压缩帧)。如果它有效,请告诉我,以便我可以将其发布为答案(:
    • @or azran,您能否详细说明为什么分配 2 个 VideoCapture 对象不起作用?您是否尝试过重新获取不同的频道?您可以通过将两个相机的宽度/高度设置为较低的分辨率来消除有限的带宽问题。
    猜你喜欢
    • 2012-12-20
    • 2016-05-16
    • 2012-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-15
    • 1970-01-01
    相关资源
    最近更新 更多