В моем проекте я собираюсь дать серверу изображение, и сервер должен искать похожие изображения в наборе данных.
Я использую Matcher на основе orb и Flann, чтобы найти совпадения между изображением запроса и каждым изображениемв наборе данных.Это мой файл searcher.py, в котором по-прежнему отсутствует фрагмент кода в зависимости от совпадений:
# import the necessary packages
from orbdescriptor import orbdescriptor
from orb_pickle import orb_pickle
import argparse
import glob
import cv2
import pickle
import numpy as np
class Searcher:
def __init__(self, indexPath):
# store our index path
self.indexPath = indexPath
def search(self, kp, desc, limit = 10):
# initialize our dictionary of results
results = {}
FLANN_INDEX_LSH = 0
MIN_MATCH_COUNT = 10
orbpickle = orb_pickle()
index_params = dict(algorithm = FLANN_INDEX_LSH, table_number = 12, key_size = 20, multi_probe_level = 2)
search_params = dict(checks=50) # or pass empty dictionary
flann = cv2.FlannBasedMatcher(index_params,search_params)
# open the index file for reading
keypoints_database = pickle.load( open( "keypoints_database.p", "rb" ) )
for keypoint_item in keypoints_database:
kp1, desc1, image_path = orbpickle.unpickle_keypoints(keypoint_item)
if (len(desc1) > 0):
desc = np.float32(desc)
desc1 = np.float32(desc1)
matches = flann.knnMatch(desc,desc1,k=2)
Вопрос в том, что я могу сделать, чтобы найти похожие изображения в наборе данных в зависимости от совпадений, найденных в коде.выше??Любая помощь будет оценена ...