Go to the documentation of this file.00001 #ifndef rgrl_matcher_k_nearest_pick_one_h_
00002 #define rgrl_matcher_k_nearest_pick_one_h_
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 #include <rgrl/rgrl_matcher_k_nearest_adv.h>
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 class rgrl_matcher_k_nearest_pick_one
00025   : public rgrl_matcher_k_nearest_adv
00026 {
00027  public:
00028   
00029   
00030   rgrl_matcher_k_nearest_pick_one( unsigned int k );
00031 
00032   
00033   
00034   
00035   
00036   
00037   
00038   rgrl_matcher_k_nearest_pick_one( unsigned int k, double dist_thres, double min_mapped_scale = -1, double thres_reuse_match = -1 );
00039 
00040   rgrl_match_set_sptr
00041   compute_matches( rgrl_feature_set const&       from_features,
00042                    rgrl_feature_set const&       to_features,
00043                    rgrl_view const&              current_view,
00044                    rgrl_transformation const&    current_xform,
00045                    rgrl_scale const&             ,
00046                    rgrl_match_set_sptr const& old_matches = 0 );
00047 
00048 
00049   
00050   rgrl_type_macro( rgrl_matcher_k_nearest_pick_one, rgrl_matcher);
00051 
00052  protected:
00053 
00054   
00055   inline
00056   bool validate( rgrl_feature_sptr const& mapped, rgrl_mask_sptr const& roi_sptr ) const;
00057 
00058   
00059   
00060   virtual
00061   void
00062   add_one_flipped_match( rgrl_match_set_sptr&      inv_set,
00063                          rgrl_view          const& current_view,
00064                          nodes_vec_iterator const& begin_iter,
00065                          nodes_vec_iterator const& end_iter ); 
00066  
00067 };
00068 
00069 #endif // rgrl_matcher_k_nearest_pick_one_h_