Capturar imagen webcam en Python

Veamos un ejemplo de código de cómo capturar una imagen de la webcam con Python

Python tutorial

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