Вывод результатов FLANN в Python

В настоящее время я внедряю LSH с использованием FLANN.

matches = flann.knnMatch(des1,k=2)

des1 - это двоичный дескриптор моего изображения запроса, а flann - переменная flanbasedmatcher (с использованием алгоритма FLANN LSH), которая содержит весь двоичный дескриптор базы данных изображений.

Как вывести результат knnMatch?

1 ответ

Возможно, вы захотите взглянуть на эту ссылку. Это пример opencv, показывающий, как использовать FlannBasedMatcher. Об этом много тем, которые вы должны искать, прежде чем спрашивать.

редактировать

Я предполагаю, что у вас есть индекс FLANN, чтобы соответствовать des1, так что есть функция, которая возвращает, если есть совпадение или нет.

MIN_MATCH_COUNT = 10
def flann_match(des1):
    matches = flann.knnMatch(des1, k=2)
    # Check the distance to keep only the good matches.
    matches = [m[0] for m in matches if len(m) == 2 and m[0].distance < m[1].distance * 0.75]
    if len(matches < MIN_MATCH_COUNT)
        return False
    return True

Эта реализация довольно проста, вам нужно использовать cv2.findHomography() ( документация), чтобы получить лучшие и более точные результаты, зависит от того, что ваша цель здесь.

Надеюсь, поможет.

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