QT----基于QT的人脸考勤系统(未完成)

news2024/11/17 16:04:12

目录

  • 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客户端设计

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android 13 源码编译及报错修复

下载AOSP指定分支 repo init -u git://aosp../platform/manifest -b android-13.0.0_r83 同步代码到本地 repo sync -c 初始化编译环境, 选择构建目标 source build/envsetup.sh lunch 选择需要构建的目标&#xff0c;此处以aosp_arm64-eng为例 进行固件编译 make -j12 期间编译…

蓝桥杯 填空 卡片

蓝桥杯 填空题 卡片 解题思路&#xff1a; 我们只需要消耗完卡片的个数即可。 代码示例&#xff1a; #include<bits/stdc.h> using namespace std; int a[10]; bool isEnd(){for(int i0;i<10;i){if(a[i]-1)return false;}return true; } bool getN(int x){while(x){i…

第13届软件与计算技术国际会议(ICSCT 2024)即将召开!

2024年第13届软件与计算技术国际会议(ICSCT 2024)将于7月26-28日在越南岘港召开。本次大会由维新大学主办&#xff0c;岘港大学、胡志明市科技大学联合协办。ICSCT 2024旨在为来自业界和学术界的研究人员、学者和专业人士提供一个论坛&#xff0c;分享他们最新的研究成果。欢迎…

Docker 中 MySQL 的部署与管理

目录 一、Docker 中部署 MySQL1.1 部署 MySQL1.2 进入容器并创建数据库1.3 Navicat 可视化工具连接 二、可能存在的问题2.1 1130 - Host ‘172.17.0.1‘ is not allowed to connect to this MySQL server 参考资料 一、Docker 中部署 MySQL 1.1 部署 MySQL 首先&#xff0c;从…

详解Python中open()函数指定文件打开方式的用法

当我们用open()函数去打开文件的时候&#xff0c;有好几种打开的模式。 r->只读 w->只写&#xff0c;文件已存在则清空&#xff0c;不存在则创建。 a->追加&#xff0c;写到文件末尾 b->二进制模式,比如打开图像、音频、word文件。 ->更新(可读可写) 这个带号…

如何使用vue定义组件之——父组件调用子组件

首先&#xff0c;我们需要创建两个组件模板template&#xff1a; <template id"father"><div><h3>我是父组件</h3><h3>访问自己的数据:</h3><h3>{{ msg }}</h3></div></template><template id"…

@RequestParam、@PathVariable、@RequestBody

1、中文翻译 RequestParam-请求参数、PathVariable-路径变量、RequestBody请求体 2、作用&#xff1a; Controller中获取前端传递的参数 3、从注解本身角度分析 3.1、PathVariable&#xff1a;路径变量 通过 PathVariable 可以将URL中占位符参数{xxx}绑定到处理器类的方法形…

论文阅读——Vision Transformer with Deformable Attention

Vision Transformer with Deformable Attention 多头自注意力公式化为&#xff1a; 第l层transformer模块公式化为&#xff1a; 在Transformer模型中简单地实现DCN是一个non-trivial的问题。在DCN中&#xff0c;特征图上的每个元素都单独学习其偏移&#xff0c;其中HWC特征图上…

2024年【危险化学品生产单位安全生产管理人员】复审考试及危险化学品生产单位安全生产管理人员模拟试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 危险化学品生产单位安全生产管理人员复审考试根据新危险化学品生产单位安全生产管理人员考试大纲要求&#xff0c;安全生产模拟考试一点通将危险化学品生产单位安全生产管理人员模拟考试试题进行汇编&#xff0c;组成…

Antd中s-table组件某字段进行排序

Antd中s-table组件某字段进行排序 提前说明&#xff0c;s-table组件包含分页等功能 <s-tableref"table":columns"columns":data"loadData"bordered:row-key"(record) > record.id"></s-table>而其中loadData为获取表数…

【深度学习实践】HaGRID,YOLOv5,手势识别项目,目标检测实践项目

文章目录 数据集介绍下载数据集将数据集转换为yolo绘制几张图片看看数据样子思考类别是否转换下载yolov5修改数据集样式以符合yolov5创建 dataset.yaml训练参数开始训练训练分析推理模型转换onnx重训一个yolov5s后记 数据集介绍 https://github.com/hukenovs/hagrid HaGRID&a…

ElementUI Message 消息提示,多个显示被覆盖的问题

现象截图&#xff1a; 代码&#xff1a;主要是在this.$message 方法外层加上 setTimeout 方法 <script> export default {name: "HelloWorld",props: {msg: String,},methods: {showMessage() {for (let i 0; i < 10; i) {setTimeout(() > {this.$mess…

windows ffmpeg 编译环境搭建

编译ffmpeg https://www.msys2.org/ https://www.ffmpeg.org/platform.html#Microsoft-Visual-C_002b_002b-or-Intel-C_002b_002b-Compiler-for-Windows 1.安装msys2 2.安装yasm或者nasm 打开VC 本地环境命令行 唤醒msys2界面 配置编译环境变量参数 export PATH"/d/vs…

Net Core 使用Mongodb操作文件(上传,下载)

Net Core 使用Mongodb操作文件&#xff08;上传&#xff0c;下载&#xff09; 1.Mongodb GridFS 文件操作帮助类。 GridFS 介绍 https://baike.baidu.com/item/GridFS/6342715?fraladdin DLL源码&#xff1a;https://gitee.com/chenjianhua1985/mongodb-client-encapsulati…

Vue3基础速成

Vue常用语法 {{ }} 变量、表达式渲染 {{ }} 用于输出对象属性和函数返回值 <div id"hello-vue" class"demo">{{ message }} </div><script>const HelloVueApp {data() {return {message: Hello Vue!!}}}Vue.createApp(HelloVueApp).…

码头船只出行和货柜管理系统的设计与实现

针对于码头船只货柜信息管理方面的不规范&#xff0c;容错率低&#xff0c;管理人员处理数据费工费时&#xff0c;采用新开发的码头船只货柜管理系统可以从根源上规范整个数据处理流程。 码头船只货柜管理系统能够实现货柜管理&#xff0c;路线管理&#xff0c;新闻管理&#…

使用Julia及R语言生成正态分布的随机数字并写入CSV文件

在操作之前需要先下载Julia的Distributions包&#xff0c;这个包用于进行相关概率分布的函数调用。 在输入 ] 进入Julia包管理模式后输入&#xff1a; add Distributions 这里我使用我们自己实验室的实测数据 &#xff0c;平均值0.67&#xff0c;方差0.11&#xff0c;数据分…

Devin,第一位AI软件工程师

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

LeetCode.2864. 最大二进制奇数

题目 2864. 最大二进制奇数 分析 这道题目其实我们只需要保证最后一位是1&#xff0c;其余的1都放在最前面&#xff0c;这样得到的就是最大二进制奇数。 所以&#xff0c;我们先统计给定的字符串有多少个 1&#xff0c;多少个 0&#xff0c;把其中一个 1 放在最后一位&…

【C#】【SAP2000】读取SAP2000中所有Frame对象的应力比到Grasshopper中

if (build true) {// 连接到正在运行的 SAP2000// 使用 System.Runtime.InteropServices.Marshal.GetActiveObject 方法获取正在运行的 SAP2000 实例cOAPI mySapObject (cOAPI)System.Runtime.InteropServices.Marshal.GetActiveObject("CSI.SAP2000.API.SapObject"…