#include <vpgl_affine_fundamental_matrix.h>
Public Member Functions | |
vpgl_affine_fundamental_matrix () | |
Default constructor creates dummy matrix. | |
vpgl_affine_fundamental_matrix (const vpgl_fundamental_matrix< T > &fm) | |
Cast up from a regular vpgl_fundamental_matrix. | |
void | set_from_params (T a, T b, T c, T d, T e) |
Form the matrix from its free parameters. | |
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 22 of file vpgl_affine_fundamental_matrix.h.
vpgl_affine_fundamental_matrix< T >::vpgl_affine_fundamental_matrix | ( | ) |
Default constructor creates dummy matrix.
Definition at line 13 of file vpgl_affine_fundamental_matrix.txx.
vpgl_affine_fundamental_matrix< T >::vpgl_affine_fundamental_matrix | ( | const vpgl_fundamental_matrix< T > & | fm | ) |
Cast up from a regular vpgl_fundamental_matrix.
Definition at line 25 of file vpgl_affine_fundamental_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.
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_affine_fundamental_matrix< T >::set_from_params | ( | T | a, |
T | b, | ||
T | c, | ||
T | d, | ||
T | e | ||
) |
Form the matrix from its free parameters.
Definition at line 35 of file vpgl_affine_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.