Comment se connecter à webcam en Java?
-
12-12-2019 - |
Question
J'ai une forme dans laquelle je veux capturer l'image de la personne et afficher cette image sous la forme.
Comment puis-je me connecter à la webcam via Java et afficher cette image sous la forme?
La solution
Vous pouvez utiliser Javacv pour capturer l'image.
Ce code devrait vous aider à démarrer (pris de ici ):
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) {
}
}
}
Une autre alternative serait d'utiliser le cadre de média Java ( JMF ).Vous pouvez trouver un exemple ici .
Autres conseils
Vous pouvez utiliser Projet Webcam Capture pour le faire.Cela fonctionne sur Windows XP, Vista, 7, Linux, Mac OS, Raspberry Pi et plus.Il existe un composant pivotant prêt à l'emploi extension JPANEL qui peut être utilisé pour afficher l'image de votre webcam.S'il vous plaît trouver Cet exemple Pour plus de détails sur la manière dont cela peut être fait - il présente quelques capacités avancées de ce composant, mais l'utilisation de base serait la suivante:
JFrame window = new JFrame("Test webcam panel");
window.add(new WebcamPanel(Webcam.getDefault()));
window.pack();
window.setVisible(true);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Après avoir exécuté ce code, vous devriez voir jframe avec une image de votre webcam à l'intérieur.
Webcam.setAutoOpenMode(true);
BufferedImage image = Webcam.getDefault().getImage();
ImageIO.write(image, "PNG", new File("F:/test.png"));
peut télécharger la dernière version de https://github.com/sarxos/webcam-capture
et ajoutez d'autres fichiers de bibliothèque dans le fichier zip