Как подключиться к веб-камере на Java?

У меня есть форма, в которой я хочу захватить изображение человека и отобразить это изображение в форме.

Как я могу подключиться к веб-камере через Java и отобразить это изображение в форме?


person Neha Raje    schedule 22.05.2012    source источник


Ответы (3)


Вы можете использовать JavaCV для захвата изображения.

Этот код должен помочь вам начать работу (взято из здесь):

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

Другой альтернативой было бы использование Java Media Framework (JMF). Вы можете найти пример здесь.

person npinti    schedule 22.05.2012

Для этого вы можете использовать проект Webcam Capture. Он работает в Windows XP, Vista, 7, Linux, Mac OS, Raspberry Pi и других. Существует готовый к использованию компонент Swing, расширяющий JPanel, который можно использовать для отображения изображения с вашей веб-камеры. Вы можете найти этот пример для получения более подробной информации о том, как это можно сделать - здесь представлены некоторые расширенные возможности этого компонента, но основное использование будет следующим:

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

После запуска этого кода вы должны увидеть JFrame с изображением с веб-камеры внутри.

person Bartosz Firyn    schedule 07.02.2013

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

можно загрузить последнюю версию со страницы https://github.com/sarxos/webcam-capture

и добавьте другой файл библиотеки, который находится в zip-файле

person sarath    schedule 26.07.2013