Public Member Functions | Private Attributes
vmal_rectifier Class Reference

#include <vmal_rectifier.h>

List of all members.

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

Detailed Description

Definition at line 30 of file vmal_rectifier.h.


Constructor & Destructor Documentation

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.


Member Function Documentation

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.


Member Data Documentation

vcl_vector<vnl_double_3> vmal_rectifier::epipoles_ [private]

Definition at line 131 of file vmal_rectifier.h.

Definition at line 130 of file vmal_rectifier.h.

Definition at line 133 of file vmal_rectifier.h.

Definition at line 133 of file vmal_rectifier.h.

int vmal_rectifier::height_ [private]

Definition at line 127 of file vmal_rectifier.h.

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.

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.


The documentation for this class was generated from the following files: