在 android 上使用 opencv 为 Flann 匹配器传递索引参数
passing index Parameters for Flann matcher using opencv on android
我正在尝试通过编辑索引参数在 opencv 中自定义 Flann 匹配器,但我使用 java 作为 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 Error: Assertion failed (sp.type() == FileNode::SEQ) in virtual void cv::FlannBasedMatcher::read(const cv::FileNode &)
你必须使用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
我在 Android SDK 28 和 OpenCV 4.5.2 中有同样的问题。
你应该使用外部故事使用绝对路径。
我正在尝试通过编辑索引参数在 opencv 中自定义 Flann 匹配器,但我使用 java 作为 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 Error: Assertion failed (sp.type() == FileNode::SEQ) in virtual void cv::FlannBasedMatcher::read(const cv::FileNode &)
你必须使用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
我在 Android SDK 28 和 OpenCV 4.5.2 中有同样的问题。
你应该使用外部故事使用绝对路径。