Открытие 2 веб-камер с помощью одного USB-кабеля

Итак, я получил этот классный двойной WebCam, который подключается к Mac с помощью одного USB-кабеля.b

я вижу, что мой Mac распознал камеры, когда я их подключаю. я пишу небольшую программу из XCODE, которая транслирует видео с камеры на QTCaptureView в два QTCaptureView слева и справа

                 [ left cam view ]    [ right cam view ]

прежде чем опубликовать некоторый код, я хотел бы сказать, что если я выберу одну из камер для потоковой передачи, а также камеру циферблата (например, это может быть любая другая камера вместо камеры, подключенной к тому же порту), я получаю обе транслировалось одновременно. но если я выберу обе камеры для проецирования, будет работать только одна. может быть что-то невозможное на аппаратном уровне? Я действительно хотел бы услышать некоторые идеи.


person or azran    schedule 06.04.2014    source источник


Ответы (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.

person Basel    schedule 06.04.2014
comment
вы уверены, что это не что-то связанное с хабом? - person or azran; 06.04.2014
comment
Это зависит от того, как система может их видеть. Если камерам назначены два разных идентификатора, используйте версию с двумя стерео. если назначен один идентификатор, поэтому компьютер видит одну камеру (выходные данные обоих каналов синхронизируются, кодируются и передаются вместе), то версия с несколькими головками может работать для вас. Вы можете легко проверить это через graphedit. - person Basel; 06.04.2014
comment
когда я создаю 2 объекта VideoCapture, приложение не загружается. с одним работает - person or azran; 06.04.2014
comment
@or azran, я подозреваю, что проблема с распределением пропускной способности USB. не очень уверен, что это причина (обычно это касается 2 отдельных камер с отдельным USB-кабелем для каждой). Но все же, попробуйте. Некоторые способы решения этой проблемы: 1) поместите Sleep (мс) между строками вашей линии захвата. 2) Используйте более низкое разрешение, что уменьшит пропускную способность, используемую каждой камерой. 3) Используйте формат MJPEG (сжатые кадры). Если это сработает, дайте мне знать, чтобы я мог опубликовать это как ответ (: - person rockinfresh; 06.04.2014
comment
@or azran, можете ли вы подробно рассказать, почему назначение 2 объектов VideoCapture не работает? Вы пробовали восстанавливать разные каналы? Вы можете устранить проблему ограниченной пропускной способности, установив ширину/высоту на более низкое разрешение для обеих камер. - person Basel; 07.04.2014
comment
@Basel ширина/высота даже не выполнены, так что не стоит беспокоиться. - person or azran; 07.04.2014