Я работаю в OpenCV, но не думаю, что для этого есть функция. Я могу найти функцию для поиска аффинных преобразований, но аффинные преобразования включают масштабирование, и я хочу рассматривать только вращение + перенос.
Представьте, что у меня есть два набора точек в 2d - допустим, каждый набор имеет ровно 50 точек.
]Например установить A = {x1, y1, x2, y2, ..., x50, y50}
установить B = {x1 ', y1', x2 ', y2', ..., x50 ', y50'}
Я хочу найти комбинацию вращения и перемещения, которая наиболее приближена к отображению набора A на набор B. Я бы определил «ближайший», поскольку минимизирует среднее расстояние между точками в A и соответствующими точками в BIe, минимизирует среднее расстояние между (x1, y1) и (x1 ', y1') и т. д.
Думаю, я мог бы использовать грубую силу для проверки всех возможных перемещений и поворотов, но это было бы крайне неэффективно. Кто-нибудь знает способ попроще?
Спасибо!