from - ¿Cómo accedo a mi webcam en Python?
save video opencv python (4)
Me gustaría acceder a mi cámara web desde Python.
Intenté usar la extensión VideoCapture ( tutorial ), pero eso no me funcionó muy bien, tuve que solucionar algunos problemas, como que es un poco lento con resoluciones> 320x230, y algunas veces no devuelve None
por ninguna razón aparente.
¿Hay una mejor manera de acceder a mi cámara web desde Python?
El único que he usado es VideoCapture, que ya mencionaste que no te gusta (aunque no tuve problemas con él; ¿con qué errores te encontraste?)
No pude encontrar ninguna alternativa en el pasado o en el presente, por lo que podría quedarse atascado usando VideoCapture o encontrando una buena biblioteca en C y escribiendo un contenedor de Python para ella (lo que puede ser más trabajo del que está dispuesto a poner en ella). ).
Esto debería haber sido un comentario para @John Montgomery, pero mi representante no me permite hacer comentarios. Su respuesta es excelente, pero al menos en Windows, falta la línea.
vc.release()
antes de
cv2.destroyWindow("preview")
Sin ella, el recurso de la cámara está bloqueado y no se puede volver a capturar antes de que se destruya la consola de Python.
OpenCV tiene soporte para obtener datos de una cámara web, y viene con los envoltorios de Python de manera predeterminada, también necesita instalar numpy
para que numpy
la extensión OpenCV de Python (llamada cv2
).
En el momento de escribir este artículo (enero de 2015) aún no hay compatibilidad con Python 3, por lo que debe usar Python 2.
Más información sobre el uso de OpenCV con Python .
Un ejemplo copiado de Visualización de la fuente de la cámara web usando opencv y 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")
gstreamer puede manejar la entrada de webcam. Si me acuerdo bien, hay enlaces de python para ello!