Fawkes API  Fawkes Development Version
firevision::ProjectiveCam Class Reference

Abstract class for projective cameras. More...

#include <fvmodels/camera/projective_cam.h>

Inheritance diagram for firevision::ProjectiveCam:

Public Member Functions

 ProjectiveCam (const ProjectiveCam &pc)
 Copy Constructor. More...
 
virtual ~ProjectiveCam ()
 Destructor. More...
 
virtual ProjectiveCamset_location (const fawkes::HomTransform &loc)
 Sets a new location for the camera. More...
 
virtual ProjectiveCamset_location (float roll, float pitch, float yaw, float height, float x=0, float y=0)
 Sets a new location for the camera. More...
 
virtual fawkes::cart_coord_2d_t get_GPA_world_coord (const center_in_roi_t &img_p) const
 Returns a point in the world under the ground plane assumption. More...
 
virtual center_in_roi_t get_GPA_image_coord (const fawkes::cart_coord_2d_t &wld_p) const
 Returns an image point of a world point under the ground plane assumption. More...
 
virtual void print_info (const char *name=0, const char *col_sep=0, const char *row_sep=0) const
 Prints the matrix P. More...
 

Protected Member Functions

 ProjectiveCam (const Calibration &cal, const fawkes::HomTransform *loc=0)
 Constructor. More...
 
 ProjectiveCam (const Calibration &cal, float roll, float pitch, float yaw, float height, float x=0, float y=0)
 Constructor. More...
 
Calibration get_cal () const
 Calibration getter. More...
 
fawkes::Matrix get_p () const
 P matrix getter. More...
 
fawkes::Matrix get_GPA_p () const
 Returns the modified P matrix. More...
 

Detailed Description

Abstract class for projective cameras.

Author
Christof Rath

Definition at line 49 of file projective_cam.h.

Constructor & Destructor Documentation

firevision::ProjectiveCam::ProjectiveCam ( const ProjectiveCam pc)

Copy Constructor.

Parameters
pcthe ProjectiveCam to copy

Definition at line 111 of file projective_cam.cpp.

firevision::ProjectiveCam::~ProjectiveCam ( )
virtual

Destructor.

Definition at line 129 of file projective_cam.cpp.

firevision::ProjectiveCam::ProjectiveCam ( const Calibration cal,
const fawkes::HomTransform loc = 0 
)
protected

Constructor.

Parameters
calCalibration matrix of the camera
locLocation of the camera (= translation + rotation)

Definition at line 77 of file projective_cam.cpp.

References set_location().

firevision::ProjectiveCam::ProjectiveCam ( const Calibration cal,
float  roll,
float  pitch,
float  yaw,
float  height,
float  x = 0,
float  y = 0 
)
protected

Constructor.

Parameters
calCalibration matrix of the camera
rollof the camera
pitchof the camera
yawof the camera
heightof the camera
xof the camera (in front if yaw is zero)
yof the camera (left if yaw is zero)

Definition at line 96 of file projective_cam.cpp.

References set_location().

Member Function Documentation

Calibration firevision::ProjectiveCam::get_cal ( ) const
protected

Calibration getter.

Returns
the calibration matrix

Definition at line 242 of file projective_cam.cpp.

center_in_roi_t firevision::ProjectiveCam::get_GPA_image_coord ( const fawkes::cart_coord_2d_t wld_p) const
virtual

Returns an image point of a world point under the ground plane assumption.

Parameters
wld_pa point on the ground (x-meters, y-meters)
Returns
a point in the image (x-px, y-px)

Definition at line 219 of file projective_cam.cpp.

References fawkes::Vector::set(), firevision::center_in_roi_t::x, fawkes::cart_coord_2d_t::x, fawkes::Vector::x(), firevision::center_in_roi_t::y, fawkes::cart_coord_2d_t::y, fawkes::Vector::y(), and fawkes::Vector::z().

Matrix firevision::ProjectiveCam::get_GPA_p ( ) const
protected

Returns the modified P matrix.

With the ground plane assumption the third column can be ignored.

Returns
modified P matrix

Definition at line 262 of file projective_cam.cpp.

References fawkes::Matrix::get_submatrix(), and fawkes::Matrix::overlay().

fawkes::cart_coord_2d_t firevision::ProjectiveCam::get_GPA_world_coord ( const center_in_roi_t img_p) const
virtual

Returns a point in the world under the ground plane assumption.

Parameters
img_pa point in the image (x-px, y-px)
Returns
a point in the world (x-meters, y-meters)

Definition at line 196 of file projective_cam.cpp.

References firevision::center_in_roi_t::x, fawkes::Vector::x(), firevision::center_in_roi_t::y, fawkes::Vector::y(), and fawkes::Vector::z().

Referenced by firevision::BackProjectionPositionModel::calc().

Matrix firevision::ProjectiveCam::get_p ( ) const
protected

P matrix getter.

Returns
the P matrix

Definition at line 252 of file projective_cam.cpp.

void firevision::ProjectiveCam::print_info ( const char *  name = 0,
const char *  col_sep = 0,
const char *  row_sep = 0 
) const
virtual

Prints the matrix P.

Parameters
nameHeading of the output
col_sepa string used to separate columns (defaults to '\t')
row_sepa string used to separate rows (defaults to '\n')

Definition at line 277 of file projective_cam.cpp.

References fawkes::Matrix::print_info().

ProjectiveCam & firevision::ProjectiveCam::set_location ( const fawkes::HomTransform loc)
virtual

Sets a new location for the camera.

Parameters
locthe new location (remember the transformation from world frame into cam frame [rot_x(-pi/2)+rot_z(-pi/2)] before the rest of the transformation)
Returns
a reference to the camera

Definition at line 173 of file projective_cam.cpp.

References fawkes::HomTransform::get_matrix(), fawkes::Matrix::get_submatrix(), fawkes::Matrix::invert(), and fawkes::Matrix::overlay().

Referenced by firevision::BackProjectionPositionModel::calc(), ProjectiveCam(), and set_location().

ProjectiveCam & firevision::ProjectiveCam::set_location ( float  roll,
float  pitch,
float  yaw,
float  height,
float  x = 0,
float  y = 0 
)
virtual

Sets a new location for the camera.

Parameters
rollof the camera
pitchof the camera
heightof the camera
yawof the camera
xof the camera (in front if yaw is zero)
yof the camera (left if yaw is zero)
Returns
a reference to the camera

Definition at line 147 of file projective_cam.cpp.

References fawkes::HomTransform::rotate_x(), fawkes::HomTransform::rotate_y(), fawkes::HomTransform::rotate_z(), set_location(), and fawkes::HomTransform::trans().


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