From f00ffff3206c9a72b19929f305cc57377cb7f3af Mon Sep 17 00:00:00 2001 From: JoeAllen <2494136784@qq.com> Date: Fri, 29 Jul 2022 10:45:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A1=8C=E9=9D=A2=E6=98=BE=E7=A4=BA=E5=9B=BE?= =?UTF-8?q?=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: JoeAllen <2494136784@qq.com> --- src/main/java/cn/heavenlybook/Main.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/java/cn/heavenlybook/Main.java b/src/main/java/cn/heavenlybook/Main.java index 6fd5a17..54a0dbf 100644 --- a/src/main/java/cn/heavenlybook/Main.java +++ b/src/main/java/cn/heavenlybook/Main.java @@ -8,11 +8,13 @@ import ai.djl.translate.TranslateException; import cn.heavenlybook.utils.AnimalsClassification; import cn.heavenlybook.utils.OpenCVImageUtil; import lombok.extern.java.Log; +import org.bytedeco.javacv.CanvasFrame; import org.bytedeco.javacv.Frame; import org.bytedeco.javacv.OpenCVFrameConverter; import org.bytedeco.javacv.OpenCVFrameGrabber; import org.bytedeco.opencv.opencv_core.Mat; +import javax.swing.*; import java.awt.image.BufferedImage; import java.io.IOException; @@ -28,8 +30,17 @@ public class Main { // Frame与Mat转换 OpenCVFrameConverter.ToMat converter = new OpenCVFrameConverter.ToMat(); Frame frame; + // 新建一个预览窗口 + CanvasFrame canvas = new CanvasFrame("人脸检测"); + canvas.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + canvas.setVisible(true); + canvas.setFocusable(true); + // 窗口置顶 + if (canvas.isAlwaysOnTopSupported()) { + canvas.setAlwaysOnTop(true); + } // 获取图像帧 - while ((frame = grabber.grab()) != null) { + while (canvas.isVisible() && (frame = grabber.grab()) != null) { // 将获取的frame转化成mat数据类型 Mat img = converter.convert(frame); BufferedImage buffImg = OpenCVImageUtil.mat2BufferedImage(img); @@ -38,6 +49,10 @@ public class Main { Classifications.Classification bestItem = classifications.best(); log.info(bestItem.getClassName() + " : " + bestItem.getProbability()); log.info(classifications.toJson()); + // 显示视频图像 + canvas.showImage(frame); } + canvas.dispose(); + grabber.close(); } }