Cómo tomar fotografías desde la webcam usando Python con opencv y PySimpleGUI

En este tutorial te enseñaremos a programar una cámara que te permita observar y tomar fotografías de tu webcam. Además aprenderás a usar opencv para procesos de visión artificial y además a construir interfaces gráficas sencillas con PySimpleGUI

Al final del tutorial podrías descargar el código fuente del programa. Vamos adelante:

Iniciamos importando las librerías necesarias: 

datetime viene incluido desde la instalación de Python. Si no tienes instalado Opencv puedes hacerlo con el comando pip install opencv-python.

Para usar PySimpleGUI también puedes instalarlo con PIP, pero no será necesario ya que en los archivos del código estoy incluyendo un archivo .py que contiene toda la librería de PySimpleGUI.

Ahora, debemos obtener acceso a nuestra webcam, lo haremos usando Opencv, donde el método VideoCapture recibe como parámetro el id de la cámara destino, en este caso la webcam.

Una vez lista la conexión a la webcam, podemos definir un diseño sencillo. Agregamos un elemento de tipo imagen la cual mostrara el video de la webcam y un par de botones para tomar fotografía y salir del programa.

La variable image_elem nos permitirá actualizar su contenido conforme vayamos obteniendo video de la webcam.


Descargar código fuente

Para empezar a obtener video de la cámara lo haremos a través de un ciclo while, el cual se repetirá mientras la cámara se encuentre abierta. Conforme el ciclo while avance leeremos los cambios que ocurran en la interfaz gráfica. Si el usuario da clic al botón “Exit” saldremos del ciclo while y terminaremos la ejecución del programa.

Si  se da clic al botón “Tomar Fotografia” se ejecutara una ventana emergente que solicitara una carpeta destino para almacenar la fotografía. Usando método imwrite podremos almacenar la imagen capturada en la ruta elegida, con el nombre de la fecha actual.


Si no ocurre ningún clic actualizaremos la interfaz grafica con el video proveniente de la webcam, para ello debemos convertir el frame de video a un tipo bytes, de este modo sera compatible con la interfaz. Seguido de esto, actualizaremos el elemento image_elem con el frame convertido a bytes.

Y finalmente mandamos a llamar el método Main para ejecutar el programa. También puedes hacerlo desde consola con el comando python cámara.py

El programa final debe mostrar el vídeo de la webcam y permitirnos tomar fotografías

Si quieres descargar el código fuente y apoyarnos para traerte más tutoriales, da click aqui

2 comentarios de “Cómo tomar fotografías desde la webcam usando Python con opencv y PySimpleGUI”

  1. Muy bueno nada mas una pregunta si tengo un formulario como dibujo un cuadro junto al formulario para tomar esa foto? GRACIAS

Deja un comentario