Ceres コスト関数への入力として 2 つのパラメーター変換があります。これらは両方とも、ポイントを再投影するために結合される変換です。どちらの変換も、Rodrigues 回転ベクトルと並進ベクトルの形式で与えられます。
私の質問は、ポイントを再投影するために、コスト関数内でこれら 2 つの変換を (Ceres API を使用して) 結合するにはどうすればよいですか?
Ceres コスト関数への入力として 2 つのパラメーター変換があります。これらは両方とも、ポイントを再投影するために結合される変換です。どちらの変換も、Rodrigues 回転ベクトルと並進ベクトルの形式で与えられます。
私の質問は、ポイントを再投影するために、コスト関数内でこれら 2 つの変換を (Ceres API を使用して) 結合するにはどうすればよいですか?
ceres/rotation.h ヘッダー ファイルの関数を見てください: http://ceres-solver.org/nnls_modeling.html#rotation-h
たとえば、ロドリゲス ベクトルを回転行列に変換できます。
void AngleAxisToRotationMatrix<T>(T const *angle_axis, T *R)
これにより、回転と平行移動を組み合わせたすべての変換に対して独自の 3x4 変換マトリックスを作成できます (そのためにhttp://eigen.tuxfamily.org/index.php?title=Main_Pageの Eigen を使用できます)。次に、行列の乗算により、最終的な変換が生成されます (順序に注意してください)。