Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
rrel_affine_est Class Reference

#include <rrel_affine_est.h>

Inheritance diagram for rrel_affine_est:
Inheritance graph
[legend]

List of all members.

Public Types

typedef rrel_linear_regressionregression_ptr
enum  scale_t { NONE = 0, SINGLE = 1, MULTIPLE = 2 }
 Type of scale information this problem provides. More...

Public Member Functions

 rrel_affine_est (const vcl_vector< vgl_point_2d< double > > &from_pts, const vcl_vector< vgl_point_2d< double > > &to_pts)
 Constructor that includes all information in the sample vectors.
 rrel_affine_est (const vcl_vector< vnl_vector< double > > &from_pts, const vcl_vector< vnl_vector< double > > &to_pts, unsigned int dim=2)
 Constructor with data pre-separated into arrays of independent and dependent variables.
virtual ~rrel_affine_est ()
 Destructor.
unsigned int num_samples () const
 Total number of data points.
vnl_vector< double > trans (const vnl_vector< double > &params) const
 organize into usual representation.
vnl_matrix< double > A (const vnl_vector< double > &params) const
bool fit_from_minimal_set (const vcl_vector< int > &point_indices, vnl_vector< double > &params) const
 Generate a parameter estimate from a minimal sample set.
void compute_residuals (const vnl_vector< double > &params, vcl_vector< double > &residuals) const
 Compute signed fit residuals relative to the parameter estimate.
bool weighted_least_squares_fit (vnl_vector< double > &params, vnl_matrix< double > &norm_covar, const vcl_vector< double > *weights=0) const
 Weighted least squares parameter estimate.
unsigned int param_dof () const
 The degrees of freedom in the parameter set.
unsigned int num_samples_to_instantiate () const
 Minimum number of samples required to uniquely instantiate a fit.
virtual unsigned int residual_dof () const
 The degrees of freedom in the residual.
virtual unsigned int num_unique_samples () const
 The number of "unique" samples.
virtual void compute_weights (const vcl_vector< double > &residuals, const rrel_wls_obj *obj, double scale, vcl_vector< double > &weights) const
 Compute the weights for the given residuals.
virtual scale_t scale_type () const
 Type of scale information the problem provides.
virtual const vcl_vector
< double > & 
prior_multiple_scales () const
 The prior scale vector, if available.
virtual double prior_scale () const
 The prior scale, if available.
virtual void set_prior_multiple_scales (const vcl_vector< double > &scales)
 Sets the scales for heteroscedastic data.
virtual void set_prior_scale (double scale)
 Sets the scale for homoscedastic data.
virtual void set_no_prior_scale ()
 Removes the scale information for the problem.
void set_similarity_weights (const vcl_vector< double > &wgts)
 Set similarity weights.
const vcl_vector< double > & similarity_weights () const
 Get similarity weights.

Protected Member Functions

void set_param_dof (unsigned int dof)
 Set the degrees of freedom.
void set_num_samples_for_fit (unsigned int num_samp)
 Set the number of samples needed for a unique fit.
void set_scale_type (scale_t t)
 Set the type of prior scale.

Protected Attributes

vcl_vector< vnl_vector< double > > from_pts_
vcl_vector< vnl_vector< double > > to_pts_
unsigned affine_dof_
unsigned min_num_pts_
unsigned num_samples_

Detailed Description

Definition at line 16 of file rrel_affine_est.h.


Member Typedef Documentation

Definition at line 18 of file rrel_affine_est.h.


Member Enumeration Documentation

Type of scale information this problem provides.

NONE: problem does not provide any scale information. SINGLE: problem provides a single prior scale (homoscedastic data). MULTIPLE: problem provides a scale for each residual (heteroscedastic data).

Enumerator:
NONE 
SINGLE 
MULTIPLE 

Definition at line 40 of file rrel_estimation_problem.h.


Constructor & Destructor Documentation

rrel_affine_est::rrel_affine_est ( const vcl_vector< vgl_point_2d< double > > &  from_pts,
const vcl_vector< vgl_point_2d< double > > &  to_pts 
)

Constructor that includes all information in the sample vectors.

For each sample, the first m-1 entries are the independent variables, and the last entry is the dependent variable.

Definition at line 14 of file rrel_affine_est.cxx.

rrel_affine_est::rrel_affine_est ( const vcl_vector< vnl_vector< double > > &  from_pts,
const vcl_vector< vnl_vector< double > > &  to_pts,
unsigned int  dim = 2 
)

Constructor with data pre-separated into arrays of independent and dependent variables.

Definition at line 40 of file rrel_affine_est.cxx.

rrel_affine_est::~rrel_affine_est ( ) [virtual]

Destructor.

Definition at line 54 of file rrel_affine_est.cxx.


Member Function Documentation

vnl_matrix< double > rrel_affine_est::A ( const vnl_vector< double > &  params) const

Definition at line 83 of file rrel_affine_est.cxx.

void rrel_affine_est::compute_residuals ( const vnl_vector< double > &  params,
vcl_vector< double > &  residuals 
) const [virtual]

Compute signed fit residuals relative to the parameter estimate.

Implements rrel_estimation_problem.

Definition at line 150 of file rrel_affine_est.cxx.

void rrel_estimation_problem::compute_weights ( const vcl_vector< double > &  residuals,
const rrel_wls_obj obj,
double  scale,
vcl_vector< double > &  weights 
) const [virtual, inherited]

Compute the weights for the given residuals.

The residuals are essentially those returned by compute_residuals(). The default behaviour is to apply obj->wgt() to each residual. Some problems, however, many need to augment the weights. Such problems should override this function (but may want to call this to compute the "basic" weights).

Definition at line 33 of file rrel_estimation_problem.cxx.

bool rrel_affine_est::fit_from_minimal_set ( const vcl_vector< int > &  point_indices,
vnl_vector< double > &  params 
) const [virtual]

Generate a parameter estimate from a minimal sample set.

Implements rrel_estimation_problem.

Definition at line 114 of file rrel_affine_est.cxx.

unsigned int rrel_affine_est::num_samples ( ) const [virtual]

Total number of data points.

Implements rrel_estimation_problem.

Definition at line 60 of file rrel_affine_est.cxx.

unsigned int rrel_estimation_problem::num_samples_to_instantiate ( ) const [inline, inherited]

Minimum number of samples required to uniquely instantiate a fit.

dof()/num_samples_to_instantiate() gives the number of constraints per sample.

Definition at line 61 of file rrel_estimation_problem.h.

virtual unsigned int rrel_estimation_problem::num_unique_samples ( ) const [inline, virtual, inherited]

The number of "unique" samples.

In most problems, this equals num_samples. With estimation problems involving non-unique correspondences, however, the total number of possible correspondences (= num_samples()) generally much greater than the number of "unique samples" (which would be the number of points from one image).

This is used by random sampling techniques to determine the number of samples required to get a given probability of success.

Definition at line 84 of file rrel_estimation_problem.h.

unsigned int rrel_estimation_problem::param_dof ( ) const [inline, inherited]

The degrees of freedom in the parameter set.

Definition at line 57 of file rrel_estimation_problem.h.

const vcl_vector< double > & rrel_estimation_problem::prior_multiple_scales ( ) const [virtual, inherited]

The prior scale vector, if available.

The call is valid only if scale_type() == MULTIPLE.

Definition at line 59 of file rrel_estimation_problem.cxx.

double rrel_estimation_problem::prior_scale ( ) const [virtual, inherited]

The prior scale, if available.

The call is valid only if scale_type() == SINGLE.

Definition at line 66 of file rrel_estimation_problem.cxx.

virtual unsigned int rrel_estimation_problem::residual_dof ( ) const [inline, virtual, inherited]

The degrees of freedom in the residual.

Most of the time, this would be 1 since the residual comes from a single random variable. In some problems, however, the error is the combination of more than one random variable. (For example, if the residual is a 2d Euclidean distance with possible error in both coordinates, the degrees of freedom in the error will be 2.)

Reimplemented in rrel_homography2d_est, and rrel_shift2d_est.

Definition at line 73 of file rrel_estimation_problem.h.

virtual scale_t rrel_estimation_problem::scale_type ( ) const [inline, virtual, inherited]

Type of scale information the problem provides.

Definition at line 116 of file rrel_estimation_problem.h.

void rrel_estimation_problem::set_no_prior_scale ( ) [virtual, inherited]

Removes the scale information for the problem.

Side effect: set scale_type() = NONE.

Definition at line 90 of file rrel_estimation_problem.cxx.

void rrel_estimation_problem::set_num_samples_for_fit ( unsigned int  num_samp) [inline, protected, inherited]

Set the number of samples needed for a unique fit.

Definition at line 167 of file rrel_estimation_problem.h.

void rrel_estimation_problem::set_param_dof ( unsigned int  dof) [inline, protected, inherited]

Set the degrees of freedom.

Definition at line 164 of file rrel_estimation_problem.h.

void rrel_estimation_problem::set_prior_multiple_scales ( const vcl_vector< double > &  scales) [virtual, inherited]

Sets the scales for heteroscedastic data.

Side effect: set scale_type() = MULTIPLE.

Definition at line 73 of file rrel_estimation_problem.cxx.

void rrel_estimation_problem::set_prior_scale ( double  scale) [virtual, inherited]

Sets the scale for homoscedastic data.

Side effect: set scale_type() = SINGLE.

Definition at line 83 of file rrel_estimation_problem.cxx.

void rrel_estimation_problem::set_scale_type ( scale_t  t) [inline, protected, inherited]

Set the type of prior scale.

Definition at line 170 of file rrel_estimation_problem.h.

void rrel_estimation_problem::set_similarity_weights ( const vcl_vector< double > &  wgts) [inline, inherited]

Set similarity weights.

Currently it is only used in wgted random sampling search

Definition at line 140 of file rrel_estimation_problem.h.

const vcl_vector<double>& rrel_estimation_problem::similarity_weights ( ) const [inline, inherited]

Get similarity weights.

Definition at line 144 of file rrel_estimation_problem.h.

vnl_vector< double > rrel_affine_est::trans ( const vnl_vector< double > &  params) const

organize into usual representation.

Definition at line 97 of file rrel_affine_est.cxx.

bool rrel_affine_est::weighted_least_squares_fit ( vnl_vector< double > &  params,
vnl_matrix< double > &  norm_covar,
const vcl_vector< double > *  weights = 0 
) const [virtual]

Weighted least squares parameter estimate.

Implements rrel_estimation_problem.

Definition at line 170 of file rrel_affine_est.cxx.


Member Data Documentation

unsigned rrel_affine_est::affine_dof_ [protected]

Definition at line 61 of file rrel_affine_est.h.

vcl_vector< vnl_vector<double> > rrel_affine_est::from_pts_ [protected]

Definition at line 58 of file rrel_affine_est.h.

unsigned rrel_affine_est::min_num_pts_ [protected]

Definition at line 62 of file rrel_affine_est.h.

unsigned rrel_affine_est::num_samples_ [protected]

Definition at line 63 of file rrel_affine_est.h.

vcl_vector< vnl_vector<double> > rrel_affine_est::to_pts_ [protected]

Definition at line 59 of file rrel_affine_est.h.


The documentation for this class was generated from the following files: