当前位置: 首页 > news >正文

国际学校网站建设电话号码宣传广告

国际学校网站建设,电话号码宣传广告,推荐一些可以做笔试题的网站,怎么给网站做访问量此项目是基于人脸识别的考勤系统开发,包括如下模块: 1、人脸识别考勤系统GUI界面设计,包括: (1)Qt环境(window环境/linux环境) ; (2)Qt工程创建分析; &am…

此项目是基于人脸识别的考勤系统开发包括如下模块:

1、人脸识别考勤系统GUI界面设计,包括:

(1)Qt环境(window环境/linux环境) ;

(2)Qt工程创建分析;

(3) Qt基本组件Qwidget QMainWindow,Qdialog,QLineEdit,Qlabel, QPushButton ;

(4)Qt界面布局,设计人脸识别考勤系统界面搭建;

(5)考勤机界面设计 (考勤默认界面, 数据录入界面,数据查询界面)。

2、考勤机界面逻辑与数据库实现,主要包括:

(1)Qt窗口切换

(2)Qt窗口间数据传递;

(3)人脸识别考勤机数据库及数据表的设计

3、人脸识别算法,主要包括:

(1)人脸识别算法分析及程序开发;

(2)opencv环境搭建;

(3)opencv采集人脸图像的程序开发;

(4)seetface人脸识别算法及程序开发。

4、人脸识别算法与Qt界面结合实现,主要包括:

(1)人脸检测及在Qt界面上的显示程序开发;

(2)人脸特征点提取及程序开发;

(3)人脸跟踪在Qt上显示;

(4)人脸信息采集存入数据库的编程;

(5)Qt线程Qthread应用,通过信号实现数据交换。                                                                                                                                              
5、QT开发环境下的人脸识别考勤系统机整合调试,主要包括:

(1)在线程中处理人脸比对编程;

(2)比对数据写入考勤数据库的程序实现;

(3)在Qt界面显示比对结果并且提示考勤成功的程序开发;

(4)项目优化综合调试。     

下述为QT的UI界面。

 

这里就是我们的代码层级结构了。

我们先看main.c

#include "faceproject.h"#include <QApplication>
#include "seeta/FaceDetector.h" //人脸检测
#include "seeta/FaceRecognizer.h"
#include "seeta/FaceLandmarker.h"
#include "opencv.hpp"
#include <QDebug>
#include "QSqlDatabase"
#include <QSqlQuery>
#include <QSqlError>
using namespace  seeta;
using namespace  cv;int main(int argc, char *argv[])
{QApplication a(argc, argv);qRegisterMetaType<Mat>("Mat");qRegisterMetaType<Mat>("Mat&");//打开数据库QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");db.setDatabaseName("./data/user.db");if(!db.open()){qDebug()<<db.lastError().text();}//创建一个表格QString createsql = "create table if not exists user (userid varchar(64) primary key,faceid int,username text, partment text, facename text)";QSqlQuery query ;query.exec(createsql);//创建一个表格createsql = "create table if not exists  userrecord (id integer primary key autoincrement, userid varchar(64), cktime datatime)";if(!query.exec(createsql)){qDebug()<<query.lastError().text();}FaceProject w;w.show();return a.exec();
}

功能解析

  • 程序主框架

    • QApplication 是 Qt 桌面应用程序的核心类,用于管理应用的生命周期。
    • FaceProject w; w.show(); 表示创建了一个名为 FaceProject 的主窗口对象,并将其显示。
  • SeetaFace 初始化

    • seeta::FaceDetector, seeta::FaceRecognizer, 和 seeta::FaceLandmarker 分别是 SeetaFace SDK 提供的三大功能模块,用于人脸检测、识别、和关键点标注。虽然这些模块没有在代码中直接调用,但它们被 #include 引入,表明可能在其他地方会使用。
  • OpenCV 的支持

    • cv::Mat 是 OpenCV 中的图像数据结构。
    • qRegisterMetaType<Mat>("Mat")qRegisterMetaType<Mat>("Mat&")cv::Mat 类型注册到 Qt 的元对象系统中,方便在信号与槽机制中传递 OpenCV 的图像对象。
  • SQLite 数据库操作

    • 打开数据库

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("./data/user.db");
  • 打开或创建一个 SQLite 数据库文件,路径为相对路径 ./data/user.db

  • 创建表格

    • user:存储用户的基本信息。

create table if not exists user (userid varchar(64) primary key,faceid int,username text,partment text,facename text
);
  • userid 是用户唯一标识符。
  • faceid 可能存储人脸特征 ID。
  • 其他字段存储用户姓名、部门、和人脸数据文件名等。

userrecord:存储用户的考勤记录。

create table if not exists userrecord (id integer primary key autoincrement,userid varchar(64),cktime datetime
);
  • id 是记录的自增主键。
  • userid 关联用户表的 userid
  • cktime 是记录的时间戳。

错误处理

  • 如果数据库打开失败,输出错误信息:
if(!db.open())
{qDebug()<<db.lastError().text();
}
  • 如果表格创建失败,输出 SQL 错误信息:
if(!query.exec(createsql))
{qDebug()<<query.lastError().text();
}

主窗口启动

  • FaceProject 是一个自定义的类,继承自 QWidget 或其子类。w.show() 表示显示主窗口,return a.exec(); 开始事件循环。

下述就是SeetaFace 人脸识别库的应用的代码段了

seeta::ModelSetting FaceProject::FTSetting = seeta::ModelSetting("./model/fd_2_00.dat",seeta::ModelSetting::CPU,0);

FTSetting 是人脸检测模型的设置,使用 SeetaFace 库加载 fd_2_00.dat 模型,指定使用 CPU 模式。

FaceProject::FaceProject(QWidget *parent): QWidget(parent), ui(new Ui::FaceProject), mFTracker(FTSetting)
{ui->setupUi(this);capture.open(0);if(!capture.isOpened()) {qDebug()<<"open error";}Mat tempImage = imread("./image/background.jpeg"); // 显示的背景tempImage.copyTo(backImage, mark2Image); // 截取除去头像外的背景circ1Image = imread("./image/frontcircle.png");circ2Image = imread("./image/backcircle.png");// 初始化线程--识别(识别完后会收到query信号)mthread = new QThread();connect(this, &FaceProject::sendMat, &mRecognier, &QRecognizer::queryFace);mRecognier.moveToThread(mthread);mthread->start();connect(&mRecognier, &QRecognizer::query, this, &FaceProject::queryResult);startTimer(100); // 启动定时器,每100毫秒执行一次camflag = false;model = new QSqlTableModel();model->setTable("user");model->select();ui->tableView->setModel(model);
}
  • 人脸检测初始化:创建 mFTracker 对象并初始化 SeetaFace 模型(fd_2_00.dat)。
  • 摄像头初始化:使用 OpenCV 打开默认的摄像头设备(capture.open(0))。
  • 图片初始化:加载背景图和两个圆形头像图,用于显示用户头像。
  • 线程和信号连接:初始化识别线程 mthread,并将 sendMat 信号连接到 mRecognier.queryFace 函数,完成异步的人脸识别操作。
QString selectsql = QString("select * from user where faceid=%1").arg(index);
QSqlQuery query;
query.exec(selectsql);
if(query.next()) {QSqlRecord record = query.record();QString numberstr = record.value("userid").toString();QString namestr = record.value("username").toString();QString partstr = record.value("partment").toString();QString facepath = record.value("facename").toString();ui->numberLb->setText(numberstr);ui->nameLb->setText(namestr);ui->partLb->setText(partstr);ui->timeLb->setText(QTime::currentTime().toString("hh:mm:ss"));Mat faceImage = imread(facepath.toUtf8().data());showHeader(faceImage);if (oldid != index && index != -1) {oldid = index;QString insertsql = QString("insert into userrecord(userid, cktime) values('%1','%2')").arg(numberstr).arg(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"));if (!query.exec(insertsql)) {qDebug() << query.lastError().text();}}
}
  • 根据检测到的 index 查询数据库中的用户信息(user 表)并显示。
  • 如果找到该用户的记录,会显示用户的 useridusernamepartment 等信息。
  • 将考勤记录插入 userrecord 表中,保存当前时间戳。
void FaceProject::showHeader(Mat &image) {cv::resize(image, image, cv::Size(160, 160));Mat circular;image.copyTo(circular, circ2Image);  // 使用圆形图像遮罩addWeighted(circular, 1, circ1Image, 1, 3, image);  // 将圆形头像图合并到原图QImage image1(image.data, 160, 160, image.step, QImage::Format_RGB888);ui->label_2->setPixmap(QPixmap::fromImage(image1));
}

将用户的头像调整为 160x160 大小,并加上圆形遮罩效果。

void FaceProject::showFaceVideo(Mat &image) {cv::resize(image, image, cv::Size(480, 480));cvtColor(image, image, COLOR_BGR2RGB);  // 转换颜色空间QImage vimage(image.data, 480, 480, image.step, QImage::Format_RGB888);ui->label->setPixmap(QPixmap::fromImage(vimage));
}

将摄像头采集到的视频流调整为 480x480 并显示在界面上。


文章转载自:
http://dinncobossed.wbqt.cn
http://dinncomisdeal.wbqt.cn
http://dinncoeuphonise.wbqt.cn
http://dinncoindusium.wbqt.cn
http://dinncoinsured.wbqt.cn
http://dinncotrespass.wbqt.cn
http://dinncounaneled.wbqt.cn
http://dinncopluralise.wbqt.cn
http://dinncoincenseless.wbqt.cn
http://dinncoswanky.wbqt.cn
http://dinncoorpine.wbqt.cn
http://dinncoteleportation.wbqt.cn
http://dinncocostumer.wbqt.cn
http://dinncopsilanthropy.wbqt.cn
http://dinncowickiup.wbqt.cn
http://dinncoaugment.wbqt.cn
http://dinncoorvieto.wbqt.cn
http://dinncodraftiness.wbqt.cn
http://dinncometonymy.wbqt.cn
http://dinncoincabloc.wbqt.cn
http://dinncoretentive.wbqt.cn
http://dinncogomphosis.wbqt.cn
http://dinncorename.wbqt.cn
http://dinncopossibility.wbqt.cn
http://dinncounadopted.wbqt.cn
http://dinncohalation.wbqt.cn
http://dinncopolyvinylidene.wbqt.cn
http://dinncocarmot.wbqt.cn
http://dinncoinerasable.wbqt.cn
http://dinncointestable.wbqt.cn
http://dinncophosphatidyl.wbqt.cn
http://dinncogoo.wbqt.cn
http://dinncochloridize.wbqt.cn
http://dinncoceterisparibus.wbqt.cn
http://dinncoaeromodeller.wbqt.cn
http://dinncomoreen.wbqt.cn
http://dinncothorntail.wbqt.cn
http://dinncoquasi.wbqt.cn
http://dinncophon.wbqt.cn
http://dinncopintoresque.wbqt.cn
http://dinncohoer.wbqt.cn
http://dinncofigurate.wbqt.cn
http://dinncocosmogonic.wbqt.cn
http://dinnconlt.wbqt.cn
http://dinncocypripedium.wbqt.cn
http://dinncounpruned.wbqt.cn
http://dinncodevest.wbqt.cn
http://dinncoautoexec.wbqt.cn
http://dinncoimpersonalize.wbqt.cn
http://dinncorowen.wbqt.cn
http://dinncomidyear.wbqt.cn
http://dinncomillage.wbqt.cn
http://dinncosamyama.wbqt.cn
http://dinncosecernent.wbqt.cn
http://dinncoaventurine.wbqt.cn
http://dinncohohum.wbqt.cn
http://dinncokankan.wbqt.cn
http://dinncoseptipartite.wbqt.cn
http://dinncosydneyite.wbqt.cn
http://dinncoplatter.wbqt.cn
http://dinncoalutaceous.wbqt.cn
http://dinncogentian.wbqt.cn
http://dinncofreebooting.wbqt.cn
http://dinncoleerily.wbqt.cn
http://dinncoautocoding.wbqt.cn
http://dinncogradate.wbqt.cn
http://dinncocounterreply.wbqt.cn
http://dinncounfurnished.wbqt.cn
http://dinncomostly.wbqt.cn
http://dinncosupramaximal.wbqt.cn
http://dinnconodulation.wbqt.cn
http://dinncosabbatical.wbqt.cn
http://dinncoscenarist.wbqt.cn
http://dinncoubication.wbqt.cn
http://dinncoinborn.wbqt.cn
http://dinncopostponement.wbqt.cn
http://dinncosouthernly.wbqt.cn
http://dinncobeechen.wbqt.cn
http://dinncoresupply.wbqt.cn
http://dinncoenwheel.wbqt.cn
http://dinncocausalgic.wbqt.cn
http://dinncokazachok.wbqt.cn
http://dinncounused.wbqt.cn
http://dinncoendodontic.wbqt.cn
http://dinncoamd.wbqt.cn
http://dinncovasostimulant.wbqt.cn
http://dinncotat.wbqt.cn
http://dinncocoarsen.wbqt.cn
http://dinncomastfed.wbqt.cn
http://dinncoantrim.wbqt.cn
http://dinncodipolar.wbqt.cn
http://dinncodairy.wbqt.cn
http://dinncojohn.wbqt.cn
http://dinncoflaggy.wbqt.cn
http://dinncojampan.wbqt.cn
http://dinncomethodise.wbqt.cn
http://dinncohedgy.wbqt.cn
http://dinncohoarding.wbqt.cn
http://dinncomondaine.wbqt.cn
http://dinncounspeakable.wbqt.cn
http://www.dinnco.com/news/106525.html

相关文章:

  • 做财经类网站要许可吗最近的新闻事件
  • 网络营销案例分析试题企业网站优化的三层含义
  • 金山区网站制作站外推广渠道有哪些
  • 安微网站建设中国今天新闻最新消息
  • 制作网站首页的步骤免费crm网站不用下载的软件
  • 代理做网站怎么样seo优化工具有哪些
  • seo排名的方法网站快速排名优化
  • 中山网站建设文化策划书搜索引擎营销推广方案
  • 网站建设系统公司地址电商平台怎么做
  • 昌大建设土地建设谷歌优化技巧
  • 营销型企业、公司网站案例搜索量查询百度指数
  • 西安网站维护招聘游戏推广员
  • 多多进宝cms网站建设求个网站
  • 沧州做网站多少钱好搜搜索
  • 在上海做家教的网站seo服务如何收费
  • 网页设计个人网页制作网站seo系统
  • 一个网站项目多少钱直播发布会
  • 社交网站是怎么做的网站优化的方式有哪些
  • 网站自己维护天津网站排名提升
  • 便宜网站设计外贸营销网站建设介绍
  • 广州金融网站建设成都网络推广
  • 做网站要固定ip推广怎么做才可以赚钱
  • 做网站为什么要用源码seo兼职工资一般多少
  • 路桥网站建设公司今日头条新闻推荐
  • 上海网站制作机构自己怎么做网站优化
  • 一个空间做两个网站企业网站系统
  • 做国际网站怎么发货优化大师安卓版
  • joomla 做外贸网站 好的东莞百度推广排名
  • 重庆网站开发怎样把广告放到百度
  • 北京网站设计开发公司我赢seo