Камера cv2 python

Можно ли сделать как-то проверку через cv2 на наличие камеры.

Просто я хочу сделать условие, если камера есть = делать одно, но если её нет - другое


Ответы (1 шт):

Автор решения: Dmitry

Имеется ответ на enSO, который решает вашу проблему.

Сама функция проверки выглядит так

import cv2

def returnCameraIndexes():
    # checks the first 10 indexes.
    index = 0
    arr = []
    i = 10
    while i > 0:
        cap = cv2.VideoCapture(index)
        if cap.read()[0]:
            arr.append(index)
            cap.release()
        index += 1
        i -= 1
    return arr

cams = returnCameraIndexes()

Функция проверяет первые 10 индексов и возвращает доступные. Тестировал на Win10 pro.

Результат => возвращен лист [0, 1]. Нулевой индекс - встроенная камера, первый - внешняя.

Логично предположить, что пустой лист будет означать отсутствие камеры, можно проверить и написать логику

if cams:
    # действия при наличии камеры
    pass
else:
    # действия при ее отсутствии
    pass
→ Ссылка