Я новичок в решениях ceres (нелинейный метод наименьших квадратов) и программирования на c ++. Я успешно установил Ceres Solver и выполнил код bundle_adjuster.cc в Ubuntu, загрузив набор данных, размещенный на http://grail.cs.washington.edu/projects/bal/. Я должен использовать Bundle Adjustment как черный ящик в проекте. Я хочу напечатать уточненные позы камеры, трехмерные координаты наборов данных. Как это сделать, что я должен отредактировать в bundle_adjuster.cc, чтобы получить новую матрицу поз и трехмерную координату.
Благодарю.
Изысканные позы камеры и 3D-объекты находятся в структуре bal_problem:
double* points = bal_problem->mutable_points();
double* cameras = bal_problem->mutable_cameras();
Они представляют собой массив с двойными числами, каждая 3D-точка занимает 3 (X, Y, Z), а каждая камера — 6 (вращение оси Родрига с поворотом и сдвигом).
Итак, для массива точек: X0 Y0 Z0 X1 Y1 Z1, … и для камер: R00 R10 R20 X0 Y0 Z0 R01 R21 R31 X1 Y1 Z1, …
Других решений пока нет …