2016-08-15 10 views
0

У меня есть две системы координат мира, такие как coorA, coorB. Каждая система имеет 4 точки (трехмерные точки с xyz) и обе в правой системе координат.Вычислить преобразование между точками, заданными в двух координатных кадрах

Я пробовал его с cv::svd, но результат был неправильным. Я хочу вычислить матрицу поворота и перевода от coorA до coorB. Как мне это сделать?

ответ

0

Ваша система переопределена, поэтому вы должны использовать метод, который минимизирует меру ошибки. Хорошим решением является метод Умеямы.

Судя по вашим тегам, вы предпочитаете решение в OpenCV, но там вам нужно будет реализовать такой метод самостоятельно. Вы, кажется, используете C++, проще всего использовать библиотеки заголовков Eigen math и его функцию Eigen::umeyama. OpenCV может делать data conversions to Eigen.

+0

, вы правы, система переопределена. Две системы координат были в одном кадре, поэтому я объединять систему 2, и нет необходимости их преобразовывать. Спасибо! – zdczdcc