#include <vpgl_essential_matrix.h>
Public Member Functions | |
vpgl_essential_matrix () | |
Default constructor creates dummy rank 2 matrix. | |
vpgl_essential_matrix (const vpgl_fundamental_matrix< T > &F, const vpgl_calibration_matrix< T > &K_left, const vpgl_calibration_matrix< T > &K_right) | |
construct from a fundamental matrix and left and right calibration matrices. | |
vpgl_essential_matrix (const vpgl_perspective_camera< T > &cr, const vpgl_perspective_camera< T > &cl) | |
Main constructor takes two perspective cameras. | |
vpgl_essential_matrix (const vnl_matrix_fixed< T, 3, 3 > &E) | |
Construct from an essential matrix in vnl form. | |
vpgl_essential_matrix (const vpgl_essential_matrix< T > &other) | |
Copy Constructor. | |
const vpgl_essential_matrix< T > & | operator= (const vpgl_essential_matrix< T > &em) |
Assignment. | |
virtual | ~vpgl_essential_matrix () |
Destructor. | |
void | get_epipoles (vgl_homg_point_2d< T > &er, vgl_homg_point_2d< T > &el) const |
Put the coordinates of the epipoles in er, el. | |
vgl_homg_line_2d< T > | r_epipolar_line (const vgl_homg_point_2d< T > &pl) const |
Given a point in one image, find the corresponding epipolar line in the other image. | |
vgl_homg_line_2d< T > | r_epipolar_line (const vgl_homg_line_2d< T > &epiline_l) const |
Given an epipolar line in one image, find the corresponding epipolar line in the other image. | |
vgl_homg_line_2d< T > | l_epipolar_line (const vgl_homg_point_2d< T > &pr) const |
vgl_homg_line_2d< T > | l_epipolar_line (const vgl_homg_line_2d< T > &epiline_r) const |
vpgl_proj_camera< T > | extract_left_camera (const vnl_vector_fixed< T, 3 > &v, T lambda) const |
Gives the left camera matrix corresponding to the fundamental matrix. | |
vpgl_proj_camera< T > | extract_left_camera (const vcl_vector< vgl_point_3d< T > > &world_points, const vcl_vector< vgl_point_2d< T > > &image_points) const |
Alternative left camera extractor. | |
const vnl_matrix_fixed< T, 3, 3 > & | get_matrix () const |
Get a copy of the FM in vnl form. | |
const vnl_svd< T > & | svd () const |
Get a copy of the svd of the fundamental matrix. | |
void | set_matrix (const vpgl_proj_camera< T > &cr, const vpgl_proj_camera< T > &cl) |
void | set_matrix (const vnl_matrix_fixed< T, 3, 3 > &F) |
Protected Attributes | |
vnl_matrix_fixed< T, 3, 3 > | F_ |
Internal representation of the fundamental matrix. | |
vnl_svd< T > * | cached_svd_ |
Cached copy of the svd. |
Definition at line 29 of file vpgl_essential_matrix.h.
vpgl_essential_matrix< T >::vpgl_essential_matrix | ( | ) |
Default constructor creates dummy rank 2 matrix.
Definition at line 22 of file vpgl_essential_matrix.txx.
vpgl_essential_matrix< T >::vpgl_essential_matrix | ( | const vpgl_fundamental_matrix< T > & | F, |
const vpgl_calibration_matrix< T > & | K_left, | ||
const vpgl_calibration_matrix< T > & | K_right | ||
) |
construct from a fundamental matrix and left and right calibration matrices.
Definition at line 28 of file vpgl_essential_matrix.txx.
vpgl_essential_matrix< T >::vpgl_essential_matrix | ( | const vpgl_perspective_camera< T > & | cr, |
const vpgl_perspective_camera< T > & | cl | ||
) |
Main constructor takes two perspective cameras.
Compute from Euclidean properties of perspective cameras.
The RHS of the essential matrix will correspond to cr and the LHS to cl.
Definition at line 42 of file vpgl_essential_matrix.txx.
vpgl_essential_matrix< T >::vpgl_essential_matrix | ( | const vnl_matrix_fixed< T, 3, 3 > & | E | ) | [inline] |
Construct from an essential matrix in vnl form.
Definition at line 49 of file vpgl_essential_matrix.h.
vpgl_essential_matrix< T >::vpgl_essential_matrix | ( | const vpgl_essential_matrix< T > & | other | ) |
Copy Constructor.
Definition at line 59 of file vpgl_essential_matrix.txx.
vpgl_essential_matrix< T >::~vpgl_essential_matrix | ( | ) | [virtual] |
Destructor.
Definition at line 76 of file vpgl_essential_matrix.txx.
vpgl_proj_camera< T > vpgl_fundamental_matrix< T >::extract_left_camera | ( | const vnl_vector_fixed< T, 3 > & | v, |
T | lambda | ||
) | const [inherited] |
Gives the left camera matrix corresponding to the fundamental matrix.
The right camera matrix is assumed to be identity. The variables v, lambda are free parameters as described in H&Z 2nd ed p. 256.
Definition at line 159 of file vpgl_fundamental_matrix.txx.
vpgl_proj_camera< T > vpgl_fundamental_matrix< T >::extract_left_camera | ( | const vcl_vector< vgl_point_3d< T > > & | world_points, |
const vcl_vector< vgl_point_2d< T > > & | image_points | ||
) | const [inherited] |
Alternative left camera extractor.
Takes corresponding lists of image points with their world locations to determine the correct camera. Must give at least 2 pairs of correspondences. This is not a robust algorithm but this shouldn't be a problem as these correspondences will usually be picked by hand.
Definition at line 184 of file vpgl_fundamental_matrix.txx.
void vpgl_fundamental_matrix< T >::get_epipoles | ( | vgl_homg_point_2d< T > & | er, |
vgl_homg_point_2d< T > & | el | ||
) | const [inherited] |
Put the coordinates of the epipoles in er, el.
Definition at line 85 of file vpgl_fundamental_matrix.txx.
const vnl_matrix_fixed<T,3,3>& vpgl_fundamental_matrix< T >::get_matrix | ( | ) | const [inline, inherited] |
Get a copy of the FM in vnl form.
Definition at line 104 of file vpgl_fundamental_matrix.h.
vgl_homg_line_2d< T > vpgl_fundamental_matrix< T >::l_epipolar_line | ( | const vgl_homg_point_2d< T > & | pr | ) | const [inherited] |
Definition at line 108 of file vpgl_fundamental_matrix.txx.
vgl_homg_line_2d< T > vpgl_fundamental_matrix< T >::l_epipolar_line | ( | const vgl_homg_line_2d< T > & | epiline_r | ) | const [inherited] |
Definition at line 139 of file vpgl_fundamental_matrix.txx.
const vpgl_essential_matrix< T > & vpgl_essential_matrix< T >::operator= | ( | const vpgl_essential_matrix< T > & | em | ) |
Assignment.
Definition at line 67 of file vpgl_essential_matrix.txx.
vgl_homg_line_2d< T > vpgl_fundamental_matrix< T >::r_epipolar_line | ( | const vgl_homg_point_2d< T > & | pl | ) | const [inherited] |
Given a point in one image, find the corresponding epipolar line in the other image.
Definition at line 97 of file vpgl_fundamental_matrix.txx.
vgl_homg_line_2d< T > vpgl_fundamental_matrix< T >::r_epipolar_line | ( | const vgl_homg_line_2d< T > & | epiline_l | ) | const [inherited] |
Given an epipolar line in one image, find the corresponding epipolar line in the other image.
H&Z 2nd ed p. 247
Definition at line 119 of file vpgl_fundamental_matrix.txx.
void vpgl_fundamental_matrix< T >::set_matrix | ( | const vpgl_proj_camera< T > & | cr, |
const vpgl_proj_camera< T > & | cl | ||
) | [inherited] |
Definition at line 225 of file vpgl_fundamental_matrix.txx.
void vpgl_fundamental_matrix< T >::set_matrix | ( | const vnl_matrix_fixed< T, 3, 3 > & | F | ) | [inherited] |
Definition at line 247 of file vpgl_fundamental_matrix.txx.
const vnl_svd<T>& vpgl_fundamental_matrix< T >::svd | ( | ) | const [inline, inherited] |
Get a copy of the svd of the fundamental matrix.
The svd is computed when the matrix is first set, so this just accesses a cached version.
Definition at line 108 of file vpgl_fundamental_matrix.h.
vnl_svd<T>* vpgl_fundamental_matrix< T >::cached_svd_ [mutable, protected, inherited] |
Cached copy of the svd.
Definition at line 120 of file vpgl_fundamental_matrix.h.
vnl_matrix_fixed<T,3,3> vpgl_fundamental_matrix< T >::F_ [protected, inherited] |
Internal representation of the fundamental matrix.
Definition at line 117 of file vpgl_fundamental_matrix.h.