opencv特征脸识别程序,读取CSV文件段程序,求详细解释!回答得好,加分!

staticvoidread_csv(conststring&filename,vector<Mat>&images,vector<int>&labels,charsep... static void read_csv(const string& filename, vector<Mat>& images, vector<int>& 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()));
}
}
}
展开
 我来答
小卒小丁丁
推荐于2016-10-29 · TA获得超过146个赞
知道小有建树答主
回答量:106
采纳率:100%
帮助的人:116万
展开全部
这个东西以前做过,有点忘记了,不过这里就是读文件,然后得到标签,以 ; 为分隔对文件进行读取。 标签就是后来进行特征脸识别的“数据库”
追问
恩恩,是这个道理!images.push_back(imread(path, 0)); labels.push_back(atoi(classlabel.c_str()));什么意思?还有vector& images, vector& labels这种数据类型很奇怪,怎么看?
追答
你看看他调用的时候,Mat是不是在哪定义的或者类似于这样的vector Mat 或者 #define int Mat

labels是vector类型的push_back是他的命令,就是存进去的意思,atoi是字符串转整数

vector意思就是push_back只能存Mat类型的
vector意思就是push_back只能存int类型的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式