Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

vpgl_fundamental_matrix< T > Class Template Reference

#include <vpgl_fundamental_matrix.h>

Inheritance diagram for vpgl_fundamental_matrix< T >:

Inheritance graph
[legend]
List of all members.

Detailed Description

template<class T>
class vpgl_fundamental_matrix< T >

Definition at line 28 of file 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.
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
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, when the right camera matrix is assumed to be identity.
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.


Constructor & Destructor Documentation

template<class T>
vpgl_fundamental_matrix< T >::vpgl_fundamental_matrix  ) 
 

Default constructor creates dummy rank 2 matrix.

Definition at line 20 of file vpgl_fundamental_matrix.txx.

template<class T>
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 38 of file vpgl_fundamental_matrix.h.

template<class T>
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 43 of file vpgl_fundamental_matrix.h.

template<class T>
vpgl_fundamental_matrix< T >::vpgl_fundamental_matrix const vpgl_fundamental_matrix< T > &  other  ) 
 

Copy Constructor.

Definition at line 31 of file vpgl_fundamental_matrix.txx.

template<class T>
vpgl_fundamental_matrix< T >::~vpgl_fundamental_matrix  )  [virtual]
 

Destructor.

Definition at line 52 of file vpgl_fundamental_matrix.txx.


Member Function Documentation

template<class T>
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 118 of file vpgl_fundamental_matrix.txx.

template<class T>
vpgl_proj_camera< T > vpgl_fundamental_matrix< T >::extract_left_camera const vnl_vector_fixed< T, 3 > &  v,
lambda
const
 

Gives the left camera matrix corresponding to the fundamental matrix, when the right camera matrix is assumed to be identity.

The variables v, lambda are free parameters as described in H&Z 2nd ed pg 256.

Definition at line 94 of file vpgl_fundamental_matrix.txx.

template<class T>
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 60 of file vpgl_fundamental_matrix.txx.

template<class T>
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 82 of file vpgl_fundamental_matrix.h.

template<class T>
vgl_homg_line_2d< T > vpgl_fundamental_matrix< T >::l_epipolar_line const vgl_homg_point_2d< T > &  pr  )  const
 

Definition at line 83 of file vpgl_fundamental_matrix.txx.

template<class T>
const vpgl_fundamental_matrix< T > & vpgl_fundamental_matrix< T >::operator= const vpgl_fundamental_matrix< T > &  fm  ) 
 

Assignment.

Definition at line 42 of file vpgl_fundamental_matrix.txx.

template<class T>
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 72 of file vpgl_fundamental_matrix.txx.

template<class T>
void vpgl_fundamental_matrix< T >::set_matrix const vnl_matrix_fixed< T, 3, 3 > &  F  ) 
 

Definition at line 170 of file vpgl_fundamental_matrix.txx.

template<class T>
void vpgl_fundamental_matrix< T >::set_matrix const vpgl_proj_camera< T > &  cr,
const vpgl_proj_camera< T > &  cl
 

Definition at line 160 of file vpgl_fundamental_matrix.txx.

template<class T>
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 86 of file vpgl_fundamental_matrix.h.


Member Data Documentation

template<class T>
vnl_svd<T>* vpgl_fundamental_matrix< T >::cached_svd_ [mutable, protected]
 

Cached copy of the svd.

Definition at line 98 of file vpgl_fundamental_matrix.h.

template<class T>
vnl_matrix_fixed<T,3,3> vpgl_fundamental_matrix< T >::F_ [protected]
 

Internal representation of the fundamental matrix.

Definition at line 95 of file vpgl_fundamental_matrix.h.


The documentation for this class was generated from the following files:
Generated on Thu Jan 10 14:49:15 2008 for contrib/gel/mrc/vpgl by  doxygen 1.4.4