我就不巴拉巴拉一大堆了,具体实现方法
导入maven依赖
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>javacv-platform</artifactId>
<version>1.4.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.bytedeco.javacpp-presets/opencv-platform -->
<dependency>
<groupId>org.bytedeco.javacpp-presets</groupId>
<artifactId>opencv-platform</artifactId>
<version>3.4.1-1.4.1</version>
</dependency>
先打开设备访问权限
然后直接上代码,非常简单,懒得解释自己看
import javax.swing.WindowConstants;
import org.bytedeco.javacv.*;
import org.junit.Test;
public class Opencv {
@Test
public void testCamera() throws InterruptedException, FrameGrabber.Exception {
OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(0);
grabber.start(); //开始获取摄像头数据
CanvasFrame canvas = new CanvasFrame("摄像头窗口");//新建一个窗口
canvas.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
canvas.setAlwaysOnTop(true);
while (true) {
Frame frame = grabber.grab();
canvas.showImage(frame); //获取摄像头图像并放到窗口上显示, 这里的Frame frame=grabber.grab(); frame是一帧视频图像
Thread.sleep(50); //50毫秒刷新一次图像
}
}
}
跑起来效果图
直接用就行,后续内容提个思路,打包成方法,处理一下视频流,比如做个特征集实现人脸识别