#include <FMatrixComputeNonLinear.h>
Public Types | |
enum | UseGradient |
Public Member Functions | |
FMatrixComputeNonLinear (PairMatchSetCorner *matches) | |
Constructor. | |
bool | compute (FMatrix *F) |
bool | compute_basis (FMatrix *F, vcl_vector< int > basis) |
Compute the F Matrix by augmenting a 7 point basis. | |
void | f (const vnl_vector< double > &x, vnl_vector< double > &fx) |
The virtual function from vnl_levenberg_marquardt which returns the RMS epipolar error and a vector of residuals. | |
void | throw_failure () |
void | clear_failure () |
virtual void | gradf (vnl_vector< double > const &x, vnl_matrix< double > &jacobian) |
void | fdgradf (vnl_vector< double > const &x, vnl_matrix< double > &jacobian, double stepsize) |
void | ffdgradf (vnl_vector< double > const &x, vnl_matrix< double > &jacobian, double stepsize) |
virtual void | trace (int iteration, vnl_vector< double > const &x, vnl_vector< double > const &fx) |
double | rms (vnl_vector< double > const &x) |
unsigned int | get_number_of_unknowns () const |
unsigned int | get_number_of_residuals () const |
bool | has_gradient () const |
bool | vnl_discrete_diff_fwd (vnl_least_squares_function *lsf, double h, vnl_vector< double > const &x, vnl_matrix< double > &J) |
bool | vnl_discrete_diff_fwd (vnl_least_squares_function *lsf, vnl_vector< double > const &h, vnl_vector< double > const &x, vnl_matrix< double > &J) |
bool | vnl_discrete_diff_fwd (vnl_least_squares_function *lsf, vnl_vector< double > const &h, vnl_vector< double > const &x, vnl_vector< double > const &y, vnl_matrix< double > &J) |
bool | vnl_discrete_diff_sym (vnl_least_squares_function *lsf, double h, vnl_vector< double > const &x, vnl_matrix< double > &J) |
bool | vnl_discrete_diff_sym (vnl_least_squares_function *lsf, vnl_vector< double > const &h, vnl_vector< double > const &x, vnl_matrix< double > &J) |
Public Attributes | |
no_gradient | |
use_gradient | |
bool | failure |
Protected Member Functions | |
void | init (unsigned int number_of_unknowns, unsigned int number_of_residuals) |
Protected Attributes | |
unsigned int | n_ |
bool | use_gradient_ |
Private Member Functions | |
void | fmatrix_to_params (const FMatrix &F, vnl_vector< double > ¶ms) |
FMatrix | params_to_fmatrix (const vnl_vector< double > ¶ms) |
void | get_plan (int &r1, int &c1, int &r2, int &c2) |
vnl_vector< double > | calculate_residuals (FMatrix *F) |
Private Attributes | |
int | data_size_ |
int | terminate_count_ |
PairMatchSetCorner & | matches_ |
int | p_ |
int | q_ |
int | r_ |
FMatrix | F_orig_ |
bool | one_ |
vcl_vector< vgl_homg_point_2d < double > > | basis1_ |
vcl_vector< vgl_homg_point_2d < double > > | basis2_ |
vcl_vector< vgl_homg_point_2d < double > > | points1_ |
vcl_vector< vgl_homg_point_2d < double > > | points2_ |
Definition at line 26 of file FMatrixComputeNonLinear.h.
FMatrixComputeNonLinear::FMatrixComputeNonLinear | ( | PairMatchSetCorner * | matches | ) |
Constructor.
Definition at line 32 of file FMatrixComputeNonLinear.cxx.
vnl_vector< double > FMatrixComputeNonLinear::calculate_residuals | ( | FMatrix * | F | ) | [private] |
Definition at line 436 of file FMatrixComputeNonLinear.cxx.
bool FMatrixComputeNonLinear::compute | ( | FMatrix * | F | ) |
Definition at line 89 of file FMatrixComputeNonLinear.cxx.
bool FMatrixComputeNonLinear::compute_basis | ( | FMatrix * | F, |
vcl_vector< int > | basis | ||
) |
Compute the F Matrix by augmenting a 7 point basis.
Definition at line 66 of file FMatrixComputeNonLinear.cxx.
void FMatrixComputeNonLinear::f | ( | const vnl_vector< double > & | x, |
vnl_vector< double > & | fx | ||
) | [virtual] |
The virtual function from vnl_levenberg_marquardt which returns the RMS epipolar error and a vector of residuals.
Implements vnl_least_squares_function.
Definition at line 192 of file FMatrixComputeNonLinear.cxx.
void FMatrixComputeNonLinear::fmatrix_to_params | ( | const FMatrix & | F, |
vnl_vector< double > & | params | ||
) | [private] |
Definition at line 200 of file FMatrixComputeNonLinear.cxx.
void FMatrixComputeNonLinear::get_plan | ( | int & | r1, |
int & | c1, | ||
int & | r2, | ||
int & | c2 | ||
) | [private] |
Definition at line 391 of file FMatrixComputeNonLinear.cxx.
FMatrix FMatrixComputeNonLinear::params_to_fmatrix | ( | const vnl_vector< double > & | params | ) | [private] |
Definition at line 275 of file FMatrixComputeNonLinear.cxx.
vcl_vector<vgl_homg_point_2d<double> > FMatrixComputeNonLinear::basis1_ [private] |
Definition at line 50 of file FMatrixComputeNonLinear.h.
vcl_vector<vgl_homg_point_2d<double> > FMatrixComputeNonLinear::basis2_ [private] |
Definition at line 51 of file FMatrixComputeNonLinear.h.
int FMatrixComputeNonLinear::data_size_ [private] |
Definition at line 44 of file FMatrixComputeNonLinear.h.
FMatrix FMatrixComputeNonLinear::F_orig_ [private] |
Definition at line 48 of file FMatrixComputeNonLinear.h.
Definition at line 46 of file FMatrixComputeNonLinear.h.
bool FMatrixComputeNonLinear::one_ [private] |
Definition at line 49 of file FMatrixComputeNonLinear.h.
int FMatrixComputeNonLinear::p_ [private] |
Reimplemented from vnl_least_squares_function.
Definition at line 47 of file FMatrixComputeNonLinear.h.
vcl_vector<vgl_homg_point_2d<double> > FMatrixComputeNonLinear::points1_ [private] |
Definition at line 52 of file FMatrixComputeNonLinear.h.
vcl_vector<vgl_homg_point_2d<double> > FMatrixComputeNonLinear::points2_ [private] |
Definition at line 53 of file FMatrixComputeNonLinear.h.
int FMatrixComputeNonLinear::q_ [private] |
Definition at line 47 of file FMatrixComputeNonLinear.h.
int FMatrixComputeNonLinear::r_ [private] |
Definition at line 47 of file FMatrixComputeNonLinear.h.
int FMatrixComputeNonLinear::terminate_count_ [private] |
Definition at line 45 of file FMatrixComputeNonLinear.h.