#include <vpgl_em_compute_5_point.h>
|
| void | normalize (const std::vector< vgl_point_2d< T > > &points, const vpgl_calibration_matrix< T > &k, std::vector< vgl_point_2d< T > > &normed_points) const |
| | Normalization is the process of left-multiplying by the inverse of the calibration matrix. More...
|
| |
| void | compute_nullspace_basis (const std::vector< vgl_point_2d< T > > &right_points, const std::vector< vgl_point_2d< T > > &left_points, std::vector< vnl_vector_fixed< T, 9 > > &basis) const |
| | Constructs the 5x9 epipolar constraint matrix based off the constraint that q1' * E * q2 = 0, and fills the vectors x, y, z and w with the nullspace basis for this matrix. More...
|
| |
| void | compute_constraint_polynomials (const std::vector< vnl_vector_fixed< T, 9 > > &basis, std::vector< vnl_real_npolynomial > &constraints) const |
| | Finds 10 constraint polynomials, based on the following criteria: if X, Y, Z and W are the basis vectors, then E = xX + yY + zZ + wW for some scalars x, y, z, w. More...
|
| |
| void | compute_groebner_basis (const std::vector< vnl_real_npolynomial > &constraints, vnl_matrix< double > &groebner_basis) const |
| |
| void | compute_action_matrix (const vnl_matrix< double > &groebner_basis, vnl_matrix< double > &action_matrix) const |
| |
| void | compute_e_matrices (const std::vector< vnl_vector_fixed< T, 9 > > &basis, const vnl_matrix< double > &action_matrix, std::vector< vpgl_essential_matrix< T > > &ems) const |
| |
| double | get_coeff (const vnl_real_npolynomial &p, unsigned int x_p, unsigned int y_p, unsigned int z_p) const |
| | Returns the coefficient of a term of a vnl_real_npolynomial in three variables with an x power of x_p, a y power of y_p and a z power of z_p. More...
|
| |
template<class T>
class vpgl_em_compute_5_point< T >
Definition at line 31 of file vpgl_em_compute_5_point.h.
◆ vpgl_em_compute_5_point() [1/3]
◆ vpgl_em_compute_5_point() [2/3]
◆ vpgl_em_compute_5_point() [3/3]
◆ compute() [1/2]
Compute from two sets of corresponding points.
Puts the resulting matrix into em, returns true if successful. Each of right_points and left_points must contain exactly 5 points! This function returns a set of potential solutions, generally 10. Each of these solutions is appropriate to use as RANSAC hypthosis.
The points must be normalized!! Use the function below to avoid normalizing the points yourself.
Definition at line 39 of file vpgl_em_compute_5_point.hxx.
◆ compute() [2/2]
◆ compute_action_matrix()
◆ compute_constraint_polynomials()
Finds 10 constraint polynomials, based on the following criteria: if X, Y, Z and W are the basis vectors, then E = xX + yY + zZ + wW for some scalars x, y, z, w.
Since these are unique up to a scale, we say w = 1;
Furthermore, det(E) = 0, and E*E'*E - .5 * trace(E*E') * E = 0. Substituting the original equation into all 10 of the equations generated by these two constraints gives us the constraint polynomials.
Definition at line 152 of file vpgl_em_compute_5_point.hxx.
◆ compute_e_matrices()
◆ compute_groebner_basis()
◆ compute_nullspace_basis()
Constructs the 5x9 epipolar constraint matrix based off the constraint that q1' * E * q2 = 0, and fills the vectors x, y, z and w with the nullspace basis for this matrix.
Definition at line 102 of file vpgl_em_compute_5_point.hxx.
◆ get_coeff()
◆ normalize()
Normalization is the process of left-multiplying by the inverse of the calibration matrix.
Definition at line 84 of file vpgl_em_compute_5_point.hxx.
◆ tolerance
◆ verbose
The documentation for this class was generated from the following files: