Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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
Macos 从同一USB电缆打开2个网络摄像头_Macos_Image Processing_Webcam - Fatal编程技术网

Macos 从同一USB电缆打开2个网络摄像头

Macos 从同一USB电缆打开2个网络摄像头,macos,image-processing,webcam,Macos,Image Processing,Webcam,所以我买了一个很酷的双网络摄像头,它通过一根usb电缆连接到mac电脑 我可以看到我的mac电脑在我连接它时识别出了摄像头。我从XCODE编写了一个小程序,将cam视频流到QTCaptureView中的左右两个QTCaptureView [ left cam view ] [ right cam view ] 在我发布一些代码之前,我想告诉大家,如果我选择其中一个要流式传输的凸轮和面时相机(例如,它可以是任何其他凸轮,而不是连接到同一端口的凸轮),我会同

所以我买了一个很酷的双
网络摄像头
,它通过一根usb电缆连接到mac电脑

我可以看到我的mac电脑在我连接它时识别出了摄像头。我从
XCODE
编写了一个小程序,将cam视频流到
QTCaptureView
中的左右两个QTCaptureView

                 [ left cam view ]    [ right cam view ]
在我发布一些代码之前,我想告诉大家,如果我选择其中一个要流式传输的凸轮和面时相机(例如,它可以是任何其他凸轮,而不是连接到同一端口的凸轮),我会同时获得两个流式传输。 但如果我选择两个相机都投影,只有一个可以工作。 这可能是硬件层面上不可能的事情?
我真的很想听听一些想法。

一个简单的解决方案是使用“视频捕获源”过滤器,从中可以看到两个可以同时渲染的捕获端口

更高级的解决方案是使用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

有关更多详细信息,请参阅。

您确定这与hubbing无关吗?这取决于系统如何看到它们,如果为摄像头分配了两个不同的ID,则使用两个立体声版本。如果分配了一个ID,以便计算机看到一个摄像头(两个通道的输出同步、编码并一起传输),则多头版本可能适合您。你可以通过graphedit轻松检查。当我创建两个视频捕获对象时,应用程序不会加载。有一个works@orazran,我怀疑USB带宽分配有问题。不太确定这是否是原因(通常情况下,两个单独的摄像头各有一根usb电缆)。但还是要尝试一下。克服这个问题的一些方法:1)在捕捉线之间放置一个睡眠(ms)。2) 使用较低的分辨率,这将减少每个摄像头使用的带宽。3) 使用MJPEG格式(压缩帧)。如果可行,请告诉我,这样我就可以把它作为一个答案发布(:@或azran,你能告诉mire为什么分配两个视频捕获对象不起作用的详细信息吗?你是否尝试过重新尝试不同的频道?你可以通过将两个摄像头的宽度/高度设置为较低的分辨率来消除带宽有限的问题。