Panama Hitek Logo
Panama Hitek Logo

Visualizar la Webcam en un Panel en Java

Hoy traigo para ustedes un breve aporte sobre como visualizar un video tomado en tiempo real por nuestra webcam en un Panel dentro de una ventana en Java.

Utilizaremos un API que facilita mucho esta tarea: webcam-capture (ver en Github). Estoy trabajando en un proyecto donde necesito capturar imágenes de una webcam en tiempo real y este API me pareció simplemente maravillos. No es complicado en lo absoluto y la programación de una  interfaz con las imágenes capturadas por nuestra webcam es cuestión de solo unos minutos.

Veamos cómo lograrlo.

Creación de proyecto Maven

Maven es simplemente fabuloso. Recomiendo leer el siguiente artículo:

Vamos a Netbeans y creamos un proyecto Maven.

visualizar webcam en un panel

 

Lo llamaremos webcam_test.

En nuestro archivo pom.xml definimos las siguientes dependencias:

Hacemos clic derecho sobre nuestro proyecto y le damos clic en «Clean and Build».

visualizar webcam en un panelCon esto se descargará automáticamente todos los archivos necesarios (dependencias) para lograr lo que queremos.

visualizar webcam en un panel

 

Ahora creamos 2 clases, una que llamaremos webcam_test que no hará más nada que iniciar nuestra ventana cuando se ejecute el programa. La otra ventana será un JFrame que llamaremos JFrameWindow.

visualizar webcam en un panel

 

El código de la clase webcam_test es el siguiente:

Esto hará que al darle «play» a nuestra aplicación, se abra la ventana que por ahora no contiene nada.

En nuestro JFrame agregamos un JPanel que llamaremos jPanelCamera. Tenemos que declarar algunas variables como globales:

A continuación el código que permitirá visualizar las imágenes de nuestra webcam (lo colocaremos en el constructor del JFrame):

Nuestro código debe lucir así:

visualizar webcam en un panel

 

Cuando ejecutamos el código, el resultado debe ser el siguiente:

visualizar webcam en un panel

 

Justo lo que queremos, fácil y rápido.  Ahora vamos a agregarle una pequeña función: capturar la imagen en un momento dado.

Agregamos un botón con la siguiente programación:

La interfaz luciría así:

visualizar webcam en un panel

 

Cuando se ejecuta:

visualizar webcam en un panelAl presionar el botón de «Capturar Imagen» verificamos la ruta en la cual se encuentra nuestro proyecto de Netbeans guardado y veremos lo siguiente:

visualizar webcam en un panelSi abrimos el fichero webcam_test.png veremos:

visualizar webcam en un panel

 

Los archivos de este proyecto se encuentran en nuestro repositorio de Github. Espero que la información suministrada sea de utilidad para ustedes.

Saludos.

 

 

 

Antony García González
Antony García González
Ingeniero Electromecánico, egresado de la Universidad Tecnológica de Panamá. Miembro fundador de Panama Hitek. Entusiasta de la electrónica y la programación.

Posts relacionados

11 COMENTARIOS

  1. Hola, qué tal. Revisé el código y funciona muy bien. Pero tengo una duda.

    Si quisiera mostrar la imagen capturada en otro JPanel y que éste cambiara conforme tomo una nueva foto (y se sustituyera la anterior) cómo tendría que hacerlo?

    He intentado utilizando el método de JPanel «updateImage», agregando un Jlabel y asignando un ícono al JLabel (sí muestra la imagen, pero no la actualiza si tomo más fotos).

  2. Hola, excelente post, tengo una duda y problema quisiera poder escoger la camara que controlare es decir si utilizo la herramienta para tomar fotografias para almacenarlas en la ficha de personal por ejemplo

  3. Hola, una pregunta.
    Cuando ejecuto el código me aparece este error:

    Failed to execute goal on project webcam_test: Could not resolve dependencies for project com.mycompany:webcam_test:jar:1.0-SNAPSHOT: Could not find artifact com.github.sarxos:webcam-capture:jar:0.3.11-SNAPSHOT -> [Help 1]

    To see the full stack trace of the errors, re-run Maven with the -e switch.
    Re-run Maven using the -X switch to enable full debug logging.

    For more information about the errors and possible solutions, please read the following articles:
    [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

    De casualidad sabes que está pasando?

  4. Hola buenas ha sido de gran utilidad esta explicación. Sin embargo me gustaría saber si puedo establecer la ruta en la que guardo la imagen? espero puedas leerme gracias

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí

Post relacionados