在android上使用opencv传递Flann matcher的参数

时间:2016-07-25 16:13:21

标签: android opencv indexing flannbasedmatcher

我正在尝试通过编辑索引参数来自定义opencv中的Flann匹配器,但我正在使用java for android,我不知道它是如何工作的。
我找到了这个answer,但我不知道如何以正确的方式应用它 这是我试过的代码

    String yamlParam="%YAML:1.0\n"
            + "indexParams:\n"
            + "   -\n"
            + "      name: algorithm\n"
            + "      type: 23\n"
            + "      value: 1\n"
            + "   -\n"
            + "      name: trees\n"
            + "      type: 4\n"
            + "      value: 4\n";

    File outputF = File.createTempFile("FlannfDetectorParams", ".YAML", outputDir);
    writeToFile(outputF,yamlParam);
    descriptorMatcher.read(outputF.getPath());

这是我得到的错误

  

OpenCV错误:断言失败(sp.type()== FileNode :: SEQ)in virtual void cv :: FlannBasedMatcher :: read(const cv :: FileNode&)

1 个答案:

答案 0 :(得分:1)

您必须使用yml配置文件的完整格式:

%YAML:1.0
---
format: 3
indexParams:
   -
      name: algorithm
      type: 23
      value: 1
   -
      name: trees
      type: 4
      value: 4
searchParams:
   -
      name: checks
      type: 4
      value: 32
   -
      name: eps
      type: 5
      value: 0.
   -
      name: sorted
      type: 15
      value: 1