2016-08-15 11 views
0

Ich habe zwei Weltkoordinatensysteme, wie coorA, coorB. Jedes System hat 4 Punkte (3D-Punkte mit xyz) und beide im rechten Koordinatensystem.Berechne die Transformation zwischen zwei Koordinatenfeldern

Ich habe es mit cv::svd versucht, aber das Ergebnis war nicht richtig. Ich möchte die Rotations- und Translationsmatrix von coorA bis coorB berechnen. Wie mache ich das?

Antwort

0

Ihr System ist überdefiniert, daher sollten Sie eine Methode verwenden, die ein Fehlermaß minimiert. Eine gute Lösung ist Umeyamas Methode.

Ausgehend von Ihren Tags bevorzugen Sie eine Lösung innerhalb von OpenCV, aber Sie müssten diese Methode selbst implementieren. Sie scheinen C++ zu verwenden, die einfachste Lösung ist wahrscheinlich, die Eigen-Math-Header-Bibliotheken und ihre Funktion Eigen::umeyama zu verwenden. OpenCV kann data conversions to Eigen tun.

+0

, Sie haben Recht, das System ist überdefiniert. Das zwei Koordinatensystem war in demselben Rahmen, also fusioniere ich das 2 System und es gibt keine Notwendigkeit, sie umzuwandeln. Danke! – zdczdcc

Verwandte Themen