Capturar imagen webcam en Python
Veamos un ejemplo de código de cómo capturar una imagen de la webcam con Python
La idea
El objetivo de este código en Python, es poder poner un objeto delante de la webcamp, y hacer una captura en forma de imagen, para después, poderla trabajar.
Ya avisamos, que la calidad depende mucho de la webcam, de la luz y de si el objeto está o no en movimiento. Pero para empezar a darnos una idea, este ejemplo es un buen inicio.
La librería Open CV
Lo primero que necesitamos es la librería que nos permitirá hacer la captura. Esa librería es OpenCV-python.
Deberemos instalarla desde consola:
pip install opencv-python
Con la instalación de esta librería, ya estamos preparados para crear nuestra función que captura la imagen.
La otra librería a instalar, y es opcional, es la que permite realizar operaciones matemáticas, y que utilizaremos para aplicar brillo a la imagen
pip install numpy
Captura webcam con Python
Veamos el código necesario
La importación de la librería en nuestro fichero python:
import cv2 // Para capturar imagen
import numpy as np // Para hacer operaciones matemáticas (aplicar brillo a imagen)
La función que captura la imagen:
def fnGetWebcam(imagenPNG="imagen"):
# Inicializar la càmera
cap = cv2.VideoCapture(0) # 0 indica la primera cámara disponible, puede variar
# Capturar una imagen
ret, frame = cap.read()
# Aumentamos brillo
increment_brillantor = 30
frame_brillant = cv2.addWeighted(frame, 1 + increment_brillantor / 100, np.zeros_like(frame), 0, 0)
# Guardar imagen
cv2.imwrite(imagenPNG +'.png', frame_brillant, [int(cv2.IMWRITE_PNG_COMPRESSION), 0])
# Liberar recursos
cap.release()
A partir de aquí, podéis cambiar el código para grabar la imagen en otro formato, JPG por ejemplo, o quitar la opción de darle más o menos brillo a la captura. En mi caso, añadí la opción de subir un 30% el brillo, porque todas las capturas que hacía, quedaban muy oscuras.
Espero que este ejemplo os pacilite el capturar una imagen de vuestra webcam con Python.
Más información