Optimize input points of transformations#

For each optimization process, the following functions are available:

  • gn: Gauss-Newton optimization solving directly \(\mathbf{J}^T \mathbf{J} \Delta = -\mathbf{J}^T \mathbf{r}\) without damping, scaling or boundary constraints.

Optimize the input points of a unique transformation#

Lets consider a pycvcam.Transform object and a set of input and output points. The following functions optimize the input points of the transformation to minimize the reprojection error between the input and output points.

optimize_input_points_gn(transform, ...[, ...])

Optimize the input points of the transformation using the given output points.

optimize_input_points(transform, output_points)

Optimize the input points of the transformation using the given output points.

Optimize the input points of chains of transformations#

Lets \((T_0, T_1, ..., T_{N_T-1})\) be a tuple of \(N_T\) Transform objects, and \((C_0, C_1, ..., C_{N_C-1})\) be a tuple of \(N_C\) chains of transformations.

A chain \(C_i\) is defined as a tuple of indices corresponding to thetransformations in the chain. For example:

C_0 = (1, 4, 8) -----> C_0(X) = T_8 ∘ T_4 ∘ T_1(X)

The objective is to optimize the input points based on the output points of all the chains.

optimize_chains_input_points_gn(...[, ...])

Optimize the input points based of the result of chains of transformations using the Gauss-Newton optimization method.