Main Content

Refine camera poses and 3-D points

`[`

returns the refined 3-D points and camera poses that minimize reprojection errors.
The refinement procedure is a variant of the Levenberg-Marquardt algorithm. 3-D
points and camera poses are placed in the same global reference coordinate
system.`xyzRefinedPoints`

,`refinedPoses`

]
= bundleAdjustment(`xyzPoints`

,`pointTracks`

,`cameraPoses`

,`intrinsics`

)

`[___,`

additionally returns an `reprojectionErrors`

]
= bundleAdjustment(___)*N*-element vector containing the mean
reprojection error for each 3-D world point using the arguments from the previous
syntax.

`[___] = bundleAdjustment(___,`

uses
additional options specified by one or more `Name,Value`

)`Name,Value`

pair
arguments. Unspecified properties have default values.

[1] Lourakis, M.I.A., and A.A. Argyros. "SBA: A Software
Package for Generic Sparse Bundle Adjustment." *ACM Transactions
on Mathematical Software*. 2009.

[2] Hartley, R., and A. Zisserman. *Multiple View
Geometry in Computer Vision*. Cambridge University Press,
2003.

[3] Triggs, B., P. McLauchlan, R. Hartley, and A. Fitzgibbon.
"Bundle Adjustment: A Modern Synthesis." *Proceedings of
the International Workshop on Vision Algorithms*. Springer-Verlag.
1999, pp. 298-372.