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_
1.7.5.1