在Java中使用OpenCV从系统相机中拍摄快照
简介
OpenCV(开源计算机视觉库)是一个开源计算机视觉和机器学习软件库。它包含超过2500种优化算法,广泛应用于实时应用中。
Java 通过 JavaCV 库提供与 OpenCV 的绑定,允许 Java 开发人员在其应用程序中利用 OpenCV 的功能。此类应用程序之一是从网络摄像头捕获图像。
先决条件
要继续操作,您需要具备以下条件 -
您的系统上已安装 OpenCV。
JavaCV,Java 中 OpenCV 的包装器。
使用 OpenCV 捕获快照
要捕获快照,我们需要创建 VideoCapture 类的实例,它代表视频捕获设备。然后我们可以使用 read 方法从视频源中捕获帧。
示例
让我们看一个例子 -
import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.videoio.VideoCapture; import org.opencv.imgcodecs.Imgcodecs; public class Main { static { System.loadLibrary(Core.NATIVE_LIBRARY_NAME); } public static void main(String[] args) { // Create a VideoCapture object VideoCapture camera = new VideoCapture(0); // Check if camera opened successfully if(!camera.isOpened()){ System.out.println("Error: Camera not accessible"); return; } // Capture a new frame Mat frame = new Mat(); camera.read(frame); // Save the frame as an image Imgcodecs.imwrite("snapshot.png", frame); // Release the camera camera.release(); } } 登录后复制