| 32 | { |
| 33 | |
| 34 | struct orb_params |
| 35 | { |
| 36 | orb_params() = default; |
| 37 | |
| 38 | //! Constructor |
| 39 | orb_params(const unsigned int max_num_keypts, const float scale_factor, const unsigned int num_levels, |
| 40 | const unsigned int ini_fast_thr, const unsigned int min_fast_thr, |
| 41 | const std::vector<std::vector<float>> &mask_rects = {}); |
| 42 | |
| 43 | //! Constructor |
| 44 | explicit orb_params(const YAML::Node &yaml_node); |
| 45 | |
| 46 | //! Destructor |
| 47 | virtual ~orb_params() = default; |
| 48 | |
| 49 | //! Dump parameter values to the standard output |
| 50 | void show_parameters() const; |
| 51 | |
| 52 | unsigned int max_num_keypts_ = 2000; // number of features wanted to detect |
| 53 | float scale_factor_ = 1.2; // the scaling factor of the image pyramid |
| 54 | unsigned int num_levels_ = 8; // specify the image pyramid layer for which feature points need to be extracted |
| 55 | unsigned int ini_fast_thr_ = 20; // initial default FAST response value threshold |
| 56 | unsigned int min_fast_thr = 7; // a smaller FAST response threshold |
| 57 | |
| 58 | //! A vector of keypoint area represents mask area |
| 59 | //! Each areas are denoted as form of [x_min / cols, x_max / cols, y_min / rows, y_max / rows] |
| 60 | std::vector<std::vector<float>> mask_rects_; |
| 61 | |
| 62 | //! Calculate scale factors |
| 63 | static std::vector<float> calc_scale_factors(const unsigned int num_scale_levels, const float scale_factor); |
| 64 | |
| 65 | //! Calculate inverses of scale factors |
| 66 | static std::vector<float> calc_inv_scale_factors(const unsigned int num_scale_levels, const float scale_factor); |
| 67 | |
| 68 | //! Calculate squared sigmas at all levels |
| 69 | static std::vector<float> calc_level_sigma_sq(const unsigned int num_scale_levels, const float scale_factor); |
| 70 | |
| 71 | //! Calculate inverses of squared sigmas at all levels |
| 72 | static std::vector<float> calc_inv_level_sigma_sq(const unsigned int num_scale_levels, const float scale_factor); |
| 73 | }; |
| 74 | |
| 75 | } // namespace feature |
| 76 | } // namespace PLPSLAM |