¿Cómo conectarse a la webcam en Java?
-
12-12-2019 - |
Pregunta
Tengo un formulario en el que quiero capturar la imagen de la persona y mostrar esa imagen en el formulario.
¿Cómo puedo conectarme a la cámara web a través de Java y mostrar esa imagen en el formulario?
Solución
Podría usarla javacv para capturar la imagen.
Este código debe comenzar (tomado de aquí ):
import com.googlecode.javacv.CanvasFrame;
import com.googlecode.javacv.FrameGrabber;
import com.googlecode.javacv.VideoInputFrameGrabber;
import com.googlecode.javacv.cpp.opencv_core.IplImage;
public class GrabberShow implements Runnable {
//final int INTERVAL=1000;///you may use interval
IplImage image;
CanvasFrame canvas = new CanvasFrame("Web Cam");
public GrabberShow() {
canvas.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
}
@Override
public void run() {
FrameGrabber grabber = new VideoInputFrameGrabber(0);
int i=0;
try {
grabber.start();
IplImage img;
while (true) {
img = grabber.grab();
if (img != null) {
cvFlip(img, img, 1);// l-r = 90_degrees_steps_anti_clockwise
cvSaveImage((i++)+"-capture.jpg", img);
// show image on window
canvas.showImage(img);
}
//Thread.sleep(INTERVAL);
}
} catch (Exception e) {
}
}
}
Otra alternativa sería usar el Marco de Medios Java ( JMF ).Puede encontrar un ejemplo aquí .
Otros consejos
Puede usar Captura de cámara web Proyecto para hacerlo.Está trabajando en Windows XP, Vista, 7, Linux, Mac OS, Raspberry Pi y más.Hay un componente de giro listo para usar que se extiende a JPanel que se puede usar para mostrar la imagen de su cámara web.Encontré este ejemplo Para obtener más detalles sobre cómo se puede hacer esto, presenta algunas capacidades avanzadas de este componente, pero el uso básico sería el siguiente:
JFrame window = new JFrame("Test webcam panel");
window.add(new WebcamPanel(Webcam.getDefault()));
window.pack();
window.setVisible(true);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Después de ejecutar este código, debe ver JFRAME con la imagen de su webcam dentro.
Webcam.setAutoOpenMode(true);
BufferedImage image = Webcam.getDefault().getImage();
ImageIO.write(image, "PNG", new File("F:/test.png"));
Puede descargar la última versión de https://github.com/sarxos/webcam-capture
y agregue otro archivo de la biblioteca que en el archivo zip