#include <FMPlanarNonLinFun.h>
Public Types | |
enum | UseGradient |
Public Member Functions | |
FMPlanarNonLinFun (const ImageMetric *, const ImageMetric *, double outlier_distance_squared, vcl_vector< vgl_homg_point_2d< double > > &points1, vcl_vector< vgl_homg_point_2d< double > > &points2) | |
Initialize object, will fit F to points1,2 using imagemetrics. | |
FMPlanarNonLinFun (const ImageMetric *, const ImageMetric *, double outlier_distance_squared, vcl_vector< HomgPoint2D > &points1, vcl_vector< HomgPoint2D > &points2) | |
bool | compute (FMatrixPlanar *F) |
Compute the planar F matrix and returns true if successful. | |
void | f (vnl_vector< double > const &x, vnl_vector< double > &fx) |
The virtual function from vnl_levenberg_marquardt. | |
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 | p_ |
unsigned int | n_ |
bool | use_gradient_ |
Private Member Functions | |
void | fmatrix_to_params (const FMatrixPlanar &F, vnl_vector< double > ¶ms) |
FMatrixPlanar | params_to_fmatrix (const vnl_vector< double > ¶ms) |
void | fmatrix_to_params_awf (const FMatrixPlanar &F, vnl_vector< double > ¶ms) |
FMatrixPlanar | params_to_fmatrix_awf (const vnl_vector< double > ¶ms) |
void | fmatrix_to_params_mna (const FMatrixPlanar &F, vnl_vector< double > ¶ms) |
FMatrixPlanar | params_to_fmatrix_mna (const vnl_vector< double > ¶ms) |
Private Attributes | |
int | data_size_ |
vcl_vector< vgl_homg_point_2d < double > > | points1_ |
vcl_vector< vgl_homg_point_2d < double > > | points2_ |
HomgNorm2D | normalized_ |
vnl_double_3x3 | denorm_matrix_ |
vnl_double_3x3 | denorm_matrix_inv_ |
HomgMetric | image_metric1_ |
HomgMetric | image_metric2_ |
Definition at line 31 of file FMPlanarNonLinFun.h.
FMPlanarNonLinFun::FMPlanarNonLinFun | ( | const ImageMetric * | image_metric1, |
const ImageMetric * | image_metric2, | ||
double | outlier_distance_squared, | ||
vcl_vector< vgl_homg_point_2d< double > > & | points1, | ||
vcl_vector< vgl_homg_point_2d< double > > & | points2 | ||
) |
Initialize object, will fit F to points1,2 using imagemetrics.
Constructor.
Rejecting points > outlier_distance_squared from epipolar lines
Definition at line 31 of file FMPlanarNonLinFun.cxx.
FMPlanarNonLinFun::FMPlanarNonLinFun | ( | const ImageMetric * | image_metric1, |
const ImageMetric * | image_metric2, | ||
double | outlier_distance_squared, | ||
vcl_vector< HomgPoint2D > & | points1, | ||
vcl_vector< HomgPoint2D > & | points2 | ||
) |
Definition at line 57 of file FMPlanarNonLinFun.cxx.
bool FMPlanarNonLinFun::compute | ( | FMatrixPlanar * | F | ) |
Compute the planar F matrix and returns true if successful.
Definition at line 88 of file FMPlanarNonLinFun.cxx.
void FMPlanarNonLinFun::f | ( | vnl_vector< double > const & | x, |
vnl_vector< double > & | fx | ||
) | [virtual] |
The virtual function from vnl_levenberg_marquardt.
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 126 of file FMPlanarNonLinFun.cxx.
void FMPlanarNonLinFun::fmatrix_to_params | ( | const FMatrixPlanar & | F, |
vnl_vector< double > & | params | ||
) | [private] |
Definition at line 149 of file FMPlanarNonLinFun.cxx.
void FMPlanarNonLinFun::fmatrix_to_params_awf | ( | const FMatrixPlanar & | F, |
vnl_vector< double > & | params | ||
) | [private] |
Definition at line 261 of file FMPlanarNonLinFun.cxx.
void FMPlanarNonLinFun::fmatrix_to_params_mna | ( | const FMatrixPlanar & | F, |
vnl_vector< double > & | params | ||
) | [private] |
Definition at line 171 of file FMPlanarNonLinFun.cxx.
FMatrixPlanar FMPlanarNonLinFun::params_to_fmatrix | ( | const vnl_vector< double > & | params | ) | [private] |
Definition at line 158 of file FMPlanarNonLinFun.cxx.
FMatrixPlanar FMPlanarNonLinFun::params_to_fmatrix_awf | ( | const vnl_vector< double > & | params | ) | [private] |
Definition at line 323 of file FMPlanarNonLinFun.cxx.
FMatrixPlanar FMPlanarNonLinFun::params_to_fmatrix_mna | ( | const vnl_vector< double > & | params | ) | [private] |
Definition at line 240 of file FMPlanarNonLinFun.cxx.
int FMPlanarNonLinFun::data_size_ [private] |
Definition at line 33 of file FMPlanarNonLinFun.h.
Definition at line 40 of file FMPlanarNonLinFun.h.
Definition at line 41 of file FMPlanarNonLinFun.h.
HomgMetric FMPlanarNonLinFun::image_metric1_ [private] |
Definition at line 48 of file FMPlanarNonLinFun.h.
HomgMetric FMPlanarNonLinFun::image_metric2_ [private] |
Definition at line 49 of file FMPlanarNonLinFun.h.
HomgNorm2D FMPlanarNonLinFun::normalized_ [private] |
Definition at line 38 of file FMPlanarNonLinFun.h.
vcl_vector<vgl_homg_point_2d<double> > FMPlanarNonLinFun::points1_ [private] |
Definition at line 35 of file FMPlanarNonLinFun.h.
vcl_vector<vgl_homg_point_2d<double> > FMPlanarNonLinFun::points2_ [private] |
Definition at line 36 of file FMPlanarNonLinFun.h.