2012-05-22 60 views
3

我有一個窗體,我想要捕捉人的圖像並在窗體中顯示該圖像。如何連接到Java攝像頭?

如何通過java連接到攝像頭並在窗體中顯示該圖像?

+0

http://stackoverflow.com/questions/2004405/how-to-capture-video -from-webcamin-java –

+1

http://stackoverflow.com/questions/276292/capturing-image-from-webcam-in-java – PeterMmm

回答

4

您可以使用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與圖像的攝像頭裏面。

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

可以從https://github.com/sarxos/webcam-capture

下載最新版本,並添加其他庫文件,在zip文件

相關問題