Go to the documentation of this file.00001 #ifndef vgl_h_matrix_2d_optimize_lmq_h_
00002 #define vgl_h_matrix_2d_optimize_lmq_h_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include <vgl/algo/vgl_h_matrix_2d_optimize.h>
00018
00019 class vgl_h_matrix_2d_optimize_lmq : public vgl_h_matrix_2d_optimize
00020 {
00021 public:
00022
00023 vgl_h_matrix_2d_optimize_lmq(vgl_h_matrix_2d<double> const& initial_h);
00024
00025 int minimum_number_of_correspondences() const { return 5; }
00026
00027 protected:
00028
00029
00030 bool optimize_h(vcl_vector<vgl_homg_point_2d<double> > const& points1,
00031 vcl_vector<vgl_homg_point_2d<double> > const& points2,
00032 vgl_h_matrix_2d<double> const& h_initial,
00033 vgl_h_matrix_2d<double>& h_optimized);
00034
00035
00036 virtual
00037 bool optimize_p(vcl_vector<vgl_homg_point_2d<double> > const& points1,
00038 vcl_vector<vgl_homg_point_2d<double> > const& points2,
00039 vgl_h_matrix_2d<double>& H);
00040
00041
00042 virtual
00043 bool optimize_l(vcl_vector<vgl_homg_line_2d<double> > const& lines1,
00044 vcl_vector<vgl_homg_line_2d<double> > const& lines2,
00045 vgl_h_matrix_2d<double>& H);
00046
00047
00048 virtual
00049 bool optimize_pl(vcl_vector<vgl_homg_point_2d<double> > const& points1,
00050 vcl_vector<vgl_homg_point_2d<double> > const& points2,
00051 vcl_vector<vgl_homg_line_2d<double> > const& lines1,
00052 vcl_vector<vgl_homg_line_2d<double> > const& lines2,
00053 vgl_h_matrix_2d<double>& H);
00054 };
00055
00056 #endif // vgl_h_matrix_2d_optimize_lmq_h_