人脸识别,完整代码和素材
opencv学习之人脸识别-代码加素材加opencv配置路径;
test文件夹内是待测试的图片,train文件夹内是训练出来的图片;
namelist路径要根据你实际的路径,使用notepad++更改即可;
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-07-09 09:22 faceTest
目录 0 2018-07-06 10:39 faceTest.vs
目录 0 2018-07-06 10:39 faceTest.vsfaceTest
目录 0 2018-07-06 10:39 faceTest.vsfaceTestv14
文件 38912 2018-07-09 09:22 faceTest.vsfaceTestv14.suo
目录 0 2018-07-09 09:18 faceTestDebug
文件 152064 2018-07-09 09:18 faceTestDebugfaceTest.exe
文件 779912 2018-07-09 09:18 faceTestDebugfaceTest.ilk
文件 2961408 2018-07-09 09:18 faceTestDebugfaceTest.pdb
目录 0 2018-07-09 09:17 faceTestfaceTest
目录 0 2018-07-09 09:17 faceTestfaceTestDebug
文件 185 2018-07-09 09:18 faceTestfaceTestDebugfaceTest.log
目录 0 2018-07-09 09:18 faceTestfaceTestDebugfaceTest.tlog
文件 576 2018-07-09 09:18 faceTestfaceTestDebugfaceTest.tlogCL.command.1.tlog
文件 21306 2018-07-09 09:18 faceTestfaceTestDebugfaceTest.tlogCL.read.1.tlog
文件 496 2018-07-09 09:18 faceTestfaceTestDebugfaceTest.tlogCL.write.1.tlog
文件 203 2018-07-09 09:18 faceTestfaceTestDebugfaceTest.tlogfaceTest.lastbuildstate
文件 2004 2018-07-09 09:18 faceTestfaceTestDebugfaceTest.tloglink.command.1.tlog
文件 6012 2018-07-09 09:18 faceTestfaceTestDebugfaceTest.tloglink.read.1.tlog
文件 472 2018-07-09 09:18 faceTestfaceTestDebugfaceTest.tloglink.write.1.tlog
文件 554369 2018-07-09 09:18 faceTestfaceTestDebuglearn.obj
文件 748544 2018-07-09 09:18 faceTestfaceTestDebugvc140.idb
文件 1585152 2018-07-09 09:17 faceTestfaceTestDebugvc140.pdb
文件 48150951 2018-07-09 09:21 faceTestfaceTestMyFaceLBPHModel.xml
文件 774 2018-05-29 18:04 faceTestfaceTestPropertySheetOpencv3.4.1X64.props
文件 474 2018-07-07 13:40 faceTestfaceTestiJi.h
文件 6199 2018-07-07 13:40 faceTestfaceTestfaceTest.vcxproj
文件 1063 2018-07-07 13:40 faceTestfaceTestfaceTest.vcxproj.filters
文件 6383 2018-07-09 09:17 faceTestfaceTestlearn.cpp
文件 7613641 2018-05-09 00:39 faceTestfaceTestmodel.xml
文件 21684 2018-07-09 09:06 faceTestfaceTest
ame_list.txt
............此处省略336个文件信息
///////////////////////////////////////////////////
// 本程序分为两个部分
// 第一部分为根据自己的图片数据库训练模型
// 第二部分为调用训练后的模型来测试单幅图片
// 在程序运行之前,需要将图片进行前期处理
// 将图片的格式转成.txt文档的形式
// 具体可参考博文:http://blog.csdn.net/xingchenbingbuyu/article/details/51407336
//第一部分
#include
#include
#include
#include
#include
using namespace cv;
using namespace std;
static Mat norm_0_255(InputArray _src) {
Mat src = _src.getMat();
// 创建和返回一个归一化后的图像矩阵:
Mat dst;
switch (src.channels()) {
case 1:
//归一化函数 模式的最小值 最大值 归一化的类型:线性归一化
cv::normalize(_src dst 0 255 NORM_MINMAX CV_8UC1);
break;
case
3:
cv::normalize(_src dst 0 255 NORM_MINMAX CV_8UC3);
break;
default:
src.copyTo(dst);
break;
}
return dst;
}
//使用CSV文件去读图像和标签,主要使用stringstream和getline方法
static void read_csv(const string& filename vector& images vector& labels char separator = ‘;‘)
{
//以只读方式打开文件流
std::ifstream file(filename.c_str() ifstream::in);
if (!file) {
string error_message = “No valid input file was given please check the given filename.“;
CV_Error(CV_StsBadArg error_message);
}
string line path classlabel;
while (getline(file line)) {
stringstream liness(line);
//得到路径
getline(liness path separator);
//得到标签
getline(liness classlabel);
if (!path.empty() && !classlabel.empty()) {
//推出 后面的第一个元素
images.push_back(imread(path 0));
labels.push_back(atoi(classlabel.c_str()));
}
}
}
int main()
{
//读取你的CSV文件路径.
//string fn_csv = string(argv[1]);
string fn_csv = “name_list.txt“;
// 2个容器来存放图像数据和对应的标签
vector images;
vector labels;
// 读取数据. 如果文件不合法就会出错
// 输入的文件名已经有了.
// 如果没有读取到足够图片,也退出.
try
{
read_csv(fn_csv images labels);
}
catch (cv::Exception& e)
{
cerr << “Error opening file ““ << fn_csv << ““. Reason: “ << e.msg << endl;
// 文件有问题,我们啥也做不了了,退出了
exit(1);
}
if (images.size() <= 1) {
string error_message = “This demo needs at least 2 images to work. Please add more images to your data set!“;
CV_Error(CV_StsError error_message);
}
// 下面的几行代码仅仅是从你的数据集中移除最后一张图片
//[gm:自然这里需要根据自己的需要修改,他这里简化了很多问题]
Mat testSample = images[images.size() - 1];
int testLabel = labels[labels.size() - 1];
images.pop_back();
labels.pop_back();
// 下面几行创建了一个特征脸模型用于人脸识别,
// 通过CSV文件读取的图像和标签训练它。
// T这里是一个完整的PCA变换
//如果你只想保留10个主成分,使用如下代码
// cv::createEigenFaceRecognizer(10);
//
// 如果你还希望使用置信度阈值来初始化,使用以下语句:
// cv::createEigenFaceRecognizer(10 123.0);
//
// 如果你使用所有特征并且使用一个阈值,使用以下语句:
// cv::createEigenFaceRecognizer(0 123.0);
Ptr model2 = createLBPHFaceRecognizer();
///////////////////////////////////////////////////////////////////////////
// 训练模型部分 调用库函数,之后xml文件的大小是42M;真大;
model2->train(images labels);
model2->save(“MyFaceLBPHModel.xml“)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-07-09 09:22 faceTest
目录 0 2018-07-06 10:39 faceTest.vs
目录 0 2018-07-06 10:39 faceTest.vsfaceTest
目录 0 2018-07-06 10:39 faceTest.vsfaceTestv14
文件 38912 2018-07-09 09:22 faceTest.vsfaceTestv14.suo
目录 0 2018-07-09 09:18 faceTestDebug
文件 152064 2018-07-09 09:18 faceTestDebugfaceTest.exe
文件 779912 2018-07-09 09:18 faceTestDebugfaceTest.ilk
文件 2961408 2018-07-09 09:18 faceTestDebugfaceTest.pdb
目录 0 2018-07-09 09:17 faceTestfaceTest
目录 0 2018-07-09 09:17 faceTestfaceTestDebug
文件 185 2018-07-09 09:18 faceTestfaceTestDebugfaceTest.log
目录 0 2018-07-09 09:18 faceTestfaceTestDebugfaceTest.tlog
文件 576 2018-07-09 09:18 faceTestfaceTestDebugfaceTest.tlogCL.command.1.tlog
文件 21306 2018-07-09 09:18 faceTestfaceTestDebugfaceTest.tlogCL.read.1.tlog
文件 496 2018-07-09 09:18 faceTestfaceTestDebugfaceTest.tlogCL.write.1.tlog
文件 203 2018-07-09 09:18 faceTestfaceTestDebugfaceTest.tlogfaceTest.lastbuildstate
文件 2004 2018-07-09 09:18 faceTestfaceTestDebugfaceTest.tlogli
文件 6012 2018-07-09 09:18 faceTestfaceTestDebugfaceTest.tlogli
文件 472 2018-07-09 09:18 faceTestfaceTestDebugfaceTest.tlogli
文件 554369 2018-07-09 09:18 faceTestfaceTestDebuglearn.obj
文件 748544 2018-07-09 09:18 faceTestfaceTestDebugvc140.idb
文件 1585152 2018-07-09 09:17 faceTestfaceTestDebugvc140.pdb
文件 48150951 2018-07-09 09:21 faceTestfaceTestMyFaceLBPHModel.xm
文件 774 2018-05-29 18:04 faceTestfaceTestPropertySheetOpencv3.4.1X64.props
文件 474 2018-07-07 13:40 faceTestfaceTestiJi.h
文件 6199 2018-07-07 13:40 faceTestfaceTestfaceTest.vcxproj
文件 1063 2018-07-07 13:40 faceTestfaceTestfaceTest.vcxproj.filters
文件 6383 2018-07-09 09:17 faceTestfaceTestlearn.cpp
文件 7613641 2018-05-09 00:39 faceTestfaceTestmodel.xm
文件 21684 2018-07-09 09:06 faceTestfaceTest
ame_list.txt
............此处省略336个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)