java swing 人脸签到系统 ----- 调用 opencv 多线程

简介: java swing 人脸签到系统 ----- 调用 opencv 多线程

java 源代码地址 code aliyun

https://code.aliyun.com/734449600/swingFaceCheckIn.git

软件功能展示


项目 设计的 技术问题总结

工作 进程 以及 渲染 进程 如何分离


人脸识别 sdk 的集成与调用

java 调用 opencv

特征比对

打包 exe 方法

java 多线程

java 调用 opencv 源代码 展示

调用代码

开始签到Button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                new Thread(() -> readImage()).start();
            }
        });

工作 代码

// 获取 图片的 io 工作进程
    public void readImage() {
        VideoLabel.setText("请等待打开摄像头");
        capture.open(0);
        openVideo = 0;
        // 设置帧率
        capture.set(Videoio.CAP_PROP_FPS, 30);
        boolean grab = capture.grab();
        if (!grab) {
            return;
        }
        int take_count = 0;
        while (true) {
            Mat capImg = new Mat();
            BufferedImage tempImage;
            if (openVideo == -1) {
                capture.release();
                break;
            }
            capture.read(capImg);
            tempImage = CvFunc.MatToBufferedImage(capImg);
            if (tempImage != null) {
                updateVideoLabel(new ImageIcon(tempImage));
                take_count += 1;
                if (take_count == 20) {
                    take_count = 0;
                    new Thread(() -> {
                        String[] res = studentInfo.compareImage(tempImage);
                        updateCompareRes(res);
                        studentInfo.Checkin(res[0]);
                        String spring_str = studentInfo.GetSpringStuStr();
                        String absent_str = studentInfo.GetAbsentStuStr();
                        updateStudentList(spring_str, absent_str);
                    }).start();
                }
            }
            try {
                sleep(50);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
// 页面渲染进程
    public void updateCompareRes(String[] s_list) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                compareRes.setText(s_list[0]);
                compareVal.setText(s_list[1]);
            }
        });
    }
// 页面渲染进程
    public void updateVideoLabel(ImageIcon imageIcon) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                VideoLabel.setText("");
                VideoLabel.setIcon(imageIcon);
            }
        });
    }
相关文章
|
18天前
|
机器学习/深度学习 算法 Java
java家政系统实现智能派单?
本项目旨在构建一个基于JAVA的家政系统,通过实时派单满足用户即时需求。系统涵盖用户需求收集、服务人员数据库管理、智能匹配算法(如综合评分、机器学习模型)、实时通信通知、订单状态跟踪及动态调整等功能。同时,优化用户体验,强化安全与隐私保护,并采用微服务架构确保高并发稳定性。通过持续数据分析与算法迭代,实现高效精准的智能派单,提升服务质量和客户满意度。
|
2月前
|
JavaScript NoSQL Java
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
237 96
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
|
1月前
|
存储 网络协议 安全
Java网络编程,多线程,IO流综合小项目一一ChatBoxes
**项目介绍**:本项目实现了一个基于TCP协议的C/S架构控制台聊天室,支持局域网内多客户端同时聊天。用户需注册并登录,用户名唯一,密码格式为字母开头加纯数字。登录后可实时聊天,服务端负责验证用户信息并转发消息。 **项目亮点**: - **C/S架构**:客户端与服务端通过TCP连接通信。 - **多线程**:采用多线程处理多个客户端的并发请求,确保实时交互。 - **IO流**:使用BufferedReader和BufferedWriter进行数据传输,确保高效稳定的通信。 - **线程安全**:通过同步代码块和锁机制保证共享数据的安全性。
100 23
|
1月前
|
数据可视化 JavaScript Java
2K star!三分钟搭建企业级后台系统,这款开源Java框架绝了!
"LikeAdmin Java是基于Spring Boot + Mybatis Plus + Vue 3的快速开发平台,内置RBAC权限管理、工作流引擎、数据可视化、三方登录等核心模块,助力开发者快速构建企业级中后台管理系统"
129 18
|
1月前
|
前端开发 JavaScript Java
[Java计算机毕设]基于ssm的OA办公管理系统的设计与实现,附源码+数据库+论文+开题,包安装调试
OA办公管理系统是一款基于Java和SSM框架开发的B/S架构应用,适用于Windows系统。项目包含管理员、项目管理人员和普通用户三种角色,分别负责系统管理、请假审批、图书借阅等日常办公事务。系统使用Vue、HTML、JavaScript、CSS和LayUI构建前端,后端采用SSM框架,数据库为MySQL,共24张表。提供完整演示视频和详细文档截图,支持远程安装调试,确保顺利运行。
111 17
|
19天前
|
存储 安全 Java
Java 集合框架详解:系统化分析与高级应用
本文深入解析Java集合框架,涵盖List、Set、Map等核心接口及其常见实现类,如ArrayList、HashSet、HashMap等。通过对比不同集合类型的特性与应用场景,帮助开发者选择最优方案。同时介绍Iterator迭代机制、Collections工具类及Stream API等高级功能,提升代码效率与可维护性。适合初学者与进阶开发者系统学习与实践。
45 0
|
2月前
|
SQL JavaScript 安全
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
134 11
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
|
27天前
|
数据采集 存储 网络协议
Java HttpClient 多线程爬虫优化方案
Java HttpClient 多线程爬虫优化方案
|
2月前
|
机器学习/深度学习 IDE 开发工具
基于OpenCV的车牌识别系统源码分享
基于OpenCV的车牌识别系统主要利用图像边缘和车牌颜色定位车牌,再利用OpenCV的SVM识别具体字符,从而达到车牌识别的效果。
142 4
基于OpenCV的车牌识别系统源码分享
|
2月前
|
监控 前端开发 Java
构建高效Java后端与前端交互的定时任务调度系统
通过以上步骤,我们构建了一个高效的Java后端与前端交互的定时任务调度系统。该系统使用Spring Boot作为后端框架,Quartz作为任务调度器,并通过前端界面实现用户交互。此系统可以应用于各种需要定时任务调度的业务场景,如数据同步、报告生成和系统监控等。
84 9
下一篇
oss创建bucket