diff --git a/image-processing/pom.xml b/image-processing/pom.xml index ea218356ce..b482aa30c1 100644 --- a/image-processing/pom.xml +++ b/image-processing/pom.xml @@ -82,6 +82,17 @@ MarvinPlugins ${marvin-version} + + org.bytedeco + javacv-platform + ${javacv-platform.version} + + + com.github.sarxos + webcam-capture + ${webcam-capture.version} + + @@ -91,6 +102,8 @@ 4.5.1 4.1.0-1.5.2 3.4.2-0 + 1.5.5 + 0.3.12 4.2 0.4.11 1.5.5 diff --git a/image-processing/src/main/java/com/baeldung/imagefromwebcam/MarvinExample.java b/image-processing/src/main/java/com/baeldung/imagefromwebcam/MarvinExample.java new file mode 100644 index 0000000000..67a46d9d59 --- /dev/null +++ b/image-processing/src/main/java/com/baeldung/imagefromwebcam/MarvinExample.java @@ -0,0 +1,31 @@ +package com.baeldung.imagefromwebcam; + +import marvin.gui.MarvinImagePanel; +import marvin.image.MarvinImage; +import marvin.io.MarvinImageIO; +import marvin.video.MarvinJavaCVAdapter; +import marvin.video.MarvinVideoInterface; +import marvin.video.MarvinVideoInterfaceException; + +public class MarvinExample { + + public static void main(String[] args) throws MarvinVideoInterfaceException { + MarvinVideoInterface videoAdapter = new MarvinJavaCVAdapter(); + videoAdapter.connect(0); + MarvinImage image = videoAdapter.getFrame(); + MarvinImageIO.saveImage(image, "selfie.jpg"); + } + + public void captureWithPanel() throws MarvinVideoInterfaceException { + MarvinVideoInterface videoAdapter = new MarvinJavaCVAdapter(); + videoAdapter.connect(0); + MarvinImage image = videoAdapter.getFrame(); + + MarvinImagePanel imagePanel = new MarvinImagePanel(); + imagePanel.setImage(image); + + imagePanel.setSize(800,600); + imagePanel.setVisible(true); + } + +} diff --git a/image-processing/src/main/java/com/baeldung/imagefromwebcam/OpenCVExample.java b/image-processing/src/main/java/com/baeldung/imagefromwebcam/OpenCVExample.java new file mode 100644 index 0000000000..3d9d1bcb00 --- /dev/null +++ b/image-processing/src/main/java/com/baeldung/imagefromwebcam/OpenCVExample.java @@ -0,0 +1,31 @@ +package com.baeldung.imagefromwebcam; + +import org.bytedeco.javacv.*; +import org.bytedeco.opencv.opencv_core.IplImage; +import java.awt.event.WindowEvent; +import javax.swing.JFrame; +import static org.bytedeco.opencv.helper.opencv_imgcodecs.cvSaveImage; + +public class OpenCVExample { + + public static void main(String[] args) throws Exception { + CanvasFrame canvas = new CanvasFrame("Web Cam"); + canvas.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + FrameGrabber grabber = new OpenCVFrameGrabber(0); + OpenCVFrameConverter.ToIplImage converter = new OpenCVFrameConverter.ToIplImage(); + + grabber.start(); + Frame frame = grabber.grab(); + + IplImage img = converter.convert(frame); + cvSaveImage("selfie.jpg", img); + + canvas.showImage(frame); + + Thread.sleep(2000); + + canvas.dispatchEvent(new WindowEvent(canvas, WindowEvent.WINDOW_CLOSING)); + } + +} diff --git a/image-processing/src/main/java/com/baeldung/imagefromwebcam/WebcamCaptureExample.java b/image-processing/src/main/java/com/baeldung/imagefromwebcam/WebcamCaptureExample.java new file mode 100644 index 0000000000..8edde2a637 --- /dev/null +++ b/image-processing/src/main/java/com/baeldung/imagefromwebcam/WebcamCaptureExample.java @@ -0,0 +1,41 @@ +package com.baeldung.imagefromwebcam; + +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; + +import javax.imageio.ImageIO; +import javax.swing.JFrame; + +import com.github.sarxos.webcam.Webcam; +import com.github.sarxos.webcam.WebcamPanel; +import com.github.sarxos.webcam.WebcamResolution; +import com.github.sarxos.webcam.util.ImageUtils; + +public class WebcamCaptureExample { + + public static void main(String[] args) throws IOException, Exception { + Webcam webcam = Webcam.getDefault(); + webcam.open(); + + BufferedImage image = webcam.getImage(); + + ImageIO.write(image, ImageUtils.FORMAT_JPG, new File("selfie.jpg")); + } + + public void captureWithPanel() { + Webcam webcam = Webcam.getDefault(); + webcam.setViewSize(WebcamResolution.VGA.getSize()); + + WebcamPanel panel = new WebcamPanel(webcam); + panel.setImageSizeDisplayed(true); + + JFrame window = new JFrame("Webcam"); + window.add(panel); + window.setResizable(true); + window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + window.pack(); + window.setVisible(true); + } + +}