2015-04-23 5 views
2

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

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

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

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

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

+0

Раньше я использовал оба кода. Это запутывает, когда вы смешиваете java-привязки opencv и JavaCV. У вас могут быть конфликты с именами, поэтому вы должны использовать полностью квалифицированные имена пакетов, и это добавляет сложности, но это сработало, когда я попробовал это пару лет назад, когда JavaCV реализовал некоторые средства обнаружения лиц, недоступные в opencv. Извините, не могу помочь с Фланн. – medloh

ответ

2
  1. Для первого способа, «создание Искателя с использованием общих Сличитель завода и настройки параметров» означает следующий код

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

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

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

В версии с открытым кодом OpenCV произошла ошибка в версии 3.2. Последняя версия не имеет этот недостаток, так что вы можете создать экземпляр Flann Искателя в Java следующим образом:

FlannBasedMatcher matcher = FlannBasedMatcher.create();

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

Смежные вопросы