Classes | Functions
core/vpgl/vpgl_perspective_camera.h File Reference

A class for the perspective camera model. More...

#include <vnl/vnl_fwd.h>
#include <vgl/vgl_fwd.h>
#include <vgl/vgl_point_3d.h>
#include <vgl/vgl_homg_point_3d.h>
#include <vgl/algo/vgl_rotation_3d.h>
#include <vgl/vgl_ray_3d.h>
#include <vcl_iosfwd.h>
#include "vpgl_proj_camera.h"
#include "vpgl_calibration_matrix.h"

Go to the source code of this file.

Classes

class  vpgl_perspective_camera< T >
 This class implements the perspective camera class as described in Hartley & Zisserman as a finite camera. More...

Functions

template<class Type >
vcl_ostream & operator<< (vcl_ostream &s, vpgl_perspective_camera< Type > const &p)
 Write vpgl_perspective_camera to stream.
template<class Type >
vcl_istream & operator>> (vcl_istream &s, vpgl_perspective_camera< Type > &p)
 Read vpgl_perspective_camera from stream.
template<class Type >
void vrml_write (vcl_ostream &s, vpgl_perspective_camera< Type > const &p, double rad)
 Write vpgl_perspective_camera to a vrml file, does not write a vrml header, only the camera, the camera center sphere has radius rad.
template<class T >
bool vpgl_perspective_decomposition (const vnl_matrix_fixed< T, 3, 4 > &camera_matrix, vpgl_perspective_camera< T > &p_camera)
 Decompose camera into parameter blocks.
template<class T >
vpgl_perspective_camera< T > vpgl_align_down (const vpgl_perspective_camera< T > &p0, const vpgl_perspective_camera< T > &p1)
 Changes the coordinate system of camera p1 such that the same change would transform p0 to K[I|0].
template<class T >
vpgl_perspective_camera< T > vpgl_align_up (const vpgl_perspective_camera< T > &p0, const vpgl_perspective_camera< T > &p1)
 Changes the coordinate system of camera p1 such that the same change would transform K[I|0] to p0.
template<class T >
double vpgl_persp_cam_distance (const vpgl_perspective_camera< T > &cam1, const vpgl_perspective_camera< T > &cam2)
template<class T >
vpgl_perspective_camera< T > postmultiply (const vpgl_perspective_camera< T > &in_cam, const vgl_h_matrix_3d< T > &euclid_trans)
template<class T >
vcl_vector
< vpgl_perspective_camera< T > > 
cameras_from_directory (vcl_string dir, T)
 Return a list of camera's, loaded from the (name sorted) files from the given directory.

Detailed Description

A class for the perspective camera model.

Author:
Thomas Pollard
Date:
Jan 28, 2005
Author:
Joseph Mundy, Matt Leotta, Vishal Jain
    Modifications
     May 08, 2005  Ricardo Fabbri   Added binary I/O support
     May 08, 2005  Ricardo Fabbri   Added == operator
     Feb  8, 2007  Thomas Pollard   Added finite backproject method.
     Mar 16, 2007  Matt Leotta      Replaced vgl_h_matrix_3d with vgl_rotation_3d for rotation
     May 31, 2011  Peter Vanroose   Added homg-coord. "backproject()" method
   

Definition in file vpgl_perspective_camera.h.


Function Documentation

template<class T >
vcl_vector<vpgl_perspective_camera<T> > cameras_from_directory ( vcl_string  dir,
 
)

Return a list of camera's, loaded from the (name sorted) files from the given directory.

Definition at line 528 of file vpgl_perspective_camera.txx.

template<class Type >
vcl_ostream& operator<< ( vcl_ostream &  s,
vpgl_perspective_camera< Type > const &  p 
)

Write vpgl_perspective_camera to stream.

Definition at line 423 of file vpgl_perspective_camera.txx.

template<class Type >
vcl_istream& operator>> ( vcl_istream &  s,
vpgl_perspective_camera< Type > &  p 
)

Read vpgl_perspective_camera from stream.

Definition at line 438 of file vpgl_perspective_camera.txx.

template<class T >
vpgl_perspective_camera<T> postmultiply ( const vpgl_perspective_camera< T > &  in_cam,
const vgl_h_matrix_3d< T > &  euclid_trans 
)

Definition at line 207 of file vpgl_perspective_camera.h.

template<class T >
vpgl_perspective_camera<T> vpgl_align_down ( const vpgl_perspective_camera< T > &  p0,
const vpgl_perspective_camera< T > &  p1 
)

Changes the coordinate system of camera p1 such that the same change would transform p0 to K[I|0].

Definition at line 337 of file vpgl_perspective_camera.txx.

template<class T >
vpgl_perspective_camera<T> vpgl_align_up ( const vpgl_perspective_camera< T > &  p0,
const vpgl_perspective_camera< T > &  p1 
)

Changes the coordinate system of camera p1 such that the same change would transform K[I|0] to p0.

Definition at line 356 of file vpgl_perspective_camera.txx.

template<class T >
double vpgl_persp_cam_distance ( const vpgl_perspective_camera< T > &  cam1,
const vpgl_perspective_camera< T > &  cam2 
)

Definition at line 565 of file vpgl_perspective_camera.txx.

template<class T >
bool vpgl_perspective_decomposition ( const vnl_matrix_fixed< T, 3, 4 > &  camera_matrix,
vpgl_perspective_camera< T > &  p_camera 
)

Decompose camera into parameter blocks.

Attempts to decompose a 3x4 camera matrix into the parameter blocks that describe a perspective camera, but will only work if the supplied matrix has a left 3x3 submatrix with rank 3.

Definition at line 267 of file vpgl_perspective_camera.txx.

template<class Type >
void vrml_write ( vcl_ostream &  str,
vpgl_perspective_camera< Type > const &  p,
double  rad 
)

Write vpgl_perspective_camera to a vrml file, does not write a vrml header, only the camera, the camera center sphere has radius rad.

Definition at line 470 of file vpgl_perspective_camera.txx.