Как получить доступ к моей веб-камере в Python?
Я хотел бы получить доступ к своей веб-камере из Python.
Я попытался использовать расширение VideoCapture (учебник), но для меня это не сработало, мне пришлось немного поработать над некоторыми проблемами, например, немного медленными с разрешением > 320x230, и иногда он возвращает None
без видимых причин.
Есть ли лучший способ получить доступ к моей веб-камере с Python?
Ответы
Ответ 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 (что может быть больше работы, чем вы готовы положить в него).