Я работаю в 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') и т. д.
Полагаю, я мог бы использовать грубую силу, проверяя все возможные перемещения и повороты, но это было бы крайне неэффективно. Кто-нибудь знает более простой способ?
Спасибо!