this class optimizes the rotation/translation of a perspective camera given an initial estimate and a known internal calibration. More...
#include <vpgl_optimize_camera.h>
Public Types | |
enum | UseGradient |
Public Member Functions | |
vpgl_orientation_position_lsqr (const vpgl_calibration_matrix< double > &K, const vcl_vector< vgl_homg_point_3d< double > > &world_points, const vcl_vector< vgl_point_2d< double > > &image_points) | |
Constructor. | |
virtual | ~vpgl_orientation_position_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 | |
vpgl_calibration_matrix< double > | K_ |
The fixed internal camera calibration. | |
vcl_vector< vgl_homg_point_3d < double > > | world_points_ |
The known points in the world. | |
vcl_vector< vgl_point_2d < double > > | image_points_ |
The corresponding points in the image. | |
unsigned int | p_ |
unsigned int | n_ |
bool | use_gradient_ |
this class optimizes the rotation/translation of a perspective camera given an initial estimate and a known internal calibration.
Definition at line 54 of file vpgl_optimize_camera.h.
vpgl_orientation_position_lsqr::vpgl_orientation_position_lsqr | ( | const vpgl_calibration_matrix< double > & | K, |
const vcl_vector< vgl_homg_point_3d< double > > & | world_points, | ||
const vcl_vector< vgl_point_2d< double > > & | image_points | ||
) |
Constructor.
Definition at line 53 of file vpgl_optimize_camera.cxx.
virtual vpgl_orientation_position_lsqr::~vpgl_orientation_position_lsqr | ( | ) | [inline, virtual] |
Destructor.
Definition at line 63 of file vpgl_optimize_camera.h.
void vpgl_orientation_position_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. The parameters in x are really two three component vectors {wx, wy, wz, tx, ty, tz} where w is the Rodrigues vector of the rotation and t is the translation.
Implements vnl_least_squares_function.
Definition at line 71 of file vpgl_optimize_camera.cxx.
vcl_vector<vgl_point_2d<double> > vpgl_orientation_position_lsqr::image_points_ [protected] |
The corresponding points in the image.
Definition at line 83 of file vpgl_optimize_camera.h.
vpgl_calibration_matrix<double> vpgl_orientation_position_lsqr::K_ [protected] |
The fixed internal camera calibration.
Definition at line 79 of file vpgl_optimize_camera.h.
vcl_vector<vgl_homg_point_3d<double> > vpgl_orientation_position_lsqr::world_points_ [protected] |
The known points in the world.
Definition at line 81 of file vpgl_optimize_camera.h.