Как мне получить доступ к моей веб-камере в Python? - PullRequest
53 голосов
/ 03 марта 2009

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

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

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

Ответы [ 4 ]

49 голосов
/ 03 марта 2009

OpenCV поддерживает получение данных с веб-камеры, и по умолчанию поставляется с оболочками Python, вам также нужно установить numpy для расширения OpenCV Python (называемого 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")
10 голосов
/ 19 мая 2016

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

vc.release()

до

cv2.destroyWindow("preview")

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

1 голос
/ 03 марта 2009

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

0 голосов
/ 03 марта 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...