The 3-d offset and scale parameters of rational cameras typically must be adjusted to compensate for errors in geographic alignment. More...
#include <vpgl_rational_adjust.h>
Public Types | |
enum | UseGradient |
Public Member Functions | |
vpgl_adjust_lsqr (vpgl_rational_camera< double > const &rcam, vcl_vector< vgl_point_2d< double > > const &img_pts, vcl_vector< vgl_point_3d< double > > const &geo_pts, unsigned num_unknowns, unsigned num_residuals) | |
Constructor. | |
virtual | ~vpgl_adjust_lsqr () |
Destructor. | |
virtual void | f (vnl_vector< double > const &x, vnl_vector< double > &fx) |
The main function. | |
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 | num_corrs_ |
vpgl_rational_camera< double > | rcam_ |
vcl_vector< vgl_point_2d < double > > | img_pts_ |
vcl_vector< vgl_point_3d < double > > | geo_pts_ |
unsigned int | p_ |
unsigned int | n_ |
bool | use_gradient_ |
The 3-d offset and scale parameters of rational cameras typically must be adjusted to compensate for errors in geographic alignment.
This algorithm adjusts these parameters to give the smallest projection error. That is, the error between the true image location and the projected 3-d world point corresponding to that location.
Definition at line 24 of file vpgl_rational_adjust.h.
vpgl_adjust_lsqr::vpgl_adjust_lsqr | ( | vpgl_rational_camera< double > const & | rcam, |
vcl_vector< vgl_point_2d< double > > const & | img_pts, | ||
vcl_vector< vgl_point_3d< double > > const & | geo_pts, | ||
unsigned | num_unknowns, | ||
unsigned | num_residuals | ||
) |
Constructor.
Definition at line 15 of file vpgl_rational_adjust.cxx.
virtual vpgl_adjust_lsqr::~vpgl_adjust_lsqr | ( | ) | [inline, virtual] |
Destructor.
Definition at line 35 of file vpgl_rational_adjust.h.
void vpgl_adjust_lsqr::f | ( | vnl_vector< double > const & | x, |
vnl_vector< double > & | fx | ||
) | [virtual] |
The main function.
Given the parameter vector x, compute the vector of residuals fx. fx has been sized appropriately before the call.
Implements vnl_least_squares_function.
Definition at line 28 of file vpgl_rational_adjust.cxx.
vcl_vector<vgl_point_3d<double> > vpgl_adjust_lsqr::geo_pts_ [protected] |
Definition at line 51 of file vpgl_rational_adjust.h.
vcl_vector<vgl_point_2d<double> > vpgl_adjust_lsqr::img_pts_ [protected] |
Definition at line 50 of file vpgl_rational_adjust.h.
unsigned vpgl_adjust_lsqr::num_corrs_ [protected] |
Definition at line 48 of file vpgl_rational_adjust.h.
vpgl_rational_camera<double> vpgl_adjust_lsqr::rcam_ [protected] |
Definition at line 49 of file vpgl_rational_adjust.h.