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 35 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
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.

Constructor & Destructor Documentation

template<class T>
vpgl_fundamental_matrix< T >::vpgl_fundamental_matrix (  )  [inline]

Default constructor creates dummy rank 2 matrix.

Definition at line 25 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 45 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 50 of file vpgl_fundamental_matrix.h.

template<class T>
vpgl_fundamental_matrix< T >::vpgl_fundamental_matrix ( const vpgl_fundamental_matrix< T > &  other  )  [inline]

Copy Constructor.

Definition at line 36 of file vpgl_fundamental_matrix.txx.

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

Destructor.

Definition at line 57 of file vpgl_fundamental_matrix.txx.


Member Function Documentation

template<class T>
const vpgl_fundamental_matrix< T > & vpgl_fundamental_matrix< T >::operator= ( const vpgl_fundamental_matrix< T > &  fm  )  [inline]

Assignment.

Definition at line 47 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 [inline]

Put the coordinates of the epipoles in er, el.

Definition at line 65 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 [inline]

Given a point in one image, find the corresponding epipolar line in the other image.

Definition at line 77 of file vpgl_fundamental_matrix.txx.

template<class T>
vgl_homg_line_2d< T > vpgl_fundamental_matrix< T >::l_epipolar_line ( const vgl_homg_point_2d< T > &  pr  )  const [inline]

Definition at line 88 of file vpgl_fundamental_matrix.txx.

template<class T>
vgl_homg_line_2d< T > vpgl_fundamental_matrix< T >::r_epipolar_line ( const vgl_homg_line_2d< T > &  epiline_l  )  const [inline]

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 99 of file vpgl_fundamental_matrix.txx.

template<class T>
vgl_homg_line_2d< T > vpgl_fundamental_matrix< T >::l_epipolar_line ( const vgl_homg_line_2d< T > &  epiline_r  )  const [inline]

Definition at line 119 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 [inline]

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 139 of file vpgl_fundamental_matrix.txx.

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 [inline]

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 163 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 94 of file vpgl_fundamental_matrix.h.

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 98 of file vpgl_fundamental_matrix.h.

template<class T>
void vpgl_fundamental_matrix< T >::set_matrix ( const vpgl_proj_camera< T > &  cr,
const vpgl_proj_camera< T > &  cl 
) [inline]

Definition at line 205 of file vpgl_fundamental_matrix.txx.

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

Definition at line 215 of file vpgl_fundamental_matrix.txx.


Member Data Documentation

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

Internal representation of the fundamental matrix.

Definition at line 107 of file vpgl_fundamental_matrix.h.

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

Cached copy of the svd.

Definition at line 110 of file vpgl_fundamental_matrix.h.


The documentation for this class was generated from the following files:

Generated on Sun Nov 22 06:33:19 2009 for contrib/gel/mrc/vpgl by  doxygen 1.5.5