#include <vgl_h_matrix_2d_compute_linear.h>

Public Member Functions | |
| vgl_h_matrix_2d_compute_linear (bool allow_ideal_points=false) | |
| Construct a vgl_h_matrix_2d_compute_linear object. More... | |
| int | minimum_number_of_correspondences () const override |
| void | verbose (bool v) |
| bool | compute (std::vector< vgl_homg_point_2d< double > > const &points1, std::vector< vgl_homg_point_2d< double > > const &points2, vgl_h_matrix_2d< double > &H) |
| homography from matched points. More... | |
| bool | compute (std::vector< vgl_homg_line_2d< double > > const &lines1, std::vector< vgl_homg_line_2d< double > > const &lines2, vgl_h_matrix_2d< double > &H) |
| homography from matched lines. More... | |
| bool | compute (std::vector< vgl_homg_line_2d< double > > const &lines1, std::vector< vgl_homg_line_2d< double > > const &lines2, std::vector< double > const &weights, vgl_h_matrix_2d< double > &H) |
| homography from matched lines with a weight vector. More... | |
| bool | compute (std::vector< vgl_homg_point_2d< double > > const &points1, std::vector< vgl_homg_point_2d< double > > const &points2, std::vector< vgl_homg_line_2d< double > > const &lines1, std::vector< vgl_homg_line_2d< double > > const &lines2, vgl_h_matrix_2d< double > &H) |
| homography from matched points and lines. More... | |
| vgl_h_matrix_2d< double > | compute (std::vector< vgl_homg_point_2d< double > > const &p1, std::vector< vgl_homg_point_2d< double > > const &p2) |
| homography from matched points - return h_matrix. More... | |
| vgl_h_matrix_2d< double > | compute (std::vector< vgl_homg_line_2d< double > > const &l1, std::vector< vgl_homg_line_2d< double > > const &l2) |
| homography from matched lines - return h_matrix. More... | |
| vgl_h_matrix_2d< double > | compute (std::vector< vgl_homg_line_2d< double > > const &l1, std::vector< vgl_homg_line_2d< double > > const &l2, std::vector< double > const &weights) |
| homography from matched lines with weight vector - return h_matrix. More... | |
| vgl_h_matrix_2d< double > | compute (std::vector< vgl_homg_point_2d< double > > const &p1, std::vector< vgl_homg_point_2d< double > > const &p2, std::vector< vgl_homg_line_2d< double > > const &l1, std::vector< vgl_homg_line_2d< double > > const &l2) |
| homography from matched points and lines - return h_matrix. More... | |
Protected Member Functions | |
| bool | compute_p (std::vector< vgl_homg_point_2d< double > > const &points1, std::vector< vgl_homg_point_2d< double > > const &points2, vgl_h_matrix_2d< double > &H) override |
| compute from matched points. More... | |
| bool | compute_l (std::vector< vgl_homg_line_2d< double > > const &lines1, std::vector< vgl_homg_line_2d< double > > const &lines2, vgl_h_matrix_2d< double > &H) override |
| compute from matched lines. More... | |
| bool | compute_l (std::vector< vgl_homg_line_2d< double > > const &lines1, std::vector< vgl_homg_line_2d< double > > const &lines2, std::vector< double > const &weights, vgl_h_matrix_2d< double > &H) override |
| compute from matched lines with weight vector. More... | |
| bool | compute_pl (std::vector< vgl_homg_point_2d< double > > const &points1, std::vector< vgl_homg_point_2d< double > > const &points2, std::vector< vgl_homg_line_2d< double > > const &lines1, std::vector< vgl_homg_line_2d< double > > const &lines2, vgl_h_matrix_2d< double > &H) override |
| compute from matched points and lines. More... | |
| bool | solve_linear_problem (int equ_count, std::vector< vgl_homg_point_2d< double > > const &p1, std::vector< vgl_homg_point_2d< double > > const &p2, vgl_h_matrix_2d< double > &H) |
| Assumes all corresponding points have equal weight. More... | |
| bool | solve_weighted_least_squares (std::vector< vgl_homg_line_2d< double > > const &l1, std::vector< vgl_homg_line_2d< double > > const &l2, std::vector< double > const &w, vgl_h_matrix_2d< double > &H) |
| for lines, the solution should be weighted by line length. More... | |
Protected Attributes | |
| bool | verbose_ |
Private Attributes | |
| bool | allow_ideal_points_ |
Definition at line 24 of file vgl_h_matrix_2d_compute_linear.h.
| vgl_h_matrix_2d_compute_linear::vgl_h_matrix_2d_compute_linear | ( | bool | allow_ideal_points = false | ) |
Construct a vgl_h_matrix_2d_compute_linear object.
The allow_ideal_points flag is described below.
Definition at line 19 of file vgl_h_matrix_2d_compute_linear.cxx.
|
inlineinherited |
homography from matched points.
Definition at line 52 of file vgl_h_matrix_2d_compute.h.
|
inlineinherited |
homography from matched lines.
Definition at line 60 of file vgl_h_matrix_2d_compute.h.
|
inlineinherited |
homography from matched lines with a weight vector.
Definition at line 68 of file vgl_h_matrix_2d_compute.h.
|
inlineinherited |
homography from matched points and lines.
Definition at line 77 of file vgl_h_matrix_2d_compute.h.
|
inlineinherited |
homography from matched points - return h_matrix.
Definition at line 88 of file vgl_h_matrix_2d_compute.h.
|
inlineinherited |
homography from matched lines - return h_matrix.
Definition at line 94 of file vgl_h_matrix_2d_compute.h.
|
inlineinherited |
homography from matched lines with weight vector - return h_matrix.
Definition at line 100 of file vgl_h_matrix_2d_compute.h.
|
inlineinherited |
homography from matched points and lines - return h_matrix.
Definition at line 107 of file vgl_h_matrix_2d_compute.h.
|
overrideprotectedvirtual |
compute from matched lines.
Implements vgl_h_matrix_2d_compute.
Definition at line 159 of file vgl_h_matrix_2d_compute_linear.cxx.
|
overrideprotectedvirtual |
compute from matched lines with weight vector.
Implements vgl_h_matrix_2d_compute.
Definition at line 344 of file vgl_h_matrix_2d_compute_linear.cxx.
|
overrideprotectedvirtual |
compute from matched points.
Implements vgl_h_matrix_2d_compute.
Definition at line 116 of file vgl_h_matrix_2d_compute_linear.cxx.
|
overrideprotectedvirtual |
compute from matched points and lines.
Implements vgl_h_matrix_2d_compute.
Definition at line 214 of file vgl_h_matrix_2d_compute_linear.cxx.
|
inlineoverridevirtual |
Implements vgl_h_matrix_2d_compute.
Definition at line 70 of file vgl_h_matrix_2d_compute_linear.h.
|
protected |
Assumes all corresponding points have equal weight.
Compute a plane-plane projectivity using linear least squares.
Returns false if the calculation fails or there are fewer than four point matches in the list. The algorithm finds the nullvector of the
design matrix:
If \t allow_ideal_points was set at construction, the
version which allows for ideal points is used.
Definition at line 53 of file vgl_h_matrix_2d_compute_linear.cxx.
|
protected |
for lines, the solution should be weighted by line length.
The solution equations should be weighted by the length of the corresponding line matches.
This weighting is given by w.
The two equations resulting from l1i<->l2i should be weighted by wi. Form a m x m diagonal matrix W with elements from w, with m = 2*Nc, where Nc=l1.size()=l2.size() is the number of corresponding line pairs. The weighted least squares problem is expressed as:
(D^tWD)x = Mx = 0
where D is the design matrix and x is the 9 element vector of unknown homography matrix elements. This problem can be solved using SVD as in the case of unweighted least squares.
Definition at line 280 of file vgl_h_matrix_2d_compute_linear.cxx.
|
inlineinherited |
Definition at line 40 of file vgl_h_matrix_2d_compute.h.
|
private |
Definition at line 26 of file vgl_h_matrix_2d_compute_linear.h.
|
protectedinherited |
Definition at line 114 of file vgl_h_matrix_2d_compute.h.
1.8.15