Я пытаюсь создать 3 кадры захвата в реальном времени с веб-камерами в USB-концентратор в свой ноутбук. Используя приложение "камера" в Windows, я могу изменить источник камеры по одному и подтвердить, что все 3 веб-камеры работают. Однако мой код OpenCV Python может найти только два.
(Быстрые примечания на USB - это USB 3.0-концентратор, порт для ноутбука - USB 3, и у меня даже есть активный кабель USB-to-male, идущий в ноутбук, поэтому, учитывая это и приложение Windows, я, как правило, доверяю аппаратное обеспечение.)
Ниже я провел некоторое сырое тестирование cv2.VideoCapture(src)
с приведенными ниже результатами:
cams_test = 10
for i in range(0, cams_test):
cap = cv2.VideoCapture(i)
test, frame = cap.read()
print("i : "+str(i)+" /// result: "+str(test))
Этот первый аргумент, test
, возвращает True/False в зависимости от того, можно ли считать кадр. Результаты:
i : 0 /// result: True
i : 1 /// result: True
i : 2 /// result: False
i : 3 /// result: False
i : 4 /// result: False
i : 5 /// result: False
i : 6 /// result: False
i : 7 /// result: False
i : 8 /// result: False
i : 9 /// result: False
Как и в случае с другим примером кода, который я тестировал, можно зарегистрировать только 2 веб-камеры и показать кадры в Python. И приложение для камеры Windows 10 позволяет мне прокручивать все 3 рабочих и связанных веб-камеры.
Я знаю, что могу создать несколько, например 3+, cv2.imshow()
кадров, если я использую cap
которая работает. Мой проект включает в себя выполнение этого, чтобы показать в реальном времени USB-камеры веб-камеры на ноутбуке с нескольких камер.
Любая помощь и советы оцениваются; также потенциально заинтересованы в альтернативных решениях на основе Python. Приветствия.