FLANN для OpenCV Java

Средство сопоставления FLANN в OpenCV C++ работает нормально, но, оглядываясь вокруг, кажется, что в OpenCV Java нет оболочки для FlannBasedMatcher, но я нашел два возможных (?) Обходных пути, которые я не совсем уверен, как использовать.

Первый ответ на предыдущий вопрос:

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

Но я не совсем уверен, что он подразумевает под "созданием Matcher с использованием общей фабрики matcher и установки параметров"

Другой вариант - использовать JavaCV, который, кажется, имеет реализацию flann:

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

Я разрабатывал приложение для Android с использованием исходных библиотек Java OpenCV, но мне интересно, возможно ли использовать JavaCV вместе с тем, чтобы я мог использовать функции FLANN JavaCV, или использование обеих библиотек одновременно не будет работать? Или кто-нибудь знает, как использовать предложение первых ответов?

Любая помощь будет принята с благодарностью, спасибо.

2 ответа

  1. Для первого метода "создание Matcher с использованием общей фабрики matcher и установки параметров" означает следующий код

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

Для настройки параметров в Java вам нужно будет создать файл конфигурации yaml и использовать matcher.read() читать параметры, так как в настоящее время нет обертки для параметров конфигурации в Java. Еще одна вещь, которую стоит отметить

  1. Что касается использования JavaCV, комментарий medloh является правильным. Это добавляет сложности, но возможно.

Была ошибка в java-обёртке OpenCV до версии 3.2. Последняя версия не имеет этого дефекта, поэтому вы можете создать экземпляр соответствия FLANN в Java следующим образом:

FlannBasedMatcher matcher = FlannBasedMatcher.create();

DescriptorMatcher - это устаревшая оболочка, я бы не рекомендовал ее использовать.

Другие вопросы по тегам