FLANN для OpenCV Java
Средство сопоставления FLANN в OpenCV C++ работает нормально, но, оглядываясь вокруг, кажется, что в OpenCV Java нет оболочки для FlannBasedMatcher, но я нашел два возможных (?) Обходных пути, которые я не совсем уверен, как использовать.
Первый ответ на предыдущий вопрос:
Но я не совсем уверен, что он подразумевает под "созданием Matcher с использованием общей фабрики matcher и установки параметров"
Другой вариант - использовать JavaCV, который, кажется, имеет реализацию flann:
Я разрабатывал приложение для Android с использованием исходных библиотек Java OpenCV, но мне интересно, возможно ли использовать JavaCV вместе с тем, чтобы я мог использовать функции FLANN JavaCV, или использование обеих библиотек одновременно не будет работать? Или кто-нибудь знает, как использовать предложение первых ответов?
Любая помощь будет принята с благодарностью, спасибо.
2 ответа
- Для первого метода "создание Matcher с использованием общей фабрики matcher и установки параметров" означает следующий код
DescriptorMatcher matcher = DescriptorMatcher.create(DescriptorMatcher.FLANNBASED);
Для настройки параметров в Java вам нужно будет создать файл конфигурации yaml и использовать matcher.read()
читать параметры, так как в настоящее время нет обертки для параметров конфигурации в Java. Еще одна вещь, которую стоит отметить
- Что касается использования JavaCV, комментарий medloh является правильным. Это добавляет сложности, но возможно.
Была ошибка в java-обёртке OpenCV до версии 3.2. Последняя версия не имеет этого дефекта, поэтому вы можете создать экземпляр соответствия FLANN в Java следующим образом:
FlannBasedMatcher matcher = FlannBasedMatcher.create();
DescriptorMatcher - это устаревшая оболочка, я бы не рекомендовал ее использовать.