#include <vpgl_fundamental_matrix.h>

Public Member Functions | |
| vpgl_fundamental_matrix () | |
| Default constructor creates dummy rank 2 matrix. | |
| vpgl_fundamental_matrix (const vpgl_proj_camera< T > &cr, const vpgl_proj_camera< T > &cl) | |
| Main constructor takes two projective cameras. | |
| vpgl_fundamental_matrix (const vnl_matrix_fixed< T, 3, 3 > &F) | |
| Construct from a fundamental matrix in vnl form. | |
| vpgl_fundamental_matrix (const vpgl_fundamental_matrix< T > &other) | |
| Copy Constructor. | |
| vpgl_fundamental_matrix (const vpgl_calibration_matrix< T > &kr, const vpgl_calibration_matrix< T > &kl, const vpgl_essential_matrix< T > &em) | |
| Construct from an essential matrix and two calibration matrices. | |
| const vpgl_fundamental_matrix < T > & | operator= (const vpgl_fundamental_matrix< T > &fm) |
| Assignment. | |
| virtual | ~vpgl_fundamental_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 > | l_epipolar_line (const vgl_homg_point_2d< T > &pr) const |
| 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_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 39 of file vpgl_fundamental_matrix.h.
| vpgl_fundamental_matrix< T >::vpgl_fundamental_matrix | ( | ) |
Default constructor creates dummy rank 2 matrix.
Definition at line 30 of file vpgl_fundamental_matrix.txx.
| vpgl_fundamental_matrix< T >::vpgl_fundamental_matrix | ( | const vpgl_proj_camera< T > & | cr, |
| const vpgl_proj_camera< T > & | cl | ||
| ) | [inline] |
Main constructor takes two projective cameras.
The RHS of the fundamental matrix will correspond to cr and the LHS to cl.
Definition at line 49 of file vpgl_fundamental_matrix.h.
| vpgl_fundamental_matrix< T >::vpgl_fundamental_matrix | ( | const vnl_matrix_fixed< T, 3, 3 > & | F | ) | [inline] |
Construct from a fundamental matrix in vnl form.
Definition at line 54 of file vpgl_fundamental_matrix.h.
| vpgl_fundamental_matrix< T >::vpgl_fundamental_matrix | ( | const vpgl_fundamental_matrix< T > & | other | ) |
Copy Constructor.
Definition at line 41 of file vpgl_fundamental_matrix.txx.
| vpgl_fundamental_matrix< T >::vpgl_fundamental_matrix | ( | const vpgl_calibration_matrix< T > & | kr, |
| const vpgl_calibration_matrix< T > & | kl, | ||
| const vpgl_essential_matrix< T > & | em | ||
| ) |
Construct from an essential matrix and two calibration matrices.
From Essential Matrix.
Since E = Kl^T * F * Kr, then F = Kl^-T * E * Kr^-1. WARNING! This constructor uses two 3x3 inverse calculations, so it is expensive.
Since
,
Definition at line 52 of file vpgl_fundamental_matrix.txx.
| vpgl_fundamental_matrix< T >::~vpgl_fundamental_matrix | ( | ) | [virtual] |
Destructor.
Definition at line 77 of file vpgl_fundamental_matrix.txx.
| vpgl_proj_camera< T > vpgl_fundamental_matrix< T >::extract_left_camera | ( | const vnl_vector_fixed< T, 3 > & | v, |
| T | lambda | ||
| ) | const |
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 |
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 |
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] |
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 |
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 |
Definition at line 139 of file vpgl_fundamental_matrix.txx.
| const vpgl_fundamental_matrix< T > & vpgl_fundamental_matrix< T >::operator= | ( | const vpgl_fundamental_matrix< T > & | fm | ) |
Assignment.
Definition at line 67 of file vpgl_fundamental_matrix.txx.
| vgl_homg_line_2d< T > vpgl_fundamental_matrix< 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.
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 |
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 | ||
| ) |
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 | ) |
Definition at line 247 of file vpgl_fundamental_matrix.txx.
| const vnl_svd<T>& vpgl_fundamental_matrix< T >::svd | ( | ) | const [inline] |
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] |
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] |
Internal representation of the fundamental matrix.
Definition at line 117 of file vpgl_fundamental_matrix.h.
1.7.5.1