资源简介
环境 vs2019 opencv4.2+contribute GUI是vs的qt扩展模块编写的 编译为release 64位(已经上传了所用opencv4.2+contribute的包 https://download.csdn.net/download/qq_37071435/12265358)
代码实现了人脸识别,通过GUI可以进行拍照 训练 人脸识别三个步骤(后期打算总结一下这段时间的经验,也写成博客,会介绍详细的步骤)如有问题,欢迎讨论
代码实现了人脸识别,通过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个文件信息
相关资源
- VMware vSphere6学习资料.rar
- MQTT 服务器和客户端工具及使用说明
- TeeChart Pro v2017 ActiveX.zip
- 性别年龄模块包.zip
- windows8 vs2012 编译的64位hadoop2.6 part3
- WRK源码,可直接用VS打开
- opencv_contrib-master
- hdf安装包hdf5-1.10.5-Std-win10_64-vs15.7z
- VS2013中文版支持windows10
- QT5 串口 收发
- Qt Quick核心编程 完整版(含书中源代
- Project1.zip
- 基于机器视觉的交通标志识别系统
- opencv-2.4.9.zip
- Qt5.11.2QtWebEngine
- Qt5开发实战
- OpenCV3编程入门(完整版).pdf+配套源
- OpenCV3编程入门电子书PDF
- opencv3.2.0在VS2015下的编译库(包含32位
- 利用opencv进行双目图像采集,并进行
- OpenCV-2.4.3
- 学习OpenCV中文版(高清扫描版)()
- opencv 2.4.10
- opencv 3.1.0.rar
- opencv-3.1.0-windows版本
- OpenCV图像拼接原理解析和分模块实现
- 基于Qt、FFMpeg的音视频播放器
- 基于OpenCV的视频车速监测
- Qt5开发及_高清版含电子书、随书PPT以
- opencv-4.1.0-vc14_vc15.rar
评论
共有 条评论