Pergunta

Tenho um formulário no qual quero capturar a imagem da pessoa e exibir essa imagem no formulário.

Como posso me conectar à webcam através de java e exibir essa imagem no formulário?

Foi útil?

Solução

Você poderia usar JavaCV para capturar a imagem.

Este código deve ajudá-lo a começar (retirado de aqui):

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) {
        }
    }
}

Outra alternativa seria usar o Java Media Framework (JMF).Você pode encontrar um exemplo aqui.

Outras dicas

Você pode usar Captura de webcam projeto para fazer isso.Está funcionando em Windows XP, Vista, 7, Linux, Mac OS, Raspberry Pi e muito mais.Existe um componente Swing pronto para uso que estende o JPanel que pode ser usado para exibir imagens da sua webcam.Por favor, encontre este exemplo para mais detalhes de como isso pode ser feito - apresenta algumas capacidades avançadas deste componente, mas o uso básico seria o seguinte:

JFrame window = new JFrame("Test webcam panel");
window.add(new WebcamPanel(Webcam.getDefault()));
window.pack();
window.setVisible(true);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Depois de executar este código você deverá ver o JFrame com a imagem da sua webcam dentro.

Webcam.setAutoOpenMode(true);
BufferedImage image = Webcam.getDefault().getImage();
ImageIO.write(image, "PNG", new File("F:/test.png"));

pode baixar a versão mais recente em https://github.com/sarxos/webcam-capture

e adicione outro arquivo de biblioteca que está no arquivo zip

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top