2016-08-15 3 views
0

coorA, coorB과 같은 두 개의 좌표계가 있습니다. 각 시스템에는 4 포인트 (xyz가있는 3D 포인트)가 있으며 두 좌표계 모두 오른쪽 좌표계에 있습니다.두 좌표계에서 주어진 포인트 간의 변환 계산

나는 cv::svd으로 시도했지만 결과가 올바르지 않습니다. 회전 및 변환 행렬을 coorA에서 coorB으로 계산하고 싶습니다. 어떻게해야합니까?

답변

0

시스템이 지나치게 정의되어 있으므로 오류 측정을 최소화하는 방법을 사용해야합니다. 좋은 해결책은 Umayama의 방법입니다.

태그로 판단 할 때 OpenCV 내의 솔루션을 선호하지만 거기에서 직접 이러한 방법을 구현해야합니다. C++을 사용하는 것 같습니다. 가장 쉬운 해결책은 Eigen 수학 헤더 라이브러리와 해당 함수 Eigen::umeyama을 사용하는 것입니다. OpenCV는 data conversions to Eigen 할 수 있습니다.

+0

여러분 말이 맞습니다. 시스템이 과도하게 정의되었습니다. 두 좌표계가 같은 프레임에 있었기 때문에 2 시스템을 병합 했으므로 변환 할 필요가 없습니다. 감사합니다! – zdczdcc