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

Crea y comparte diagramas de base de datos online

En este post les comparto una plataforma en línea diseñada para crear y compartir diagramas de flujo completamente grati[...]

Animación de personaje 3D

Animación basica de personaje en 3d utilizando el BIPED de 3d Studio Max[...]

Crear componentes en tiempo de ejecución con Netbeans

🙂 Una de las preguntas más buscadas por programadores java es la de crear componentes swing en tiempo de ejecución, eso[...]

Buscar dispositivos con Java Media Framework

Java Media Framwork ademas de permitir reproducir archivos multimedia, tambien permite trabajar con dispositivos de capt[...]

CODOTA: Programación Inteligente

La Inteligencia Artificial (AI – Artificial Intelligence) estará presente en casi cada aspecto de nuestra vida en[...]

GraphADT: Clases para trabajar con grafos en java

GraphADT es una proyecto alojado en github escrito en java que te permite trabajar con grafos, a la fecha de escribir es[...]