00001 #ifndef random_transform_set_2d_h_
00002 #define random_transform_set_2d_h_
00003
00004
00005
00006
00007
00008
00009
00010
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
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
00028
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
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(){}
00045 };
00046
00047 #define BUGL_RANDOM_TRANSFORM_SET_2D_INSTANTIATE(T) extern "please include bugl/random_transform_set_2d.txx first"
00048
00049 #endif