Подтвердить что ты не робот

Как получить доступ к моей веб-камере в Python?

Я хотел бы получить доступ к своей веб-камере из Python.

Я попытался использовать расширение VideoCapture (учебник), но для меня это не сработало, мне пришлось немного поработать над некоторыми проблемами, например, немного медленными с разрешением > 320x230, и иногда он возвращает None без видимых причин.

Есть ли лучший способ получить доступ к моей веб-камере с Python?

4b9b3361

Ответ 1

OpenCV поддерживает получение данных с веб-камеры, и по умолчанию поставляется с оболочкой Python, также необходимо установить numpy чтобы cv2 расширение Python OpenCV (называемое cv2). С 2019 года вы можете установить обе эти библиотеки с помощью pip: pip install numpy pip install opencv-python

Больше информации об использовании OpenCV с Python.

Пример, скопированный с показа веб-канала с использованием opencv и python:

import cv2

cv2.namedWindow("preview")
vc = cv2.VideoCapture(0)

if vc.isOpened(): # try to get the first frame
    rval, frame = vc.read()
else:
    rval = False

while rval:
    cv2.imshow("preview", frame)
    rval, frame = vc.read()
    key = cv2.waitKey(20)
    if key == 27: # exit on ESC
        break
cv2.destroyWindow("preview")

Ответ 2

Это должен был быть комментарий к @John Montgomery, но мой представитель не позволяет мне комментировать. Ваш ответ велик, но, по крайней мере, в Windows отсутствует строка

vc.release()

перед

cv2.destroyWindow("preview")

Без этого ресурс камеры заблокирован и не может быть захвачен еще до того, как будет запущена консоль python.

Ответ 3

gstreamer может обрабатывать ввод веб-камеры. Если я хорошо помню, для него есть привязки python!

Ответ 4

Единственное, что я использовал, это VideoCapture, о котором вы уже говорили, что вам не нравится (хотя у меня не было проблем с этим, с какими ошибками вы столкнулись?)

Мне не удалось найти альтернативы в прошлом или сейчас, так что вы можете застрять либо с помощью VideoCapture, либо найти красивую библиотеку C и написать для нее оболочку Python (что может быть больше работы, чем вы готовы положить в него).