2015-10-08 13 views
0

Я новичок в решающем процессоре ceres (нелинейный наименьший квадрат) и программировании на языке C++. Я успешно установил решатель ceres и выполнил код bundle_adjuster.cc на ubuntu, загрузив набор данных, размещенный на http://grail.cs.washington.edu/projects/bal/. Я должен использовать Bundle Adjustment как черный ящик в проекте. Я хочу напечатать изысканные позы камеры, трехмерную координату наборов данных. Как это сделать, что я должен изменить в файле bundle_adjuster.cc, чтобы получить новую матрицу позы и трехмерную координату.Настройка Bundle для Ceres Solver

Спасибо.

ответ

1

Очищенные позах камеры и 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, ...