1 #ifndef GSS_INCLUDED_H_
2 #define GSS_INCLUDED_H_
14 typedef std::vector<kjb::Image> Octave;
16 std::vector<kjb::Image> gss;
24 std::vector<Octave::const_iterator> octaves;
25 std::vector<Octave::const_iterator> x_octaves;
42 const std::vector<kjb::Image>&
as_vector()
const;
44 std::pair<Octave::const_iterator, Octave::const_iterator>
get_octave(
int o)
const;
46 std::pair<Octave::const_iterator, Octave::const_iterator>
get_x_octave(
int o)
const;
48 std::pair<Octave::const_iterator, Octave::const_iterator>
get_octave_at_index(
int i_o)
const;
74 void write(
const std::string& base_filename,
const std::string& extension);
86 GSS::Gaussian_scale_space
101 sigma_0(initial_sigma),
102 sigma_n(nominal_sigma)
116 std::pair<GSS::Octave::const_iterator, GSS::Octave::const_iterator>
GSS::get_octave(
int o)
const
118 if(o - o_min < 0 || static_cast<size_t>(o - o_min) >= octaves.size())
123 return std::make_pair(octaves[o - o_min], octaves[o - o_min] + S);
129 std::pair<GSS::Octave::const_iterator, GSS::Octave::const_iterator>
GSS::get_x_octave(
int o)
const
131 if(o - o_min < 0 || static_cast<size_t>(o - o_min) >= octaves.size())
136 return std::make_pair(x_octaves[o - o_min], x_octaves[o - o_min] + (s_max - s_min) + 1);
216 if(idx < 0 || idx >= O)
229 if(idx < 0 || idx >= s_max - s_min + 1)
242 return sigma_0 * std::pow(2, o + static_cast<double>(s) / S);
283 double initial_sigma,
320 void check_params()
const;
340 s_max(num_levels - 1),
341 sigma_0(initial_sigma),
357 double initial_sigma,
365 sigma_0(initial_sigma),
366 sigma_n(nominal_sigma)
427 sigma_0 = initial_sigma;
436 sigma_n = nominal_sigma;
499 void GSS_generator::check_params()
const
511 if(s_min >= s_max || s_min >= S)
516 if(sigma_0 < 0.0 || sigma_n < 0.0)
521 if(sigma_n >= sigma_0 * std::pow(2, o_min + static_cast<double>(s_min) / S))
const std::vector< kjb::Image > & as_vector() const
Definition: blob_gss.h:108
void set_nominal_sigma(double nominal_sigma)
Definition: blob_gss.h:434
int get_min_octave() const
Definition: blob_gss.h:166
int get_octave_name(int idx) const
Definition: blob_gss.h:214
int get_min_level() const
Definition: blob_gss.h:182
double get_initial_sigma() const
Definition: blob_gss.h:483
double get_nominal_sigma() const
Definition: blob_gss.h:206
Object thrown when an index argument exceeds the size of a container.
Definition: l_exception.h:399
double get_initial_sigma() const
Definition: blob_gss.h:198
int get_num_levels() const
Definition: blob_gss.h:459
std::pair< Octave::const_iterator, Octave::const_iterator > get_x_octave(int o) const
Definition: blob_gss.h:129
Gaussian_scale_space GSS
Definition: blob_gss.h:79
double sigma_at(int o, int s) const
Definition: blob_gss.h:240
Definition: blob_gss.h:11
int get_max_level() const
Definition: blob_gss.h:190
void set_max_level(int max_level)
Definition: blob_gss.h:416
void set_num_levels(int num_levels)
Definition: blob_gss.h:398
int get_min_octave() const
Definition: blob_gss.h:451
int get_min_level() const
Definition: blob_gss.h:467
Gaussian_scale_space_generator(int num_octaves, int num_levels, double initial_sigma)
Definition: blob_gss.h:331
GSS operator()(const kjb::Image &image)
Definition: blob_gss.cpp:30
int get_max_level() const
Definition: blob_gss.h:475
void set_num_octaves(int num_octaves)
Definition: blob_gss.h:380
int get_num_octaves() const
Definition: blob_gss.h:443
void set_min_octave(int min_octave)
Definition: blob_gss.h:389
void set_min_level(int min_level)
Definition: blob_gss.h:407
int get_scale_name(int idx) const
Definition: blob_gss.h:227
~Gaussian_scale_space_generator()
Definition: blob_gss.h:374
std::pair< Octave::const_iterator, Octave::const_iterator > get_x_octave_at_index(int i_o) const
Definition: blob_gss.h:150
#define KJB_THROW_2(ex, msg)
Definition: l_exception.h:48
double get_nominal_sigma() const
Definition: blob_gss.h:491
void write(const std::string &base_filename, const std::string &extension)
Definition: blob_gss.cpp:5
std::pair< Octave::const_iterator, Octave::const_iterator > get_octave_at_index(int i_o) const
Definition: blob_gss.h:142
Object thrown when an argument to a function is not acceptable.
Definition: l_exception.h:377
double sigma_at_indices(int i_o, int i_s) const
Definition: blob_gss.h:248
void set_initial_sigma(double initial_sigma)
Definition: blob_gss.h:425
~Gaussian_scale_space()
Definition: blob_gss.h:256
Code for a wrapper class around the C struct KJB_Image.
Support for error handling exception classes in libKJB.
Wrapped version of the C struct KJB_image.
Definition: i_image.h:76
int get_num_octaves() const
Definition: blob_gss.h:158
Definition: blob_gss.h:262
std::pair< Octave::const_iterator, Octave::const_iterator > get_octave(int o) const
Definition: blob_gss.h:116
Gaussian_scale_space_generator GSS_generator
Definition: blob_gss.h:323
int get_num_levels() const
Definition: blob_gss.h:174