rgrl_matcher_k_nearest_boundary Class Reference

#include <rgrl_matcher_k_nearest_boundary.h>

Inheritance diagram for rgrl_matcher_k_nearest_boundary:

rgrl_matcher_k_nearest rgrl_matcher rgrl_object vbl_ref_count List of all members.

Detailed Description

For each "from" feature, match the boundary points with the k nearest "to" features.

Allows the same operations as for rgrl_matcher_k_nearest. For each center-location match, boundary points are extracted and stored as 2 matches.

FIXME: only deal with 2D for now.

Definition at line 22 of file rgrl_matcher_k_nearest_boundary.h.


Public Member Functions

 rgrl_matcher_k_nearest_boundary (unsigned int k)
 Initialize the matcher to select k correspondences per "from" feature.
 rgrl_matcher_k_nearest_boundary (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 &current_view, rgrl_transformation const &current_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_boundary, rgrl_matcher_k_nearest)
rgrl_match_set_sptr 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)
 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 &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)
 Build the matches without a view.
 rgrl_type_macro (rgrl_matcher_k_nearest, rgrl_matcher)
 rgrl_type_macro (rgrl_matcher, rgrl_object)
virtual rgrl_match_set_sptr invert_matches (rgrl_match_set const &current_set, rgrl_view const &current_view)
 invert the matches according to inverse transformation.
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(.
void invoke_event (const rgrl_event &) const
 Call execute(.
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 &current_view, nodes_vec_iterator const &begin_iter, nodes_vec_iterator const &end_iter)
 This is internal to invert matches function.
virtual void 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 Attributes

unsigned int k_
double thres_

Private Types

typedef vcl_vector< rgrl_feature_sptrfeature_vector

Private Member Functions

vbl_array_2d< bool > match_boundary_pts (feature_vector const &mapped_bd_pts, feature_vector const &to_boundary_pts) const
vbl_array_2d< bool > match_boundary_pts_helper (vbl_array_2d< double > const &dist_error, vbl_array_2d< bool > const &valid, int count, double &obj_value) const
 Use dynamic programming to find the assignment matrix that gives the minimum sum of squared residuals for the correct matching.

Member Typedef Documentation

typedef vcl_vector<rgrl_feature_sptr > rgrl_matcher_k_nearest_boundary::feature_vector [private]

Definition at line 50 of file rgrl_matcher_k_nearest_boundary.h.

typedef vcl_vector<flip_node>::const_iterator rgrl_matcher::nodes_vec_iterator [protected, inherited]

Definition at line 81 of file rgrl_matcher.h.


Constructor & Destructor Documentation

rgrl_matcher_k_nearest_boundary::rgrl_matcher_k_nearest_boundary ( unsigned int  k  ) 

Initialize the matcher to select k correspondences per "from" feature.

Definition at line 14 of file rgrl_matcher_k_nearest_boundary.cxx.

rgrl_matcher_k_nearest_boundary::rgrl_matcher_k_nearest_boundary ( 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 20 of file rgrl_matcher_k_nearest_boundary.cxx.


Member Function Documentation

rgrl_match_set_sptr rgrl_matcher_k_nearest_boundary::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 &  ,
rgrl_match_set_sptr const &  old_matches = 0 
) [virtual]

Build the matches with a view (old interface).

Reimplemented from rgrl_matcher_k_nearest.

Definition at line 27 of file rgrl_matcher_k_nearest_boundary.cxx.

rgrl_matcher_k_nearest_boundary::rgrl_type_macro ( rgrl_matcher_k_nearest_boundary  ,
rgrl_matcher_k_nearest   
)

vbl_array_2d< bool > rgrl_matcher_k_nearest_boundary::match_boundary_pts ( feature_vector const &  mapped_bd_pts,
feature_vector const &  to_boundary_pts 
) const [private]

Definition at line 97 of file rgrl_matcher_k_nearest_boundary.cxx.

vbl_array_2d< bool > rgrl_matcher_k_nearest_boundary::match_boundary_pts_helper ( vbl_array_2d< double > const &  dist_error,
vbl_array_2d< bool > const &  valid,
int  count,
double &  obj_value 
) const [private]

Use dynamic programming to find the assignment matrix that gives the minimum sum of squared residuals for the correct matching.

Definition at line 128 of file rgrl_matcher_k_nearest_boundary.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.

rgrl_matcher_k_nearest::rgrl_type_macro ( rgrl_matcher_k_nearest  ,
rgrl_matcher   
) [inherited]

rgrl_matcher::rgrl_type_macro ( rgrl_matcher  ,
rgrl_object   
) [inherited]

bool rgrl_matcher_k_nearest::validate ( rgrl_feature_sptr const &  mapped,
rgrl_mask_sptr const &  roi_sptr 
) const [protected, inherited]

validate the mapped feature.

Reimplemented in rgrl_matcher_k_nearest_adv, and rgrl_matcher_k_nearest_pick_one.

Definition at line 172 of file rgrl_matcher_k_nearest.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, inherited]

This is internal to invert matches function.

It is to restrict the number of nearest neighbors

Reimplemented in rgrl_matcher_k_nearest_pick_one.

Definition at line 105 of file rgrl_matcher_k_nearest.cxx.

void rgrl_matcher::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, inherited]

Definition at line 58 of file rgrl_matcher.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.

static const vcl_type_info& rgrl_object::type_id (  )  [inline, static, inherited]

Reimplemented in rgrl_scale_estimator.

Definition at line 64 of file rgrl_object.h.

virtual bool rgrl_object::is_type ( const vcl_type_info &  type  )  const [inline, virtual, inherited]

Reimplemented in rgrl_scale_estimator.

Definition at line 67 of file rgrl_object.h.

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.

unsigned int rgrl_object::debug_flag (  )  const [inherited]

Get the value of the debug flag.

Definition at line 26 of file rgrl_object.cxx.

void rgrl_object::set_warning ( bool   )  const [inherited]

Set the flag for warning messages.

Definition at line 33 of file rgrl_object.cxx.

bool rgrl_object::warning (  )  const [inherited]

Get the warning flag.

Definition at line 40 of file rgrl_object.cxx.

unsigned int rgrl_object::add_observer ( rgrl_event_sptr  event,
rgrl_command_sptr   
) [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_ommand 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.

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.

void rgrl_object::invoke_event ( const rgrl_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  )  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.

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.

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.


Member Data Documentation

unsigned int rgrl_matcher_k_nearest::k_ [protected, inherited]

Definition at line 72 of file rgrl_matcher_k_nearest.h.

double rgrl_matcher_k_nearest::thres_ [protected, inherited]

Definition at line 73 of file rgrl_matcher_k_nearest.h.


The documentation for this class was generated from the following files:
Generated on Mon Mar 8 05:27:43 2010 for contrib/rpl/rgrl by  doxygen 1.5.1