qt+opencv实现人脸识别打卡系统2.0
Posted Jason~shen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt+opencv实现人脸识别打卡系统2.0相关的知识,希望对你有一定的参考价值。
一、简介
人脸识别1.0版本:
人脸识别2.0版本:
在粉丝们的建议下在1.0的基础上做了一定的修改
1、减少了opencv繁琐的配置,打开工程即可编译运行(解决路径配置不当编译不通过问题);
# opencv
OPENCVPATH=$$PWD/../../3rdparty/opencv64
OPENCV_LIB=$$OPENCVPATH/x64/mingw/lib
OPENCV_INC=$$OPENCVPATH/include
INCLUDEPATH +=$$OPENCV_INC
INCLUDEPATH +=$$OPENCV_INC/opencv
INCLUDEPATH +=$$OPENCV_INC/opencv2
LIBS += $$OPENCV_LIB/libopencv*
BINPATH=$$PWD/../../bin
LIBSPATH = $$PWD/../Libs
2、去除了使用python脚本生成训练使用的at.txt文件,改为c++编写(解决没有python环境的问题);
QStringList Util::getFileFolders(const QString &dirPath)
QStringList folderList;
QDir dir(dirPath);
dir.setFilter(QDir::Dirs);
foreach(QFileInfo fullDir, dir.entryInfoList())
if(fullDir.fileName() == "." || fullDir.fileName() == "..") continue;
folderList.append(fullDir.fileName());
return folderList;
void Util::createAtLabel(const QString &facePath, const QString &atPath)
qDebug() <<facePath;
qDebug()<<atPath;
deleteFileOrFolder(atPath);
QFile file(atPath);
file.open(QIODevice::ReadWrite | QIODevice::Text);
QStringList idList = getFileFolders(facePath);
qDebug()<<idList;
foreach (QString id, idList)
QString oneFacePath = facePath + "\\\\" + id;
QStringList imageList = getImageFileNames(oneFacePath);
foreach (QString name, imageList)
QString labelInfo = oneFacePath + "\\\\" + name + ";"+id;
file.write(labelInfo.toUtf8() + "\\n");
file.close();
3、使用了qdarkstyle暗黑风格样式(解决界面不美观问题);
4、功能包括人脸检测、人脸识别、人脸录入、打卡记录、发布通知等(功能上没有太大变化,解决了一些bug)。
二、演示效果
qt+opencv人脸识别演示
1、打卡界面:相机读取、人脸检测与识别、打卡、时间显示、通告栏、统计信息、识别结果
2、人脸录入界面:基本信息的录入、人脸的录入、模型的训练
3、打卡记录界面:按条件查询、清空记录、导出记录
4、设置界面:打卡时间段设置、通告栏设置
以上是关于qt+opencv实现人脸识别打卡系统2.0的主要内容,如果未能解决你的问题,请参考以下文章
Python OpenCV开发MR智能人脸识别打卡系统(四服务模块设计)
Python OpenCV开发MR智能人脸识别打卡系统(三工具模块设计)