contrib/brl/bseg/sdet/sdet_third_order_edge_det_params.h
Go to the documentation of this file.
00001 // This is brl/bseg/sdet/sdet_third_order_edge_det_params.h
00002 #ifndef sdet_third_order_edge_det_params_h_
00003 #define sdet_third_order_edge_det_params_h_
00004 //:
00005 // \file
00006 // \brief parameter mixin for third order edge detection
00007 //
00008 // \author
00009 //    J. Mundy - July 22, 2010
00010 //    Brown University
00011 //
00012 //-----------------------------------------------------------------------------
00013 #include <gevd/gevd_param_mixin.h>
00014 #include <vcl_iosfwd.h>
00015 
00016 
00017 class sdet_third_order_edge_det_params : public gevd_param_mixin
00018 {
00019  public:
00020 // enumeration for the parabola fit type
00021   enum {PFIT_3_POINTS, PFIT_9_POINTS};
00022 
00023   sdet_third_order_edge_det_params(const double sigma=1.0, const double thresh = 2.0, const unsigned interp_factor = 1, const unsigned pfit_type = 0, const unsigned grad_op = 0, const unsigned conv_algo=0, const bool adapt_thresh = false);
00024 
00025   sdet_third_order_edge_det_params(const sdet_third_order_edge_det_params& old_params);
00026   ~sdet_third_order_edge_det_params(){}
00027 
00028   bool SanityCheck();
00029   friend
00030     vcl_ostream& operator<<(vcl_ostream&,const sdet_third_order_edge_det_params& dp);
00031  protected:
00032   void InitParams(double sigma, double thresh, unsigned interp_factor,
00033                   unsigned pfit_type, unsigned grad_op, unsigned conv_algo, bool adapt_thresh);
00034  public:
00035   //: points with gradient magnitude below thresh_*maximum_gradient_magnitude/100 will not be processed.
00036   double sigma_;
00037   double thresh_;
00038   unsigned interp_factor_;
00039   unsigned pfit_type_;
00040   unsigned grad_op_;
00041   unsigned conv_algo_;
00042   bool adapt_thresh_;
00043 };
00044 
00045 #endif // sdet_third_order_edge_det_params_h_