#include <vpgl_fundamental_matrix.h>

Public Member Functions | |
| vpgl_fundamental_matrix () | |
| Default constructor creates dummy rank 2 matrix. More... | |
| vpgl_fundamental_matrix (const vpgl_proj_camera< T > &cr, const vpgl_proj_camera< T > &cl) | |
| Main constructor takes two projective cameras. More... | |
| vpgl_fundamental_matrix (const vnl_matrix_fixed< T, 3, 3 > &F) | |
| Construct from a fundamental matrix in vnl form. More... | |
| vpgl_fundamental_matrix (const vpgl_fundamental_matrix< T > &other) | |
| Copy Constructor. More... | |
| 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. More... | |
| const vpgl_fundamental_matrix< T > & | operator= (const vpgl_fundamental_matrix< T > &fm) |
| Assignment. More... | |
| virtual | ~vpgl_fundamental_matrix () |
| Destructor. More... | |
| 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. More... | |
| 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. More... | |
| 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. More... | |
| 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. More... | |
| vpgl_proj_camera< T > | extract_left_camera (const std::vector< vgl_point_3d< T > > &world_points, const std::vector< vgl_point_2d< T > > &image_points) const |
| Alternative left camera extractor. More... | |
| const vnl_matrix_fixed< T, 3, 3 > & | get_matrix () const |
| Get a copy of the FM in vnl form. More... | |
| const vnl_svd< T > & | svd () const |
| Get a copy of the svd of the fundamental matrix. More... | |
| 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. More... | |
| vnl_svd< T > * | cached_svd_ |
| Cached copy of the svd. More... | |
Definition at line 42 of file vpgl_fundamental_matrix.h.
| vpgl_fundamental_matrix< T >::vpgl_fundamental_matrix | ( | ) |
Default constructor creates dummy rank 2 matrix.
Definition at line 33 of file vpgl_fundamental_matrix.hxx.
|
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 52 of file vpgl_fundamental_matrix.h.
|
inline |
Construct from a fundamental matrix in vnl form.
Definition at line 57 of file vpgl_fundamental_matrix.h.
| vpgl_fundamental_matrix< T >::vpgl_fundamental_matrix | ( | const vpgl_fundamental_matrix< T > & | other | ) |
Copy Constructor.
Definition at line 44 of file vpgl_fundamental_matrix.hxx.
| 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 55 of file vpgl_fundamental_matrix.hxx.
|
virtual |
Destructor.
Definition at line 80 of file vpgl_fundamental_matrix.hxx.
| 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 162 of file vpgl_fundamental_matrix.hxx.
| vpgl_proj_camera< T > vpgl_fundamental_matrix< T >::extract_left_camera | ( | const std::vector< vgl_point_3d< T > > & | world_points, |
| const std::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 187 of file vpgl_fundamental_matrix.hxx.
| 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 88 of file vpgl_fundamental_matrix.hxx.
|
inline |
Get a copy of the FM in vnl form.
Definition at line 107 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 111 of file vpgl_fundamental_matrix.hxx.
| vgl_homg_line_2d< T > vpgl_fundamental_matrix< T >::l_epipolar_line | ( | const vgl_homg_line_2d< T > & | epiline_r | ) | const |
Definition at line 142 of file vpgl_fundamental_matrix.hxx.
| const vpgl_fundamental_matrix< T > & vpgl_fundamental_matrix< T >::operator= | ( | const vpgl_fundamental_matrix< T > & | fm | ) |
Assignment.
Definition at line 70 of file vpgl_fundamental_matrix.hxx.
| 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 100 of file vpgl_fundamental_matrix.hxx.
| 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 122 of file vpgl_fundamental_matrix.hxx.
| void vpgl_fundamental_matrix< T >::set_matrix | ( | const vpgl_proj_camera< T > & | cr, |
| const vpgl_proj_camera< T > & | cl | ||
| ) |
Definition at line 228 of file vpgl_fundamental_matrix.hxx.
| void vpgl_fundamental_matrix< T >::set_matrix | ( | const vnl_matrix_fixed< T, 3, 3 > & | F | ) |
Definition at line 250 of file vpgl_fundamental_matrix.hxx.
|
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 111 of file vpgl_fundamental_matrix.h.
|
mutableprotected |
Cached copy of the svd.
Definition at line 123 of file vpgl_fundamental_matrix.h.
|
protected |
Internal representation of the fundamental matrix.
Definition at line 120 of file vpgl_fundamental_matrix.h.
1.8.15