QT----基于QT的人脸考勤系统

目录

  • 1 编译opencv库
    • 1.1 下载源代码
    • 1.2 qt编译opencv
    • 1.3 执行Cmake一直卡着data: Download: face_landmark_model.dat
  • 2 编译SeetaFace2代码
    • 2.1 遇到报错By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this project has
    • 2.2遇到报错Model missing
  • 3 测试两个环境能否使用
    • 3.1 配置环境变量
  • 4客户端设计

更多内容可以点击这里查看个人博客: 个人博客

1 编译opencv库

1.1 下载源代码

源代码下载地址:https://github.com/opencv/opencv

第三方库下载地址:https://github.com/opencv/opencv_contrib

cmake下载地址:https://cmake.org/download/

都下载4.5.2版本的,把两个zip都解压,windows的第一个库是直接exe解压的

1.2 qt编译opencv

使用qt打开项目,源代码opencv/sources/CMakeLIsts.txt

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用MinGW64构建项目,稍等一会,等qt吧资源都加载完

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

点击项目,搜索ms取消这两个安装项目,将第三方库的人脸识别模块加入,注意debug为release版本,所有操作都是在release版本上执行的,图片还没更改

在这里插入图片描述

修改安装路径

在这里插入图片描述

修改下边构建步骤里边 为all,全部安装,最后执行Cmake

在这里插入图片描述

1.3 执行Cmake一直卡着data: Download: face_landmark_model.dat

发现一直卡着,这个face_landmark_model.dat下载不下来

在这里插入图片描述

采取手动下载的方式

https://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12/face_landmark_model.dat

放到opencv的路径下,并且把没下载完的文件的前缀也加上,替换,再次执行Cmake成功

在这里插入图片描述

完毕后回到编辑点击启动,更改构建模式为release,运行

在这里插入图片描述

2 编译SeetaFace2代码

2.1 遇到报错By not providing “FindOpenCV.cmake” in CMAKE_MODULE_PATH this project has

下载代码:https://github.com/seetafaceengine/SeetaFace2

依旧是打开CmakeList文件,release模式,遇到报错

在这里插入图片描述

打开CmakeList文件添加上这一句,加上你刚刚安装的opcv的路径,注意斜杠的位置

`set(OpenCV_DIR E:/Environment/opencv452)`

在这里插入图片描述

修改安装路径,opencv路径等等,更上边类似,执行cmake,执行

在这里插入图片描述

2.2遇到报错Model missing

执行后遇到报错模型丢失

在这里插入图片描述

下载模型,把四个模型都下载了,放入生成release的文件夹

https://github.com/seetafaceengine/SeetaFace2?tab=readme-ov-file

在这里插入图片描述
在这里插入图片描述

再次报错,没有图片,找张人脸图片放入

在这里插入图片描述在这里插入图片描述

3 测试两个环境能否使用

3.1 配置环境变量

找到系统环境变量PATH,添加两个库的bin文件夹

在这里插入图片描述

新建一个qt项目,在配置文件pro里添加上两个库的路径,并且添加上lib。这样在引入头文件就不会报错

#添加头文件
INCLUDEPATH += E:\Environment\opencv452\include
INCLUDEPATH += E:\Environment\opencv452\include\opencv2
INCLUDEPATH += E:\Environment\SeetaFace2\include
INCLUDEPATH += E:\Environment\SeetaFace2\include\seeta

#添加库
LIBS += E:\Environment\opencv452\x64\mingw\lib\libopencv*
LIBS += E:\Environment\SeetaFace2\lib\libSeeta*

在这里插入图片描述

#include "mainwindow.h"

#include <QApplication>
#include <opencv.hpp>
#include <FaceDetector.h>

using namespace cv;
using namespace seeta::v2;



int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    
    cv::namedWindow("fram");
    Mat mt = imread("E:/CPP_Study/QT/QTCode/opencvSeetaface/1.jpg");
    imshow("fram",mt);
    cv::waitKey(10);
    
    seeta::ModelSetting::Device device = seeta::ModelSetting::CPU ;
    int id = 0;
    seeta::ModelSetting FD_model("E:/Environment/SeetaFace2/bin/model/fd_2_00.dat",device ,id);
    seeta::FaceDetector FD(FD_model);
    
    
    return a.exec();
}

4客户端设计

接下来的文章参考我的个人博客纯真丁一郎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/467324.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Git——GitHub远端协作详解

目录 Git&GitHub1、将内容Push到GitHub上1.1、在GitHub上创建新项目1.2、upstream1.3、如果不想要相同的分支名称 2、Pull下载更新2.1、Fetch指令2.2、Fetch原理2.3、Pull指令2.4、PullRebase 3、为什么有时候推不上去3.1、问题复现3.2、解决方案一&#xff1a;先拉再推3.3…

kerberos验证协议安装配置使用

一、kerberos是什么 Kerberos 是一个网络身份验证协议&#xff0c;用于在计算机网络中进行身份验证和授权。它提供了一种安全的方式&#xff0c;允许用户在不安全的网络上进行身份验证&#xff0c;并获取访问网络资源的权限。 二、安装配置kerberos服务端 1、安装kerberos #检…

行尾检测论文汇总

文章目录 2023GNSS-Free End-of-Row Detection and Headland Maneuvering for Orchard Navigation Using a Depth Camera 2023 GNSS-Free End-of-Row Detection and Headland Maneuvering for Orchard Navigation Using a Depth Camera 摘要&#xff1a; 果园中基于GPS的导航…

Vue3学习日记 Day1

一、简介 1、简介 Vue3是新的默认版本&#xff0c;拥有更快的速度&#xff0c;更好的语法 二、使用create-vue搭建Vue3项目 1、创建项目 1、介绍 create-vue是Vue官方新的脚手架工具&#xff0c;底层切换为了vite&#xff0c;为开发提供极速响应 2、使用 2.1、确定环境条件 2…

共谋企业出海新篇章纷享销客荣获数字中国企业峰会“卓越成果奖”

3月9日&#xff0c;2024数字中国企业峰会在杭州西湖中维香溢大酒店成功举办&#xff0c;众多数字化领域专家、知名企业 CIO 代表到场。峰会旨在推动数字化转型与创新发展&#xff0c;为企业出海和国际合作搭建交流与合作的平台。本次峰会的颁奖环节&#xff0c;纷享销客凭借其卓…

阿里云服务器centos安装msf教程

msf官方命令行一键安装 curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && chmod 755 msfinstall && ./msfinstall 稍微等待几分钟即可安装成功&am…

Django生命周期

Django请求的生命周期是指:当用户在浏览器上输入url到用户看到网页的这个时间段内,Django后台所发生的事情。 一、生命周期流程图 首先,用户在浏览器中输入url,发送一个GET/POST方法的request请求。Django中封装了socket的WSGi服务器,监听端口接受这个request 请求再进行初…

使用 ONLYOFFICE API 构建 Java 转换器,在 Word 和 PDF 之间进行转换

文章作者&#xff1a;ajun 随着文档处理需求的增加&#xff0c;格式转换成为了一个重要的需求点。由于PDF格式具有跨平台、不易被篡改的特性&#xff0c;将Word格式(.docx)转换为PDF格式(.pdf)的需求尤为强烈。ONLYOFFICE作为一个强大的办公套件&#xff0c;提供了这样的转换功…

主键约束

Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 主键约束可以看成是非空约束再加上唯一约束 也就是说设置为主键列&#xff0c;不能为空&#xff0c;不能重复 像一般用户编号是不可能重复的&#xff0c;也不可能为空的 …

07|链(下):想学“育花”还是“插花”用RouterChain确定客户意图

任务设定 鲜花养护&#xff08;保持花的健康、如何浇水、施肥等&#xff09;鲜花装饰&#xff08;如何搭配花、如何装饰场地等&#xff09; 如果接到的是第一类问题&#xff0c;你要给ChatBot A指示&#xff1b;如果接到第二类的问题&#xff0c;你要给ChatBot B指示。 整体…

U盘变身“本地磁盘”?数据恢复与防范策略大揭秘

一、突发状况&#xff1a;U盘秒变“本地磁盘” 在日常工作生活中&#xff0c;U盘凭借其便携性和大容量&#xff0c;成为我们存储和传输数据的重要工具。然而&#xff0c;有时我们会遇到这样一个棘手的问题&#xff1a;原本应显示为可移动磁盘的U盘&#xff0c;在插入电脑后却突…

Linux之shell变量

华子目录 什么是变量&#xff1f;变量的名称示例 变量的类型变量的定义示例 自定义变量查看变量&#xff08;自定义变量和全局变量&#xff09; 环境变量定义环境变量&#xff08;全局变量&#xff09;法一法二法三env&#xff0c;printenv&#xff0c;export注意 C语言与shell…

苹果谷歌,要联手反攻了

一则消息&#xff0c;让苹果、谷歌的夜盘股价一度分别暴拉1.5、3.5%&#xff0c;谷歌盘前甚至飙升超过5.5%&#xff0c;引发市场一阵轰动。 据知情人士透露&#xff0c;苹果公司正在谈判将谷歌的Gemini人工智能引擎植入iPhone&#xff0c;希望获得Gemini的授权&#xff0c;为今…

蓝桥杯练习题——贡献法(隔板法)

1.孤独的照片 思路 孤独的区间一定有一头孤独的牛&#xff0c;考虑每头牛对区间的贡献是多少 #include<iostream> using namespace std; const int N 5e5 10; int n; string s;int main(){cin>>n>>s;long long res 0;for(int i 0; i < n; i){int l…

吴恩达深度学习环境本地化构建wsl+docker+tensorflow+cuda

Tensorflow2 on wsl using cuda 动机环境选择安装步骤1. WSL安装2. docker安装2.1 配置Docker Desktop2.2 WSL上的docker使用2.3 Docker Destop的登陆2.4 测试一下 3. 在WSL上安装CUDA3.1 Software list needed3.2 [CUDA Support for WSL 2](https://docs.nvidia.com/cuda/wsl-…

聊聊AI时代学习这件事本身应该发生什么样的变化

随着 AI 大模型 的爆发&#xff0c;我们身处这个时代&#xff0c;应该怎么样去学习去了解这些前言的技术&#xff1f;可能很多人会说我英文不好&#xff0c;我算法不行&#xff0c;无法深入去了解 AI 大模型相关的知识吧&#xff1f; 没关系&#xff0c;其实博主也跟大家一样&…

代码随想录算法训练营第二十五天|216.组合总和III,17.电话号码的字母组合

216.组合总和III 题目 找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数&#xff0c;并且每种组合中不存在重复的数字。 说明&#xff1a; 所有数字都是正整数。 解集不能包含重复的组合。 示例 1: 输入: k 3, n 7 输出: [[1,2,4]] 示例 2: 输入…

品牌如何加强社交属性?媒介盒子支招

人类天然具备社交属性&#xff0c;基于这种社交属性&#xff0c;会形成人与人之间的连接性&#xff0c;而社交网络的出现加剧了社交属性的爆发。社交增长营销&#xff0c;就是以大众用户天然的社交属性为核心&#xff0c;让品牌更具话题&#xff0c;实现可持续增长。那么品牌如…

SpringCloud详解,图文码笔记

注意&#xff1a; SpringCloud并 不等于 微服务 1.微服务技术线 2.认识微服务 分布式架构 分布式架构: 根据业务功能对系统进行拆分&#xff0c;每个业务模块作为独立项目开发&#xff0c;称为一个服务。 优点&#xff1a; 降低服务耦合有利于服务升级拓展 服务治理 分布式…

java方法的引用传递和值传递

1、方法的值参数传递 下面代码&#xff0c;它会在控制台输出什么&#xff1f; public class ArrayTest {public static void main(String[] args) {int number 100;System.out.println(number);change(number);System.out.println(number);}public static void change(int n…