contrib/gel/mrc/vpgl/vpgl_reg_fundamental_matrix.h
Go to the documentation of this file.
00001 // This is gel/mrc/vpgl/vpgl_reg_fundamental_matrix.h
00002 #ifndef vpgl_reg_fundamental_matrix_h_
00003 #define vpgl_reg_fundamental_matrix_h_
00004 //:
00005 // \file
00006 // \brief A class for the fundamental matrix between two affine cameras registered to a ground plane.
00007 // \author Thomas Pollard
00008 // \date June 8, 2005
00009 // \author Joseph Mundy, Matt Leotta, Vishal Jain
00010 //
00011 // The fundamental matrix for two registered images has a simplified form and can be
00012 // written as:
00013 // \verbatim
00014 // |  0  0  a |
00015 // |  0  0 -b |
00016 // | -a  b  0 |
00017 // \endverbatim
00018 
00019 #include <vnl/vnl_fwd.h>
00020 #include <vgl/vgl_fwd.h>
00021 #include "vpgl_fundamental_matrix.h"
00022 
00023 template <class T>
00024 class vpgl_reg_fundamental_matrix : public vpgl_fundamental_matrix<T>
00025 {
00026  public:
00027   // Constructors:----------------------
00028 
00029   //: Default constructor creates dummy matrix.
00030   vpgl_reg_fundamental_matrix();
00031 
00032   //: Main constructor takes corresponding points from right and left images.
00033   vpgl_reg_fundamental_matrix( const vgl_point_2d<T>& pr, const vgl_point_2d<T>& pl );
00034 
00035   //: Cast up from a regular vpgl_fundamental_matrix.
00036   vpgl_reg_fundamental_matrix( const vpgl_fundamental_matrix<T>& fm );
00037 
00038   // Getters and Setters:----------------
00039 
00040   //: Form the matrix from corresponding points from right and left images.
00041   bool set_from_points( const vgl_point_2d<T>& pr, const vgl_point_2d<T>& pl );
00042 
00043   //: Form the matrix from its free parameters.
00044   void set_from_params( T a, T b );
00045 };
00046 
00047 #endif // vpgl_reg_fundamental_matrix_h_