#include <vmal_rectifier.h>
Public Member Functions | |
vmal_rectifier () | |
Default constructor. | |
vmal_rectifier (vmal_multi_view_data_vertex_sptr mvd_vertex, vmal_multi_view_data_edge_sptr mvd_edge, int ima_height, int ima_width) | |
Constructor. | |
vmal_rectifier (vcl_vector< vnl_vector< double > > *pts0, vcl_vector< vnl_vector< double > > *pts1, int ima_height, int ima_width) | |
~vmal_rectifier () | |
void | rectification_matrix (vnl_double_3x3 &H0, vnl_double_3x3 &H1) |
void | set_tritensor (TriTensor &tri) |
void | compute_joint_epipolar_transform_new (vnl_double_3 *points0, vnl_double_3 *points1, int numpoints, vnl_double_3x3 &H0, vnl_double_3x3 &H1, int in_height, int in_width, int &out_height, int &out_width, double sweeti, double sweetj, bool affine) |
void | compute_initial_joint_epipolar_transforms (vnl_double_3 *points0, vnl_double_3 *points1, int numpoints, vnl_double_3x3 &H0, vnl_double_3x3 &H1, double sweeti, double sweetj, bool affine) |
int | compute_initial_joint_epipolar_transforms (const vnl_double_3x3 &Q, double ci, double cj, vnl_double_3x3 &H0, vnl_double_3x3 &H1) |
Computes a pair of transformation matrices for an image pair that will define the joint epipolar projection. | |
vnl_double_3x3 | matching_transform (const vnl_double_3x3 &Q, const vnl_double_3x3 &H1) |
void | factor_Q_matrix_SR (const vnl_double_3x3 &Q, vnl_double_3x3 &R, vnl_double_3x3 &S) |
This routine comes up with a factorization of Q into R S. | |
vnl_double_3x3 | affine_correction (vnl_double_3 *points0, vnl_double_3 *points1, int numpoints, const vnl_double_3x3 &H0, const vnl_double_3x3 &H1) |
void | apply_affine_correction (vnl_double_3 *points0, vnl_double_3 *points1, int numpoints, vnl_double_3x3 &H0, vnl_double_3x3 &H1) |
void | rectify_rotate90 (int &height, int &width, vnl_double_3x3 &H0, vnl_double_3x3 &H1) |
void | conditional_rectify_rotate180 (vnl_double_3x3 &H0, vnl_double_3x3 &H1) |
void | resample (vnl_double_3x3 H0, vnl_double_3x3 H1, vil_image_view< vxl_byte > imgL, vil_image_view< vxl_byte > imgR) |
vil_image_view< vxl_byte > * | GetRectifiedImageLeft () |
vil_image_view< vxl_byte > * | GetRectifiedImageRight () |
Private Attributes | |
vnl_double_3 * | lines0_p_ |
vnl_double_3 * | lines0_q_ |
vnl_double_3 * | lines1_p_ |
vnl_double_3 * | lines1_q_ |
vnl_double_3 * | points0_ |
vnl_double_3 * | points1_ |
int | numpoints_ |
int | height_ |
int | width_ |
TriTensor | tritensor_ |
vnl_double_3x3 | F12_ |
vcl_vector< vnl_double_3 > | epipoles_ |
bool | is_f_compute_ |
vnl_double_3x3 | H0_ |
vnl_double_3x3 | H1_ |
vil_image_view< vxl_byte > * | rectL |
vil_image_view< vxl_byte > * | rectR |
Definition at line 30 of file vmal_rectifier.h.
vmal_rectifier::vmal_rectifier | ( | ) |
Default constructor.
Definition at line 20 of file vmal_rectifier.cxx.
vmal_rectifier::vmal_rectifier | ( | vmal_multi_view_data_vertex_sptr | mvd_vertex, |
vmal_multi_view_data_edge_sptr | mvd_edge, | ||
int | ima_height, | ||
int | ima_width | ||
) |
Constructor.
Definition at line 34 of file vmal_rectifier.cxx.
vmal_rectifier::vmal_rectifier | ( | vcl_vector< vnl_vector< double > > * | pts0, |
vcl_vector< vnl_vector< double > > * | pts1, | ||
int | ima_height, | ||
int | ima_width | ||
) |
Definition at line 73 of file vmal_rectifier.cxx.
vmal_rectifier::~vmal_rectifier | ( | ) |
Definition at line 100 of file vmal_rectifier.cxx.
vnl_double_3x3 vmal_rectifier::affine_correction | ( | vnl_double_3 * | points0, |
vnl_double_3 * | points1, | ||
int | numpoints, | ||
const vnl_double_3x3 & | H0, | ||
const vnl_double_3x3 & | H1 | ||
) |
Definition at line 410 of file vmal_rectifier.cxx.
void vmal_rectifier::apply_affine_correction | ( | vnl_double_3 * | points0, |
vnl_double_3 * | points1, | ||
int | numpoints, | ||
vnl_double_3x3 & | H0, | ||
vnl_double_3x3 & | H1 | ||
) |
Definition at line 449 of file vmal_rectifier.cxx.
void vmal_rectifier::compute_initial_joint_epipolar_transforms | ( | vnl_double_3 * | points0, |
vnl_double_3 * | points1, | ||
int | numpoints, | ||
vnl_double_3x3 & | H0, | ||
vnl_double_3x3 & | H1, | ||
double | sweeti, | ||
double | sweetj, | ||
bool | affine | ||
) |
Definition at line 238 of file vmal_rectifier.cxx.
int vmal_rectifier::compute_initial_joint_epipolar_transforms | ( | const vnl_double_3x3 & | Q, |
double | ci, | ||
double | cj, | ||
vnl_double_3x3 & | H0, | ||
vnl_double_3x3 & | H1 | ||
) |
Computes a pair of transformation matrices for an image pair that will define the joint epipolar projection.
This does a minimally distortion-free correction to H0 and then gets a matching H0.
Definition at line 297 of file vmal_rectifier.cxx.
void vmal_rectifier::compute_joint_epipolar_transform_new | ( | vnl_double_3 * | points0, |
vnl_double_3 * | points1, | ||
int | numpoints, | ||
vnl_double_3x3 & | H0, | ||
vnl_double_3x3 & | H1, | ||
int | in_height, | ||
int | in_width, | ||
int & | out_height, | ||
int & | out_width, | ||
double | sweeti, | ||
double | sweetj, | ||
bool | affine | ||
) |
Definition at line 203 of file vmal_rectifier.cxx.
void vmal_rectifier::conditional_rectify_rotate180 | ( | vnl_double_3x3 & | H0, |
vnl_double_3x3 & | H1 | ||
) |
Definition at line 495 of file vmal_rectifier.cxx.
void vmal_rectifier::factor_Q_matrix_SR | ( | const vnl_double_3x3 & | Q, |
vnl_double_3x3 & | R, | ||
vnl_double_3x3 & | S | ||
) |
This routine comes up with a factorization of Q into R S.
Definition at line 370 of file vmal_rectifier.cxx.
vil_image_view<vxl_byte>* vmal_rectifier::GetRectifiedImageLeft | ( | ) | [inline] |
Definition at line 114 of file vmal_rectifier.h.
vil_image_view<vxl_byte>* vmal_rectifier::GetRectifiedImageRight | ( | ) | [inline] |
Definition at line 115 of file vmal_rectifier.h.
vnl_double_3x3 vmal_rectifier::matching_transform | ( | const vnl_double_3x3 & | Q, |
const vnl_double_3x3 & | H1 | ||
) |
Definition at line 354 of file vmal_rectifier.cxx.
void vmal_rectifier::rectification_matrix | ( | vnl_double_3x3 & | H0, |
vnl_double_3x3 & | H1 | ||
) |
Definition at line 112 of file vmal_rectifier.cxx.
void vmal_rectifier::rectify_rotate90 | ( | int & | height, |
int & | width, | ||
vnl_double_3x3 & | H0, | ||
vnl_double_3x3 & | H1 | ||
) |
Definition at line 466 of file vmal_rectifier.cxx.
void vmal_rectifier::resample | ( | vnl_double_3x3 | H0, |
vnl_double_3x3 | H1, | ||
vil_image_view< vxl_byte > | imgL, | ||
vil_image_view< vxl_byte > | imgR | ||
) |
Definition at line 523 of file vmal_rectifier.cxx.
void vmal_rectifier::set_tritensor | ( | TriTensor & | tri | ) |
Definition at line 181 of file vmal_rectifier.cxx.
vcl_vector<vnl_double_3> vmal_rectifier::epipoles_ [private] |
Definition at line 131 of file vmal_rectifier.h.
vnl_double_3x3 vmal_rectifier::F12_ [private] |
Definition at line 130 of file vmal_rectifier.h.
vnl_double_3x3 vmal_rectifier::H0_ [private] |
Definition at line 133 of file vmal_rectifier.h.
vnl_double_3x3 vmal_rectifier::H1_ [private] |
Definition at line 133 of file vmal_rectifier.h.
int vmal_rectifier::height_ [private] |
Definition at line 127 of file vmal_rectifier.h.
bool vmal_rectifier::is_f_compute_ [private] |
Definition at line 132 of file vmal_rectifier.h.
vnl_double_3* vmal_rectifier::lines0_p_ [private] |
Definition at line 118 of file vmal_rectifier.h.
vnl_double_3* vmal_rectifier::lines0_q_ [private] |
Definition at line 119 of file vmal_rectifier.h.
vnl_double_3* vmal_rectifier::lines1_p_ [private] |
Definition at line 120 of file vmal_rectifier.h.
vnl_double_3* vmal_rectifier::lines1_q_ [private] |
Definition at line 121 of file vmal_rectifier.h.
int vmal_rectifier::numpoints_ [private] |
Definition at line 125 of file vmal_rectifier.h.
vnl_double_3* vmal_rectifier::points0_ [private] |
Definition at line 123 of file vmal_rectifier.h.
vnl_double_3* vmal_rectifier::points1_ [private] |
Definition at line 124 of file vmal_rectifier.h.
vil_image_view<vxl_byte>* vmal_rectifier::rectL [private] |
Definition at line 135 of file vmal_rectifier.h.
vil_image_view<vxl_byte>* vmal_rectifier::rectR [private] |
Definition at line 136 of file vmal_rectifier.h.
TriTensor vmal_rectifier::tritensor_ [private] |
Definition at line 129 of file vmal_rectifier.h.
int vmal_rectifier::width_ [private] |
Definition at line 128 of file vmal_rectifier.h.