在本章中,我们将学习如何使用OpenCV使用系统摄像头捕获帧。org.opencv.videoio包中的VideoCapture类包含使用相机捕获视频的类和方法。下面来一步一步学习如何捕捉帧 -
第1步:加载OpenCV本机库
在使用OpenCV库编写Java代码时,使用loadLibrary()加载OpenCV本地库。加载OpenCV本机库,如下所示 -
// Loading the core library
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
第2步:实例化视频捕获类
使用本教程前面提到的函数来实例化Mat类。
// Instantiating the VideoCapture class (camera:: 0)
VideoCapture capture = new VideoCapture(0);
第3步:阅取帧
可以使用VideoCapture类的read()方法从相机读取帧。此方法接受类Mat的对象来存储读取的帧。
// Reading the next video frame from the camera
Mat matrix = new Mat();
capture.read(matrix);
示例
以下程序演示如何使用相机捕捉帧并使用JavaFX窗口显示。它也保存捕获的帧。
package com.yiibai.cameraface;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferByte;
import java.awt.image.WritableRaster;
import