Public Member Functions | Protected Attributes | List of all members
vpgl_affine_fundamental_matrix< T > Class Template Reference

#include <vpgl_affine_fundamental_matrix.h>

Inheritance diagram for vpgl_affine_fundamental_matrix< T >:
Inheritance graph
[legend]

Public Member Functions

 vpgl_affine_fundamental_matrix ()
 Default constructor creates dummy matrix. More...
 
 vpgl_affine_fundamental_matrix (const vpgl_fundamental_matrix< T > &fm)
 Cast up from a regular vpgl_fundamental_matrix. More...
 
void set_from_params (T a, T b, T c, T d, T e)
 Form the matrix from its free parameters. More...
 
void get_epipoles (vgl_homg_point_2d< T > &er, vgl_homg_point_2d< T > &el) const
 Put the coordinates of the epipoles in er, el. More...
 
vgl_homg_line_2d< T > r_epipolar_line (const vgl_homg_point_2d< T > &pl) const
 Given a point in one image, find the corresponding epipolar line in the other image. More...
 
vgl_homg_line_2d< T > r_epipolar_line (const vgl_homg_line_2d< T > &epiline_l) const
 Given an epipolar line in one image, find the corresponding epipolar line in the other image. More...
 
vgl_homg_line_2d< T > l_epipolar_line (const vgl_homg_point_2d< T > &pr) const
 
vgl_homg_line_2d< T > l_epipolar_line (const vgl_homg_line_2d< T > &epiline_r) const
 
vpgl_proj_camera< T > extract_left_camera (const vnl_vector_fixed< T, 3 > &v, T lambda) const
 Gives the left camera matrix corresponding to the fundamental matrix. More...
 
vpgl_proj_camera< T > extract_left_camera (const std::vector< vgl_point_3d< T > > &world_points, const std::vector< vgl_point_2d< T > > &image_points) const
 Alternative left camera extractor. More...
 
const vnl_matrix_fixed< T, 3, 3 > & get_matrix () const
 Get a copy of the FM in vnl form. More...
 
const vnl_svd< T > & svd () const
 Get a copy of the svd of the fundamental matrix. More...
 
void set_matrix (const vpgl_proj_camera< T > &cr, const vpgl_proj_camera< T > &cl)
 
void set_matrix (const vnl_matrix_fixed< T, 3, 3 > &F)
 

Protected Attributes

vnl_matrix_fixed< T, 3, 3 > F_
 Internal representation of the fundamental matrix. More...
 
vnl_svd< T > * cached_svd_
 Cached copy of the svd. More...
 

Detailed Description

template<class T>
class vpgl_affine_fundamental_matrix< T >

Definition at line 22 of file vpgl_affine_fundamental_matrix.h.

Constructor & Destructor Documentation

◆ vpgl_affine_fundamental_matrix() [1/2]

Default constructor creates dummy matrix.

Definition at line 13 of file vpgl_affine_fundamental_matrix.hxx.

◆ vpgl_affine_fundamental_matrix() [2/2]

Cast up from a regular vpgl_fundamental_matrix.

Definition at line 25 of file vpgl_affine_fundamental_matrix.hxx.

Member Function Documentation

◆ extract_left_camera() [1/2]

template<class T >
vpgl_proj_camera< T > vpgl_fundamental_matrix< T >::extract_left_camera ( const vnl_vector_fixed< T, 3 > &  v,
lambda 
) const
inherited

Gives the left camera matrix corresponding to the fundamental matrix.

The right camera matrix is assumed to be identity. The variables v, lambda are free parameters as described in H&Z 2nd ed p. 256.

Definition at line 162 of file vpgl_fundamental_matrix.hxx.

◆ extract_left_camera() [2/2]

template<class T >
vpgl_proj_camera< T > vpgl_fundamental_matrix< T >::extract_left_camera ( const std::vector< vgl_point_3d< T > > &  world_points,
const std::vector< vgl_point_2d< T > > &  image_points 
) const
inherited

Alternative left camera extractor.

Takes corresponding lists of image points with their world locations to determine the correct camera. Must give at least 2 pairs of correspondences. This is not a robust algorithm but this shouldn't be a problem as these correspondences will usually be picked by hand.

Definition at line 187 of file vpgl_fundamental_matrix.hxx.

◆ get_epipoles()

template<class T >
void vpgl_fundamental_matrix< T >::get_epipoles ( vgl_homg_point_2d< T > &  er,
vgl_homg_point_2d< T > &  el 
) const
inherited

Put the coordinates of the epipoles in er, el.

Definition at line 88 of file vpgl_fundamental_matrix.hxx.

◆ get_matrix()

template<class T>
const vnl_matrix_fixed<T,3,3>& vpgl_fundamental_matrix< T >::get_matrix ( ) const
inlineinherited

Get a copy of the FM in vnl form.

Definition at line 107 of file vpgl_fundamental_matrix.h.

◆ l_epipolar_line() [1/2]

template<class T >
vgl_homg_line_2d< T > vpgl_fundamental_matrix< T >::l_epipolar_line ( const vgl_homg_point_2d< T > &  pr) const
inherited

Definition at line 111 of file vpgl_fundamental_matrix.hxx.

◆ l_epipolar_line() [2/2]

template<class T >
vgl_homg_line_2d< T > vpgl_fundamental_matrix< T >::l_epipolar_line ( const vgl_homg_line_2d< T > &  epiline_r) const
inherited

Definition at line 142 of file vpgl_fundamental_matrix.hxx.

◆ r_epipolar_line() [1/2]

template<class T >
vgl_homg_line_2d< T > vpgl_fundamental_matrix< T >::r_epipolar_line ( const vgl_homg_point_2d< T > &  pl) const
inherited

Given a point in one image, find the corresponding epipolar line in the other image.

Definition at line 100 of file vpgl_fundamental_matrix.hxx.

◆ r_epipolar_line() [2/2]

template<class T >
vgl_homg_line_2d< T > vpgl_fundamental_matrix< T >::r_epipolar_line ( const vgl_homg_line_2d< T > &  epiline_l) const
inherited

Given an epipolar line in one image, find the corresponding epipolar line in the other image.

H&Z 2nd ed p. 247

Definition at line 122 of file vpgl_fundamental_matrix.hxx.

◆ set_from_params()

template<class T >
void vpgl_affine_fundamental_matrix< T >::set_from_params ( a,
b,
c,
d,
e 
)

Form the matrix from its free parameters.

Definition at line 35 of file vpgl_affine_fundamental_matrix.hxx.

◆ set_matrix() [1/2]

template<class T >
void vpgl_fundamental_matrix< T >::set_matrix ( const vpgl_proj_camera< T > &  cr,
const vpgl_proj_camera< T > &  cl 
)
inherited

Definition at line 228 of file vpgl_fundamental_matrix.hxx.

◆ set_matrix() [2/2]

template<class T >
void vpgl_fundamental_matrix< T >::set_matrix ( const vnl_matrix_fixed< T, 3, 3 > &  F)
inherited

Definition at line 250 of file vpgl_fundamental_matrix.hxx.

◆ svd()

template<class T>
const vnl_svd<T>& vpgl_fundamental_matrix< T >::svd ( ) const
inlineinherited

Get a copy of the svd of the fundamental matrix.

The svd is computed when the matrix is first set, so this just accesses a cached version.

Definition at line 111 of file vpgl_fundamental_matrix.h.

Member Data Documentation

◆ cached_svd_

template<class T>
vnl_svd<T>* vpgl_fundamental_matrix< T >::cached_svd_
mutableprotectedinherited

Cached copy of the svd.

Definition at line 123 of file vpgl_fundamental_matrix.h.

◆ F_

template<class T>
vnl_matrix_fixed<T,3,3> vpgl_fundamental_matrix< T >::F_
protectedinherited

Internal representation of the fundamental matrix.

Definition at line 120 of file vpgl_fundamental_matrix.h.


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