0

私は ceres (非線形最小二乗) ソルバーと c++ テンプレート プログラミングを初めて使用します。http://grail.cs.washington.edu/projects/bal/に投稿されたデータセットをダウンロードして、ceres ソルバーを正常にインストールし、ubuntu で bundle_adjuster.cc コードを実行しました。プロジェクトでバンドル調整をブラックボックスとして使用する必要があります。洗練されたカメラのポーズ、データセットの 3 次元座標を印刷したい。これを行う方法、新しいポーズ マトリックスと 3D 座標を取得するには、bundle_adjuster.cc で何を編集する必要がありますか。

ありがとう。

4

1 に答える 1

1

洗練されたカメラ ポーズと 3D オブジェクト ポイントは bal_problem 構造体にあります。

double* points = bal_problem->mutable_points();
double* cameras = bal_problem->mutable_cameras();

それらは double を持つ単なる配列であり、すべての 3D ポイントは 3 (X、Y、Z) を取り、すべてのカメラは 6 (Rodrigues 角度-軸の回転と平行移動) の double を取ります。

したがって、ポイント配列の場合: X0 Y0 Z0 X1 Y1 Z1, ... カメラの場合: R00 R10 R20 X0 Y0 Z0 R01 R21 R31 X1 Y1 Z1, ...

于 2015-12-14T14:04:52.177 に答える