Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Java / API completo y ligero para el uso de webcams desde java

API completo y ligero para el uso de webcams desde java

Por jc mouse martes, septiembre 10, 2019

Webcam Capture es un API  que permite usar una cámara web incorporada o externa directamente desde código Java utilizando para ello solo las bibliotecas proporcionadas, los usuarios pueden leer imágenes desde una webcam e incluso detectar el movimiento. Está diseñado para abstraer las características de la cámara de uso común y admite múltiples frameworks de captura.

Webcam Capture API fue desarrollado por el ingeniero de software polaco Bartosz Firyn (sarxos) en primera instancia como una prueba de concepto después de leer el libro de Andrew Davison titulado «Killer Game Programming»  luego sarxos decidió escribir un contenedor de propósito general para diferentes API (como JMF, OpenCV, OpenIMAJ, LTI-CIVIL, VLC) y el resultado fue la biblioteca que se menciona en este post. Webcam Captura esta bajo un Copyright (C) 2011 – 2014 Bartosz Firyn and contributors que se puede leer a detalle en la página del proyecto (http://webcam-capture.sarxos.pl/)

Características:

  • API simple, segura para subprocesos y sin bloqueo
  • No requiere software adicional
  • Multiplataforma (Windows, Linux, Mac OS, etc.) y varias arquitecturas (32 bits, 64 bits, ARM)
  • Capture imágenes de cámaras web de PC incorporadas o conectadas por dispositovos USB
  • Capture imágenes de cámaras IP / de red (como MJPEG o JPEG)
  • Detector de movimiento
  • Disponible en Maven Central o como binario ZIP independiente
  • Admite múltiples frameworks de captura: OpenIMAJ, LTI CIVIL, Java Media Framework (JMF), Freedom for Media in Java (FMJ), OpenCV via JavaCV, VLC via vlcj, GStreamer (0.10.x only) via gstreamer-java MJPEG IP Cameras

¿Qué se puede hacer con esta API?

Webcam Capture se destaca por su facilidad de implementación, por ejemplo a continuación se muestra el código necesario del clásico «Hola Mundo», en este caso, para tomar una captura de la webcam y guardar esta en disco.

Webcam webcam = Webcam.getDefault();
webcam.open();
ImageIO.write(webcam.getImage(), "PNG", new File("hello-world.png"));

Webcam Capture nos proporciona una variada selección de códigos de ejemplo

  • Cómo detectar la cámara web
  • Cómo tomar una foto y guardarla en un archivo
  • Cómo mostrar la imagen de la cámara web en un panel Swing
  • Cómo escuchar en eventos de conexión / desconexión de la cámara
  • Cómo configurar la resolución de captura
  • Cómo configurar una resolución de captura no estándar
  • Cómo guardar la imagen capturada en PNG / JPG / GIF / BMP, etc.
  • Cómo capturar con muchos hilos paralelos
  • Cómo detectar movimiento
  • Cómo mostrar imágenes de múltiples cámaras IP exponiendo imágenes en formato JPG
  • Cómo mostrar la imagen de la cámara IP exponiendo la transmisión MJPEG
  • Cómo usar el controlador compuesto para mostrar imágenes de cámara IP incorporadas

Y también se  incluye ejemplos más avanzados como:

reconocimiento facial

lectura de código QR

webcams con javafx

  • Cómo usar la API de captura de cámara web en JavaFX y FXML
  • Cómo usar la API de captura de cámara web en SWT
  • Cómo usar WebcamImageTransformer para dibujar efectos directamente en la imagen de la cámara

enjoy!

Tags

Artículos similares

¿Como paginar con Laravel 11?

Se utiliza la paginación para poder mostrar al usuario una gran cantidad de datos de una forma ordenada en forma de «pag[...]

Conexión a múltiples bases de datos en Laravel

En este tutorial conoceremos una forma de conectar una aplicación en Laravel con tres bases de datos diferentes, 2 en My[...]

Radio.Garden .:. La web donde puedes escuchar Radios de todo el mundo

Radio.Garden es un proyecto interactivo desarrollado por el Instituto Holandés para el Sonido y la Visión en cooperación[...]

Encriptación por el método bífido

El método Bífido es un cifrado fraccionario. Es decir que cada letra viene representada por una o más letras o símbolos,[...]

Minimizar aplicación al SystemTray/Bandeja del Sistema

El SystemTray/Bandeja del Sistema o como también se le llama «Área de Notificación» es la sección de la barra de tareas[...]

Consultas con parámetros en Access y Java

Tenemos un archivo de base de datos Access *.MDB y queremos realizar una consulta con parámetros de búsqueda utilizando[...]