【问题标题】:How to connect to webcam in Java?如何在 Java 中连接到网络摄像头?
【发布时间】:2012-05-22 06:07:13
【问题描述】:

我有一个表单,我想在其中捕获人的图像并在表单中显示该图像。

如何通过 java 连接到网络摄像头并在表单中显示该图像?

【问题讨论】:

标签: java webcam hardware-interface


【解决方案1】:

您可以使用JavaCV 来捕获图像。

这段代码应该可以帮助您入门(取自here):

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 媒体框架 (JMF)。你可以找到一个例子here

【讨论】:

    【解决方案2】:

    您可以使用Webcam Capture 项目来执行此操作。它适用于 Windows XP、Vista、7、Linux、Mac OS、Raspberry Pi 等。有一个现成的 Swing 组件扩展了 JPanel,可用于显示来自网络摄像头的图像。请找到this example 了解更多详细信息 - 它展示了该组件的一些高级功能,但基本用法如下:

    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,其中包含来自网络摄像头的图像。

    【讨论】:

      【解决方案3】:
      Webcam.setAutoOpenMode(true);
      BufferedImage image = Webcam.getDefault().getImage();
      ImageIO.write(image, "PNG", new File("F:/test.png"));
      

      可以从https://github.com/sarxos/webcam-capture下载最新版本

      并在 zip 文件中添加其他库文件

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-11
        • 2012-12-20
        • 1970-01-01
        • 2021-10-02
        • 1970-01-01
        • 2015-01-20
        • 1970-01-01
        相关资源
        最近更新 更多