• 大小: 74.27MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2022-09-15
  • 语言: 其他
  • 标签: vs  opencv  qt  

资源简介

环境 vs2019 opencv4.2+contribute GUI是vs的qt扩展模块编写的 编译为release 64位(已经上传了所用opencv4.2+contribute的包 https://download.csdn.net/download/qq_37071435/12265358)
代码实现了人脸识别,通过GUI可以进行拍照 训练 人脸识别三个步骤(后期打算总结一下这段时间的经验,也写成博客,会介绍详细的步骤)如有问题,欢迎讨论

资源截图

代码片段和文件信息

#include “facerecognizer_gui.h“

//label 与人名存储的字典
map LabelName;
string LabelString = “wzh“;
int map_size = 0;//map_size为map中含有的数量

extern String face_cascade_name;
extern String eyes_cascade_name;
extern String window_name;
extern String picture_name;
extern String haarcascade_frontalface_alt2;
extern String haarcascade_frontalface_alt2;
RNG g_rng(12345);
extern Ptr model;
extern int NumberOfPeople;
//检测是否关闭摄像头
//1 为关闭 0 为打开
int flag = 0;

VideoCapture cap;

void getSubdirs(std::string path std::vector& files)
{
long long hFile = 0;//注意如果是long handle则在64位下会出现异常
struct _finddata_t fileinfo;
std::string p;
if ((hFile = _findfirst(p.assign(path).append(“/*“).c_str() &fileinfo)) != -1)
{
do
{
if ((fileinfo.attrib & _A_SUBDIR))
{
if (strcmp(fileinfo.name “.“) != 0 && strcmp(fileinfo.name “..“) != 0)
files.push_back(fileinfo.name);
//printf(fileinfo.name);
//printf(“\n“);
}
} while (_findnext(hFile &fileinfo) == 0);
_findclose(hFile);
}
}
//sort的bool参数
bool sort_fun(const string& p1 const string& p2)
{
stringstream stream;
int number1 = 0 number2 = 0;
stream << p1; stream >> number1; stream.clear();
stream << p2; stream >> number2; stream.clear();
return number1 > number2;//升序排列  
}
//返回目标文件夹下的文件夹名中数字最大的值
int back_file_number()
{
//string inPath = “H:/face_database/“;
string inPath = “Resources/face_database/“;
vector filename;
getSubdirs(inPath filename);
sort(filename.begin() filename.end() sort_fun);
string out = *filename.begin();
return StringToInt(out);
}
//outi:为新建文件夹的的名字
//label:标签 int类型 
void write_at(int outi int enterlabel)
{
int i = 1;
//ofstream outfile(“H:/face_database/at.txt“ ofstream::app);
ofstream outfile(“Resources/face_database/at.txt“ ofstream::app);
//string temp = “H:\\face_database“;
string temp = “Resources\\face_database“;
string dirName = temp + “\\“ + to_string(outi);
_mkdir(dirName.c_str());//_mkdir()创建成功返回0,失败返回-1。
while (i != 11)
{
outfile << temp << “\\“ << outi << “\\“ << i << “.pgm;“ << enterlabel << “;“ << LabelName[outi] << endl;
i++;
}
outfile.close();
}
int StringToInt(string a)
{
int ai = 0;
stringstream stream;
stream << a;
stream >> ai;
stream.clear();
return ai;
}
void InitLabelName()
{
ifstream file(“Resources/face_database/at.txt“ ifstream::in);
string line;
while (getline(file line)) //从文本文件中读取一行字符,未指定限定符默认限定符为“/n”
{
char separator = ‘;‘;
string path;
string classlabel;
string name;
stringstream liness(line);//这里采用stringstream主要作用是做字符串的分割
getline(liness path separator);//读入图片文件路径以分好作为限定符
getline(liness classlabelseparator);//读入图片标签,默认限定符
getline(liness name);
if (!path.empty() && !classlabel.empty()) //如果读取成功,则将图片和对应标签压入对应容器中
{
//将Label和name加入字典
LabelName[StringToInt(classlabel)] = name;
map_size++;
}
}
file.close();
}
f

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2020-03-28 10:16  facerecognize\
     目录           0  2020-03-28 10:15  facerecognize\facerecognizer_gui\
     文件        1112  2020-03-22 16:42  facerecognize\facerecognizer_gui.sln
     文件        1368  2020-03-24 22:11  facerecognize\facerecognizer_gui\facerecognizer_gui.aps
     文件       12068  2020-03-26 14:15  facerecognize\facerecognizer_gui\facerecognizer_gui.cpp
     文件        1863  2020-03-25 22:33  facerecognize\facerecognizer_gui\facerecognizer_gui.h
     文件         551  2020-03-26 14:25  facerecognize\facerecognizer_gui\facerecognizer_gui.qrc
     文件        1270  2020-03-24 22:11  facerecognize\facerecognizer_gui\facerecognizer_gui.rc
     文件       15279  2020-03-26 14:26  facerecognize\facerecognizer_gui\facerecognizer_gui.ui
     文件        6417  2020-03-25 22:31  facerecognize\facerecognizer_gui\facerecognizer_gui.vcxproj
     文件        3311  2020-03-25 22:31  facerecognize\facerecognizer_gui\facerecognizer_gui.vcxproj.filters
     文件         168  2020-03-22 16:42  facerecognize\facerecognizer_gui\facerecognizer_gui.vcxproj.user
     文件       13446  2020-03-26 14:11  facerecognize\facerecognizer_gui\faction.cpp
     文件        1423  2020-03-26 14:10  facerecognize\facerecognizer_gui\faction.h
     文件         204  2020-03-25 22:27  facerecognize\facerecognizer_gui\main.cpp
     文件        4286  2020-03-26 14:08  facerecognize\facerecognizer_gui\putText.cpp
     文件         386  2020-03-25 22:27  facerecognize\facerecognizer_gui\putText.h
     文件         397  2020-03-24 22:11  facerecognize\facerecognizer_gui\resource.h
     目录           0  2020-03-28 10:15  facerecognize\facerecognizer_gui\Resources\
     文件       90705  2020-03-25 08:42  facerecognize\facerecognizer_gui\Resources\1.jpg
     文件      221762  2018-02-18 21:33  facerecognize\facerecognizer_gui\Resources\1518960814230.jpg
     文件       90734  2020-03-25 08:42  facerecognize\facerecognizer_gui\Resources\2.jpg
     文件       95626  2020-03-25 08:43  facerecognize\facerecognizer_gui\Resources\3.jpg
     文件       91431  2020-03-25 08:43  facerecognize\facerecognizer_gui\Resources\4.jpg
     文件       79901  2020-03-25 08:43  facerecognize\facerecognizer_gui\Resources\5.jpg
     文件       37343  2020-03-26 14:20  facerecognize\facerecognizer_gui\Resources\back.jpg
     文件      488572  2020-03-24 22:57  facerecognize\facerecognizer_gui\Resources\backgroud.jpg
     文件      116057  2020-03-24 17:35  facerecognize\facerecognizer_gui\Resources\background.jpg
     文件      573097  2020-03-24 22:55  facerecognize\facerecognizer_gui\Resources\camera.jpg
     文件       89158  2020-03-25 09:39  facerecognize\facerecognizer_gui\Resources\cameraback.jpg
     文件      926457  2020-03-25 08:08  facerecognize\facerecognizer_gui\Resources\cartoon.gif
............此处省略81个文件信息

评论

共有 条评论