【问题标题】:Random tree CvRTrees persistence issue opencv随机树 CvRTrees 持久性问题 opencv
【发布时间】:2013-12-21 06:01:12
【问题描述】:

我正在尝试使用 Opencv 实现随机树分类器。我用 opencv 成功实现了它,它正在工作。

然后我决定把训练部分和分类部分分开。 这个想法是保存经过训练的森林,并在您想要对某物进行分类时将其加载回来。

我尝试了两种不同的方式:

  1. 使用超类 CvStatModelwrite 和 read 方法
  2. 使用超类 CvStatModelstore 和 load 方法

但未将树保存到文件的旧实现的结果不同且最差。

以下代码是第二点的实现:

存储它:

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 (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);
  }

我正在使用 opencv 2.4.6 有人对此代码有建议吗?

【问题讨论】:

    标签: c++ opencv computer-vision


    【解决方案1】:

    是文件错误导致的错误!

    所以持久性起作用了!

    但如果有人需要实现它,我会将帖子作为示例!

    【讨论】:

      猜你喜欢
      • 2013-12-03
      • 1970-01-01
      • 2011-01-16
      • 1970-01-01
      • 2017-04-25
      • 1970-01-01
      • 1970-01-01
      • 2012-09-12
      • 2013-05-10
      相关资源
      最近更新 更多