0
我有兩個世界座標系,例如coorA
,coorB
。每個系統有4個點(帶xyz的3D點),並且都在右手座標系中。我試過cv::svd
,但結果不對。我想計算從coorA
到coorB
的旋轉和平移矩陣。我怎麼做?在兩個座標系中給出的點之間的計算轉換
我有兩個世界座標系,例如coorA
,coorB
。每個系統有4個點(帶xyz的3D點),並且都在右手座標系中。我試過cv::svd
,但結果不對。我想計算從coorA
到coorB
的旋轉和平移矩陣。我怎麼做?在兩個座標系中給出的點之間的計算轉換
您的系統超定義,因此您應該使用最小化錯誤度量的方法。 Umeyama的方法是一個很好的解決方案。
從你的標籤判斷,你更喜歡OpenCV中的解決方案,但是你需要自己實現這樣的方法。 您似乎在使用C++,最簡單的解決方案可能是使用Eigen數學頭文件庫及其功能Eigen::umeyama。 OpenCV可以做data conversions to Eigen。
,你是對的,系統是超定義的。兩個座標系在同一個框架中,所以我合併了2個系統,沒有必要改變他們。謝謝! – zdczdcc