Go to the documentation of this file.00001 #ifndef mfpf_lin_clsfy_finder_builder_h_
00002 #define mfpf_lin_clsfy_finder_builder_h_
00003
00004
00005
00006
00007
00008 #include <mfpf/mfpf_point_finder_builder.h>
00009 #include <mfpf/mfpf_vec_cost_builder.h>
00010 #include <mfpf/mfpf_region_form.h>
00011 #include <mbl/mbl_chord.h>
00012 #include <vgl/vgl_fwd.h>
00013 #include <vcl_iosfwd.h>
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 class mfpf_lin_clsfy_finder_builder : public mfpf_point_finder_builder
00035 {
00036 private:
00037
00038 double ref_x_;
00039
00040 double ref_y_;
00041
00042
00043 vcl_string shape_;
00044
00045
00046 vcl_vector<mbl_chord> roi_;
00047
00048
00049 unsigned roi_ni_;
00050
00051 unsigned roi_nj_;
00052
00053
00054 unsigned n_pixels_;
00055
00056
00057 double r1_;
00058
00059 double r2_;
00060
00061 double r3_;
00062
00063
00064 vcl_vector<vnl_vector<double> > samples_;
00065
00066
00067 vcl_vector<unsigned> class_id_;
00068
00069
00070 short norm_method_;
00071
00072
00073 unsigned nA_;
00074
00075
00076 double dA_;
00077
00078
00079
00080 double overlap_f_;
00081
00082
00083 double var_min_;
00084
00085
00086 double tvar_min_;
00087
00088
00089 bool estimate_var_min_;
00090
00091
00092 unsigned num_examples_;
00093
00094
00095 void set_defaults();
00096
00097
00098
00099 void config_as_box(vcl_istream &is);
00100
00101
00102
00103 void config_as_ellipse(vcl_istream &is);
00104
00105
00106 void add_one_example(const vimt_image_2d_of<float>& image,
00107 const vgl_point_2d<double>& p,
00108 const vgl_vector_2d<double>& u);
00109
00110 public:
00111
00112
00113 mfpf_lin_clsfy_finder_builder();
00114
00115
00116 virtual ~mfpf_lin_clsfy_finder_builder();
00117
00118
00119 void set_as_box(unsigned ni, unsigned nj,
00120 double ref_x, double ref_y);
00121
00122
00123
00124 void set_as_box(unsigned ni, unsigned nj);
00125
00126
00127
00128 void set_as_ellipse(double ri, double rj);
00129
00130
00131
00132
00133 void set_region(const mfpf_region_form& form);
00134
00135
00136 void set_norm_method(short norm_method);
00137
00138
00139
00140
00141
00142
00143 virtual void set_region_size(double wi, double wj);
00144
00145
00146
00147 unsigned n_pixels() const { return n_pixels_; }
00148
00149
00150 const vcl_string& shape() const { return shape_; }
00151
00152
00153 virtual unsigned model_dim();
00154
00155
00156 virtual mfpf_point_finder* new_finder() const;
00157
00158
00159
00160 virtual void clear(unsigned n_egs);
00161
00162
00163 virtual void add_example(const vimt_image_2d_of<float>& image,
00164 const vgl_point_2d<double>& p,
00165 const vgl_vector_2d<double>& u);
00166
00167
00168 virtual void build(mfpf_point_finder&);
00169
00170
00171 virtual bool set_from_stream(vcl_istream &is);
00172
00173
00174 virtual vcl_string is_a() const;
00175
00176
00177 virtual mfpf_point_finder_builder* clone() const;
00178
00179
00180 virtual void print_summary(vcl_ostream& os) const;
00181
00182
00183 void print_shape(vcl_ostream& os) const;
00184
00185
00186 short version_no() const;
00187
00188
00189 virtual void b_write(vsl_b_ostream& bfs) const;
00190
00191
00192 virtual void b_read(vsl_b_istream& bfs);
00193 };
00194
00195 #endif // mfpf_lin_clsfy_finder_builder_h_