contrib/brl/bbas/bugl/bugl_random_transform_set_2d.h

Go to the documentation of this file.
00001 #ifndef random_transform_set_2d_h_
00002 #define random_transform_set_2d_h_
00003 //:
00004 // \file
00005 // \author J.L. Mundy
00006 // \brief A class for randomly generating 2d transformations
00007 //
00008 // \verbatim
00009 //  Modifications<none>
00010 // \endverbatim
00011 #include <vcl_vector.h>
00012 #include <vgl/algo/vgl_h_matrix_2d.h>
00013 
00014 template<class T>
00015 class bugl_random_transform_set_2d
00016 {
00017  public:
00018   ~bugl_random_transform_set_2d(){}
00019 
00020   //: generate a set of uniformly distributed equiform transformations
00021  static void equiform_uniform(const unsigned n_trans,
00022                               vcl_vector<vgl_h_matrix_2d<T> >& transform_set,
00023                               const T dx, const T dy,
00024                               const T dtheta = (T)0, const T ds = (T)0);
00025 
00026 
00027  //: generate a set of uniformly distributed affine transformations.
00028  // skew is always zero
00029  static void zero_skew_affine_uniform(const unsigned n_trans,
00030                                       vcl_vector<vgl_h_matrix_2d<T> >& transform_set,
00031                                       const T dx, const T dy,
00032                                       const T dtheta = (T)0, const T ds = (T)0,
00033                                       const T daspect = (T)0);
00034  //: generate a set of uniformly distributed affine transformations on a specified set of intervals
00035  static void zero_skew_affine_uniform_interval(const unsigned n_trans,
00036                                                vcl_vector<vgl_h_matrix_2d<T> >& trans_set,
00037                                                const T xmin, const T xmax,
00038                                                const T ymin, const T ymax,
00039                                                const T theta_min, const T theta_max,
00040                                                const T scale_min, const T scale_max,
00041                                                const T aspect_min, const T aspect_max);
00042 
00043  protected:
00044  bugl_random_transform_set_2d(){} //static methods only
00045 };
00046 
00047 #define BUGL_RANDOM_TRANSFORM_SET_2D_INSTANTIATE(T) extern "please include bugl/random_transform_set_2d.txx first"
00048 
00049 #endif

Generated on Tue Oct 14 05:20:03 2008 for contrib/brl/bbas/bugl by  doxygen 1.5.1