Моя цель - найти сходство между изображением истинности и массивом других изображений, используя функцию обнаружения и сопоставления функций opencv. Пока все идет хорошо, но я не уверен, что делать с объектом DMatch.
В настоящее время я делаю ближайшего соседа для каждого набора совпадений (с учетом match.distance и местоположения ключевой точки), чтобы найти изображение с наименьшим расстоянием до изображения истинности. Я чувствую, что это не сложный подход.
Существуют ли документы, в которых исследователи используют какой-то метод «найти обратную матрицу признаков / получить матрицу тождеств»?
простой образец для каждого совпадения:
# similarity distance
sim_dist = mat.distance
# location difference
(x_1, y_1) = k_p1[img1_idx].pt
(x_2, y_2) = k_p2[img2_idx].pt
loc_dist = np.linalg.norm(np.subtract((x_1, y_1), (x_2, y_2)))
result += loc_dist * sim_dist
Как видите, чем меньше значение результата, тем более похожи изображения.
Спасибо.