Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions
rgrl_matcher_k_nearest_boundary Class Reference

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

#include <rgrl_matcher_k_nearest_boundary.h>

Inheritance diagram for rgrl_matcher_k_nearest_boundary:
Inheritance graph
[legend]

List of all members.

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(.) 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 &current_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_

Private Types

typedef vcl_vector
< rgrl_feature_sptr
feature_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.

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.


Member Typedef Documentation

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

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, inherited]

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_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 &  current_scale,
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_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.

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.

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   
) [inherited]
rgrl_matcher_k_nearest_boundary::rgrl_type_macro ( rgrl_matcher_k_nearest_boundary  ,
rgrl_matcher_k_nearest   
)
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, inherited]

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.


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: