2

OpenCV C++ 中的 FLANN 匹配器工作正常,但环顾四周,OpenCV Java 中似乎没有 FlannBasedMatcher 的包装器,但我发现了两种可能的(?)解决方法,我不太确定如何使用。

首先是对上一个问题的回答:

http://answers.opencv.org/question/12429/matching-orb-descriptors-with-flann-lsh-on-android/?answer=12460#post-id-12460

但我不太确定他所说的“使用通用匹配器工厂创建匹配器并设置参数”是什么意思

另一种选择是使用 JavaCV,它似乎有一个 flann 的实现:

https://github.com/bytedeco/javacpp-presets/blob/master/opencv/src/main/java/org/bytedeco/javacpp/opencv_flann.java

我一直在使用原始 OpenCV Java 库在 android 上开发应用程序,但我想知道,是否可以同时使用 JavaCV,以便我可以使用 JavaCV 的 FLANN 函数,或者同时使用这两个库不起作用? 或者有谁知道如何使用第一个答案的建议?

任何帮助将不胜感激,谢谢。

4

2 回答 2

2
  1. 对于第一种方法,“使用通用匹配器工厂创建匹配器并设置参数”是指以下代码

DescriptorMatcher matcher = DescriptorMatcher.create(DescriptorMatcher.FLANNBASED);

要在 Java 中设置参数,您必须创建一个 yaml 配置文件并matcher.read()用于读取参数,因为目前 Java 中没有配置参数的包装器。还有一点需要注意的是

  1. 至于使用JavaCV,medloh 的评论是正确的。它增加了复杂性,但也是可能的。
于 2015-12-05T23:18:35.657 回答
0

在 3.2 版之前的 OpenCV java 包装中存在一个错误。最近的版本没有这个缺陷,因此您可以在 Java 中实例化 FLANN 匹配器,如下所示:

FlannBasedMatcher matcher = FlannBasedMatcher.create();

DescriptorMatcher 是过时的包装器,我不建议使用它。

于 2017-03-17T06:55:19.327 回答