Я пытаюсь найти простой алгоритм для поиска соответствия между двумя наборами 2D-точек (регистрация). Один набор содержит шаблон объекта, который я бы хотел найти, а второй набор содержит точки, принадлежащие интересующему объекту, но он может быть шумным (отсутствующие точки, а также дополнительные точки, которые не принадлежат объекту) , Оба набора содержат примерно 40 точек в 2D. Второй набор представляет собой гомографию первого набора (перевод, поворот и преобразование перспективы).Простой алгоритм регистрации для небольших наборов двумерных точек
Меня интересует поиск алгоритма регистрации для получения точечного соответствия. Я буду использовать эту информацию, чтобы найти преобразование между двумя наборами (все это в OpenCV).
Может ли кто-нибудь предложить алгоритм, библиотеку или небольшой бит кода, который мог бы выполнить эту работу? Поскольку я имею дело с маленькими наборами, это не должно быть супер оптимизировано. В настоящее время, мой подход является RANSAC-подобный алгоритм:
- Выберите 4 случайных точек из множества 1 и из множества 2.
- Compute преобразование матрицы H (с использованием OpenCV getPerspective())
- Деформация 1-й набор точек с помощью H и проверить, как они выровнены со вторым набором точек.
- Повторите 1-3 раза и выберите лучшее преобразование в соответствии с некоторой метрикой (например, суммой квадратов).
Любые идеи? Спасибо за ваш вклад.
'резюме :: findHomography' требует, чтобы две точки множества (srcPoints и dstPoints здесь) соответствуют. Мне интересно узнать, как найти это соответствие, т. Е. Какие точки в облаке точки источника соответствуют тем точкам облака точки назначения. Подход RANSAC по-прежнему требует разумного количества ярусов. Простое прохождение двух нескоординированных точечных облаков не сработает. – lucab
Я думал, что у вас уже есть спички, но вы хотите их разбить. однако, вам просто нужен алгоритм регистрации. Я попытаюсь вернуться позже –
@HumamHelfawi Какой алгоритм регистрации вы предлагаете? (В моем случае у меня есть вращающийся и переведенный, несколько шумный набор, который я хочу сопоставить с предопределенным набором.) –