人の画像をキャプチャし、その画像をフォームに表示したいフォームがあります。
Java を介して Web カメラに接続し、その画像をフォームに表示するにはどうすればよいですか?
人の画像をキャプチャし、その画像をフォームに表示したいフォームがあります。
Java を介して Web カメラに接続し、その画像をフォームに表示するにはどうすればよいですか?
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) {
}
}
}
Webcam Captureプロジェクトを使用してそれを行うことができます。Windows XP、Vista、7、Linux、Mac OS、Raspberry Pi などで動作します。ウェブカメラから画像を表示するために使用できる JPanel を拡張する、すぐに使用できる Swing コンポーネントがあります。これを行う方法の詳細については、この例を見つけてください。このコンポーネントの高度な機能を示していますが、基本的な使用法は次のとおりです。
JFrame window = new JFrame("Test webcam panel");
window.add(new WebcamPanel(Webcam.getDefault()));
window.pack();
window.setVisible(true);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
このコードを実行すると、内部に Web カメラからの画像を含む JFrame が表示されます。
Webcam.setAutoOpenMode(true);
BufferedImage image = Webcam.getDefault().getImage();
ImageIO.write(image, "PNG", new File("F:/test.png"));
https://github.com/sarxos/webcam-captureから最新バージョンをダウンロードできます
zipファイルに含まれる他のライブラリファイルを追加します