Go to the documentation of this file.00001 #ifndef mfpf_hog_box_finder_builder_h_
00002 #define mfpf_hog_box_finder_builder_h_
00003
00004
00005
00006
00007
00008 #include <mfpf/mfpf_point_finder_builder.h>
00009 #include <mipa/mipa_vector_normaliser.h>
00010 #include <mfpf/mfpf_vec_cost_builder.h>
00011 #include <mbl/mbl_cloneable_ptr.h>
00012 #include <vcl_iosfwd.h>
00013 #include <mfpf/mfpf_region_form.h>
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053 class mfpf_hog_box_finder_builder : public mfpf_point_finder_builder
00054 {
00055 private:
00056
00057 double ref_x_;
00058
00059 double ref_y_;
00060
00061
00062 unsigned nA_bins_;
00063
00064
00065 bool full360_;
00066
00067
00068 unsigned nc_;
00069
00070
00071 unsigned ni_;
00072
00073 unsigned nj_;
00074
00075
00076 mbl_cloneable_ptr<mfpf_vec_cost_builder> cost_builder_;
00077
00078
00079
00080
00081
00082 mbl_cloneable_nzptr<mipa_vector_normaliser> normaliser_;
00083
00084
00085 unsigned nA_;
00086
00087
00088 double dA_;
00089
00090
00091
00092 double overlap_f_;
00093
00094
00095 void set_defaults();
00096
00097
00098 void add_one_example(const vimt_image_2d_of<float>& image,
00099 const vgl_point_2d<double>& p,
00100 const vgl_vector_2d<double>& u);
00101
00102
00103 void reconfigure_normaliser();
00104
00105 public:
00106
00107
00108 mfpf_hog_box_finder_builder();
00109
00110
00111 virtual ~mfpf_hog_box_finder_builder();
00112
00113
00114
00115
00116 void set_angle_bins(unsigned nA_bins, bool full360, unsigned cell_size);
00117
00118
00119 void set_as_box(unsigned ni, unsigned nj,
00120 double ref_x, double ref_y,
00121 const mfpf_vec_cost_builder& builder);
00122
00123
00124
00125 void set_as_box(unsigned ni, unsigned nj,
00126 const mfpf_vec_cost_builder& builder);
00127
00128
00129 void set_as_box(unsigned ni, unsigned nj,
00130 double ref_x, double ref_y);
00131
00132
00133
00134
00135
00136 virtual void set_region_size(double wi, double wj);
00137
00138
00139 mfpf_vec_cost_builder& cost_builder() { return cost_builder_; }
00140
00141
00142 virtual mfpf_point_finder* new_finder() const;
00143
00144
00145
00146 virtual void clear(unsigned n_egs);
00147
00148
00149 virtual void add_example(const vimt_image_2d_of<float>& image,
00150 const vgl_point_2d<double>& p,
00151 const vgl_vector_2d<double>& u);
00152
00153
00154 virtual void build(mfpf_point_finder&);
00155
00156
00157 virtual bool set_from_stream(vcl_istream &is);
00158
00159
00160 virtual vcl_string is_a() const;
00161
00162
00163 virtual mfpf_point_finder_builder* clone() const;
00164
00165
00166 virtual void print_summary(vcl_ostream& os) const;
00167
00168
00169 void print_shape(vcl_ostream& os) const;
00170
00171
00172 short version_no() const;
00173
00174
00175 virtual void b_write(vsl_b_ostream& bfs) const;
00176
00177
00178 virtual void b_read(vsl_b_istream& bfs);
00179 };
00180
00181 #endif