C++ 随机树CvRTrees持久性问题opencv
我正在尝试使用Opencv实现一个随机树分类器。我成功地用opencv实现了它,并且它正在工作 然后我决定将培训部分与分类部分分开。 这样做的目的是保存经过训练的森林,并在需要分类时将其重新加载 我尝试了两种不同的方式:C++ 随机树CvRTrees持久性问题opencv,c++,opencv,computer-vision,C++,Opencv,Computer Vision,我正在尝试使用Opencv实现一个随机树分类器。我成功地用opencv实现了它,并且它正在工作 然后我决定将培训部分与分类部分分开。 这样做的目的是保存经过训练的森林,并在需要分类时将其重新加载 我尝试了两种不同的方式: 使用超类的写入和读取方法 使用超类的存储和加载方法 但是,没有将树保存到文件的旧实现的结果是不同的,而且是最糟糕的 以下代码是第二点的实现: 要存储它,请执行以下操作: for (unsigned i=0; i<scenes.size(); ++i) { ch
for (unsigned i=0; i<scenes.size(); ++i) {
char class_fname[50];
char output[100];
sprintf(class_fname,"class_%d.xml",i);
sprintf(output,"class_%d",i);
//classifiers[i]->save(class_fname,output);
classifiers[i]->save(class_fname);
}
for(无符号i=0;isave(类名称,输出);
分类器[i]->save(类名称);
}
要重新加载它们,请执行以下操作:
for (unsigned int i = 0; i<CLUSTERING_N_CENTERS;i++){
char class_fname[50];
char output[100];
sprintf(class_fname,"class_%d.xml",i);
sprintf(output,"class_%d",i);
classifiers[i] = new CvRTrees();
//classifiers[i]->load(class_fname,output);
classifiers[i]->load(class_fname);
}
for(无符号整数i=0;iload(类名称,输出);
分类器[i]->负载(类名称);
}
我正在使用opencv 2.4.6
有人对此代码有什么建议吗?这是由于文件错误导致的错误 所以坚持是有效的 但如果有人需要实现它,我会将此帖子作为示例