contrib/brl/bseg/sdet/sdet_image_mesh_params.h
Go to the documentation of this file.
00001 // This is brl/bseg/sdet/sdet_image_mesh_params.h
00002 #ifndef sdet_image_mesh_params_h_
00003 #define sdet_image_mesh_params_h_
00004 //:
00005 // \file
00006 // \brief parameter mixin for sdet_image_mesh
00007 //
00008 // \author
00009 //    Joseph L. Mundy - March 22, 2011
00010 //    Brown University
00011 //
00012 //-----------------------------------------------------------------------------
00013 #include <vbl/vbl_ref_count.h>
00014 #include <gevd/gevd_param_mixin.h>
00015 #include <vcl_iosfwd.h>
00016 #include <vgl/vgl_point_2d.h>
00017 
00018 class sdet_image_mesh_params : public gevd_param_mixin, public vbl_ref_count
00019 {
00020  public:
00021   sdet_image_mesh_params(float smooth=1.0f, float thresh=2.0f,
00022                          int  min_fit_length = 10,
00023                          double rms_distance = 0.1,
00024                          double step_half_width = 5.0);
00025 
00026   sdet_image_mesh_params(const sdet_image_mesh_params& old_params);
00027  ~sdet_image_mesh_params() {}
00028 
00029   bool SanityCheck();
00030  friend
00031   vcl_ostream& operator<<(vcl_ostream& os, const sdet_image_mesh_params& imp);
00032  protected:
00033   void InitParams(float smooth, float thresh, int min_fit_length,
00034                   double rms_distance, double step_half_width);
00035  public:
00036   //
00037   // Parameter blocks and parameters
00038   //
00039   float smooth_; //!< Gaussian sigma for edge detection
00040   float thresh_; //!< Edge detection threshold
00041   int  min_fit_length_; //!< the shortest curve to fit a line
00042   double rms_distance_; //!< the max rms distance error for the fit
00043   double step_half_width_; //!< half the step transition width (in pixels)
00044   vcl_vector<vgl_point_2d<double> > anchor_points_; //!< additional anchor points to generate 2d mesh
00045 
00046 };
00047 
00048 #endif // sdet_image_mesh_params_h_