在人脸识别的训练阶段,需要读取文件夹下的人脸图像。其中一种方法是先将文件夹下的图像文件路径path与类别label先写入一个.csv文件中,在训练时只需读取.csv文件即可。
下面是结合网上参考的读取csv文件方法,加以修改以适用于自己的人脸识别系统来实现的读取csv文件代码。
(1)代码备注:
/*
函数:static void read_csv(const string& filename,vector<Mat>images, vector<int> labels,int CountMax,int CountMin, char separator=';')
功能:读取csv文件的图像路径和标签。主要使用stringstream和getline()
参数说明:filename--要读取的csv文件
images----读取的图片(向量)
labels----读取的图片对应标签 (向量)
CountMax,int CountMin--读取的每一类别的图片下标的最大值和最小值(默认每个类别共10张照片)
separator-分隔符,起控制读取的作用。可自定义为逗号空格等,(此程序中)默认为分号
返回值:空
*/
/*
备注:(函数内部涉及到的部分类和方法说明)
1. stringstream:字符串流。
功能:将内存中的对象与流绑定。
2. getline():
函数原型:istream &getline( ifstream &input,string &out,char dielm)
参数说明:Input--输入文件
out----输出字符串
dielm