For each "from" feature, match the k nearest "to" features. More...
#include <rgrl_matcher_k_nearest.h>
Classes | |
struct | internal_dist_node |
Public Member Functions | |
rgrl_matcher_k_nearest (unsigned int k) | |
Initialize the matcher to select k correspondences per "from" feature. | |
rgrl_matcher_k_nearest (unsigned int k, double dist_thres) | |
Select at most k correspondences within the threshold. | |
rgrl_match_set_sptr | compute_matches (rgrl_feature_set const &from_features, rgrl_feature_set const &to_features, rgrl_view const ¤t_view, rgrl_transformation const ¤t_xform, rgrl_scale const &, rgrl_match_set_sptr const &old_matches=0) |
Build the matches with a view (old interface). | |
rgrl_type_macro (rgrl_matcher_k_nearest, rgrl_matcher) | |
rgrl_match_set_sptr | compute_matches (rgrl_feature_set const &from_features, rgrl_feature_set const &to_features, rgrl_view const ¤t_view, rgrl_scale const ¤t_scale, rgrl_match_set_sptr const &old_matches=0) |
Build the matches with a view (new interface). | |
rgrl_match_set_sptr | compute_matches (rgrl_feature_set const &from_features, rgrl_feature_set const &to_features, rgrl_transformation const ¤t_xform, rgrl_mask_box const &from_region, rgrl_mask_box const &to_region, rgrl_scale const ¤t_scale, rgrl_match_set_sptr const &old_matches=0) |
Build the matches without a view. | |
virtual rgrl_match_set_sptr | invert_matches (rgrl_match_set const ¤t_set, rgrl_view const ¤t_view) |
invert the matches according to inverse transformation. | |
rgrl_type_macro (rgrl_matcher, rgrl_object) | |
virtual bool | is_type (const vcl_type_info &type) const |
void | set_debug_flag (unsigned int debugFlag) const |
Set the value of the debug flag. A non-zero value turns debugging on. | |
unsigned int | debug_flag () const |
Get the value of the debug flag. | |
void | set_warning (bool) const |
Set the flag for warning messages. | |
bool | warning () const |
Get the warning flag. | |
unsigned int | add_observer (rgrl_event_sptr event, rgrl_command_sptr) |
Allow people to add/remove/invoke observers (callbacks) to any rgrl object. | |
rgrl_command_sptr | get_command (unsigned int tag) |
Get the command associated with the given tag. | |
void | invoke_event (const rgrl_event &) |
Call execute(.) on all the rgrl_commands observing this event id. | |
void | invoke_event (const rgrl_event &) const |
Call execute(.) on all the rgrl_commands observing this event id. | |
void | remove_observer (unsigned int tag) |
Remove the observer with this tag value. | |
bool | has_observer (const rgrl_event &event) const |
Return true if an observer is registered for this event. | |
void | ref () |
void | unref () |
int | get_references () const |
bool | is_referenced () const |
Static Public Member Functions | |
static const vcl_type_info & | type_id () |
Protected Types | |
typedef vcl_vector< flip_node > ::const_iterator | nodes_vec_iterator |
Protected Member Functions | |
bool | validate (rgrl_feature_sptr const &mapped, rgrl_mask_sptr const &roi_sptr) const |
validate the mapped feature. | |
virtual void | add_one_flipped_match (rgrl_match_set_sptr &inv_set, rgrl_view const ¤t_view, nodes_vec_iterator const &begin_iter, nodes_vec_iterator const &end_iter) |
This is internal to invert matches function. | |
Protected Attributes | |
unsigned int | k_ |
double | thres_ |
For each "from" feature, match the k nearest "to" features.
This will map the "from" feature via the current transform and select the k nearest "to" features to the mapped "from" feature.
The some of the nearest features can optionally be discarded if it is further than some threshold distance.
Definition at line 18 of file rgrl_matcher_k_nearest.h.
typedef vcl_vector<flip_node>::const_iterator rgrl_matcher::nodes_vec_iterator [protected, inherited] |
Definition at line 81 of file rgrl_matcher.h.
rgrl_matcher_k_nearest::rgrl_matcher_k_nearest | ( | unsigned int | k | ) |
Initialize the matcher to select k correspondences per "from" feature.
Definition at line 24 of file rgrl_matcher_k_nearest.cxx.
rgrl_matcher_k_nearest::rgrl_matcher_k_nearest | ( | unsigned int | k, |
double | dist_thres | ||
) |
Select at most k correspondences within the threshold.
The matcher will select k correspondences from the list of correspondences with Euclidean distance within the threshold dist_thres.
Definition at line 32 of file rgrl_matcher_k_nearest.cxx.
unsigned int rgrl_object::add_observer | ( | rgrl_event_sptr | event, |
rgrl_command_sptr | cmd | ||
) | [inherited] |
Allow people to add/remove/invoke observers (callbacks) to any rgrl object.
This is an implementation of the subject/observer design pattern. An observer is added by specifying an event to respond to and an rgrl_command to execute. It returns an unsigned long tag which can be used later to remove the event or retrieve the command.
Definition at line 47 of file rgrl_object.cxx.
void rgrl_matcher_k_nearest::add_one_flipped_match | ( | rgrl_match_set_sptr & | inv_set, |
rgrl_view const & | current_view, | ||
nodes_vec_iterator const & | begin_iter, | ||
nodes_vec_iterator const & | end_iter | ||
) | [protected, virtual] |
This is internal to invert matches function.
It is to restrict the number of nearest neighbors
Reimplemented from rgrl_matcher.
Reimplemented in rgrl_matcher_k_nearest_pick_one.
Definition at line 105 of file rgrl_matcher_k_nearest.cxx.
rgrl_match_set_sptr rgrl_matcher_k_nearest::compute_matches | ( | rgrl_feature_set const & | from_features, |
rgrl_feature_set const & | to_features, | ||
rgrl_view const & | current_view, | ||
rgrl_transformation const & | current_xform, | ||
rgrl_scale const & | current_scale, | ||
rgrl_match_set_sptr const & | old_matches = 0 |
||
) | [virtual] |
Build the matches with a view (old interface).
Implements rgrl_matcher.
Reimplemented in rgrl_matcher_k_nearest_pick_one, rgrl_matcher_k_nearest_boundary, rgrl_matcher_k_nearest_adv, and rgrl_matcher_k_nearest_random.
Definition at line 42 of file rgrl_matcher_k_nearest.cxx.
rgrl_match_set_sptr rgrl_matcher::compute_matches | ( | rgrl_feature_set const & | from_features, |
rgrl_feature_set const & | to_features, | ||
rgrl_view const & | current_view, | ||
rgrl_scale const & | current_scale, | ||
rgrl_match_set_sptr const & | old_matches = 0 |
||
) | [inherited] |
Build the matches with a view (new interface).
Current xform is embedded in the view
Definition at line 24 of file rgrl_matcher.cxx.
rgrl_match_set_sptr rgrl_matcher::compute_matches | ( | rgrl_feature_set const & | from_features, |
rgrl_feature_set const & | to_features, | ||
rgrl_transformation const & | current_xform, | ||
rgrl_mask_box const & | from_region, | ||
rgrl_mask_box const & | to_region, | ||
rgrl_scale const & | current_scale, | ||
rgrl_match_set_sptr const & | old_matches = 0 |
||
) | [inherited] |
Build the matches without a view.
Definition at line 36 of file rgrl_matcher.cxx.
unsigned int rgrl_object::debug_flag | ( | ) | const [inherited] |
Get the value of the debug flag.
Definition at line 26 of file rgrl_object.cxx.
rgrl_command_sptr rgrl_object::get_command | ( | unsigned int | tag | ) | [inherited] |
Get the command associated with the given tag.
Definition at line 57 of file rgrl_object.cxx.
bool rgrl_object::has_observer | ( | const rgrl_event & | event | ) | const [inherited] |
Return true if an observer is registered for this event.
Definition at line 107 of file rgrl_object.cxx.
rgrl_match_set_sptr rgrl_matcher::invert_matches | ( | rgrl_match_set const & | current_set, |
rgrl_view const & | current_view | ||
) | [virtual, inherited] |
invert the matches according to inverse transformation.
Definition at line 88 of file rgrl_matcher.cxx.
void rgrl_object::invoke_event | ( | const rgrl_event & | event | ) | [inherited] |
Call execute(.) on all the rgrl_commands observing this event id.
Definition at line 69 of file rgrl_object.cxx.
void rgrl_object::invoke_event | ( | const rgrl_event & | event | ) | const [inherited] |
Call execute(.) on all the rgrl_commands observing this event id.
The actions triggered by this call doesn't modify this object.
Definition at line 83 of file rgrl_object.cxx.
virtual bool rgrl_object::is_type | ( | const vcl_type_info & | type | ) | const [inline, virtual, inherited] |
Reimplemented in rgrl_scale_estimator.
Definition at line 66 of file rgrl_object.h.
void rgrl_object::remove_observer | ( | unsigned int | tag | ) | [inherited] |
Remove the observer with this tag value.
Definition at line 97 of file rgrl_object.cxx.
rgrl_matcher_k_nearest::rgrl_type_macro | ( | rgrl_matcher_k_nearest | , |
rgrl_matcher | |||
) |
rgrl_matcher::rgrl_type_macro | ( | rgrl_matcher | , |
rgrl_object | |||
) | [inherited] |
void rgrl_object::set_debug_flag | ( | unsigned int | debugFlag | ) | const [inherited] |
Set the value of the debug flag. A non-zero value turns debugging on.
Definition at line 19 of file rgrl_object.cxx.
void rgrl_object::set_warning | ( | bool | flag | ) | const [inherited] |
Set the flag for warning messages.
Definition at line 33 of file rgrl_object.cxx.
static const vcl_type_info& rgrl_object::type_id | ( | ) | [inline, static, inherited] |
Reimplemented in rgrl_scale_estimator.
Definition at line 63 of file rgrl_object.h.
bool rgrl_matcher_k_nearest::validate | ( | rgrl_feature_sptr const & | mapped, |
rgrl_mask_sptr const & | roi_sptr | ||
) | const [protected] |
validate the mapped feature.
Reimplemented in rgrl_matcher_k_nearest_pick_one, and rgrl_matcher_k_nearest_adv.
Definition at line 172 of file rgrl_matcher_k_nearest.cxx.
bool rgrl_object::warning | ( | ) | const [inherited] |
Get the warning flag.
Definition at line 40 of file rgrl_object.cxx.
unsigned int rgrl_matcher_k_nearest::k_ [protected] |
Definition at line 72 of file rgrl_matcher_k_nearest.h.
double rgrl_matcher_k_nearest::thres_ [protected] |
Definition at line 73 of file rgrl_matcher_k_nearest.h.