KJB
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
kjb::Calibrated_camera Class Reference

#include <calibrated_camera.h>

Inheritance diagram for kjb::Calibrated_camera:
kjb::Perspective_camera kjb::Cloneable kjb::Readable kjb::Writeable

Public Member Functions

 Calibrated_camera (double near=10, double far=10000)
 
 Calibrated_camera (const Matrix &camera_matrix, Calibration_descriptor cal, double near=10, double far=10000)
 
 Calibrated_camera (const Self &other)
 
virtual Selfclone () const
 
virtual Selfoperator= (const Self &other)
 
void initialize (const Matrix &intrinsic, Matrix rotation, Vector translation)
 
void set_orientation (const Quaternion &orientation)
 Alias of set_angles_from_quaternion() More...
 
const Quaternionget_orientation () const
 
- Public Member Functions inherited from kjb::Perspective_camera
 Perspective_camera (double inear=10, double ifar=10000)
 
 Perspective_camera (double icentre_x, double icentre_y, double icentre_z, double ipitch, double iyaw, double iroll, double ifocal_length, double iprincipal_point_x, double iprincipal_point_y, double iskew, double iaspect_ratio, double world_scale=1.0, double inear=10, double ifar=10000)
 
 Perspective_camera (const kjb::Vector &icamera_centre, double ipitch, double iyaw, double iroll, double ifocal_length, double iprincipal_point_x, double iprincipal_point_y, double iskew, double iaspect_ratio, double world_scale=1.0, double inear=10, double ifar=10000)
 
 Perspective_camera (const char *fname)
 Reads a camera from an input file. More...
 
 Perspective_camera (std::istream &in)
 Reads a camera from an input stream. More...
 
 Perspective_camera (const Perspective_camera &pc)
 
virtual Perspective_cameraoperator= (const Perspective_camera &pc)
 
virtual void swap (Perspective_camera &other)
 
virtual ~Perspective_camera ()
 
virtual void read (std::istream &in)
 Reads this camera from an input stream. More...
 
virtual void read (const char *fname)
 Reads this camera from a file. More...
 
virtual void write (std::ostream &out) const
 Writes this camera to an output stream. More...
 
virtual void write (const char *fname) const
 Writes this camera to an output stream. More...
 
virtual void update_rendering_interface () const
 This funcation makes sure that the rendering interface is consistent with the camera parameters stored in this class. More...
 
double get_near () const
 get near plane z-distance from camera center (always positive) More...
 
void set_near (double near)
 
double get_far () const
 get farplane z-distance from camera center (always positive) More...
 
void set_far (double far)
 
Vector get_world_origin () const
 returns the world origin in camera coordinates More...
 
const kjb::Vectorget_camera_centre () const
 returns the camera centre More...
 
double get_camera_centre_x () const
 returns the x-coordinate of the camera centre More...
 
double get_camera_centre_y () const
 returns the y-coordinate of the camera centre More...
 
double get_camera_centre_z () const
 returns the y-coordinate of the camera centre More...
 
double get_pitch () const
 returns the pitch angle in radian More...
 
double get_yaw () const
 returns the yaw angle in radian More...
 
double get_roll () const
 returns the roll angle in radian More...
 
const Vectorget_rotation_angles () const
 returns the rotation angles [pitch, yaw, roll] More...
 
double get_focal_length () const
 returns the focal length More...
 
const kjb::Vectorget_principal_point () const
 returns the principal point More...
 
double get_principal_point (unsigned int index) const
 returns the coordinate of the principal point specified by the input index More...
 
double get_principal_point_x () const
 returns the x-coordinate of the principal point More...
 
double get_principal_point_y () const
 returns the y-coordinate of the principal point More...
 
double get_skew () const
 returns the skew in radian More...
 
double get_aspect_ratio () const
 returns the aspect ratio More...
 
double get_world_scale () const
 returns the world scale More...
 
void set_world_origin (const kjb::Vector &origin)
 This returns a 3X4 camera matrix, built from the intrinsic and extrinsic parameters. More...
 
virtual void set_camera_centre (const kjb::Vector &icentre)
 sets the camera centre More...
 
virtual void set_camera_centre (unsigned int index, double ivalue)
 sets the coordinate of the camera centre specified by the input index More...
 
virtual void set_camera_centre_x (double ix)
 sets the x-coordinate of the camera centre More...
 
virtual void set_camera_centre_y (double iy)
 sets the y-coordinate of the camera centre More...
 
virtual void set_camera_centre_z (double iz)
 sets the y-coordinate of the camera centre More...
 
virtual void set_pitch (double ipitch)
 sets the pitch angle in radian More...
 
virtual void set_yaw (double iyaw)
 sets the yaw angle in radian More...
 
virtual void set_roll (double iroll)
 sets the roll angle in radian More...
 
virtual void rotate_around_x_axis (double theta)
 rotates the camera around its x-axis More...
 
virtual void rotate_around_y_axis (double theta)
 rotates the camera around its x-axis More...
 
virtual void rotate_around_z_axis (double theta)
 rotates the camera around its x-axis More...
 
virtual void rotate_around_camera_axes (double thetax, double thetay, double thetaz)
 rotates the camera around its x,y,z axes in this order More...
 
virtual void set_rotation_angles (double ipitch, double iyaw, double iroll)
 sets pitch, yaw and roll for this camera, in radian More...
 
virtual void set_focal_length (double ifocal)
 sets the focal length More...
 
virtual void update_focal_with_scale (double ifocal)
 
virtual void set_principal_point (const kjb::Vector &ip)
 sets the principal point More...
 
virtual void set_principal_point (unsigned int index, double ip)
 sets the coordinate of the principal point specified by the input index More...
 
virtual void set_principal_point_x (double ix)
 sets the x-coordinate of the principal point More...
 
virtual void set_principal_point_y (double iy)
 sets the y-coordinate of the principal point More...
 
virtual void set_skew (double is)
 sets the skew angle More...
 
virtual void set_aspect_ratio (double iar)
 sets the aspect ratio More...
 
virtual void set_world_scale (double iscale)
 sets the world scale More...
 
virtual void set_look_at (double deyex, double deyey, double deyez, double dlookx, double dlooky, double dlookz, double dupx, double dupy, double dupz)
 sets the position and orientation with the semantics similar to gluLookAt More...
 
virtual void set_look_at (const kjb::Vector &eye, const kjb::Vector &look, const kjb::Vector &up)
 sets the position and orientation with the semantics similar to gluLookAt in a more convenient form More...
 
virtual void translate (double dx, double dy, double dz, unsigned int frame=FRAME_CAMERA_WORLD_COORDINATES)
 
virtual void prepare_for_rendering (bool clean_buffers) const
 
const Matrixget_modelview_matrix () const
 
const Matrixget_projection_matrix () const
 
Matrix get_gl_projection_matrix () const
 
void mult_projection_matrix () const
 
void mult_modelview_matrix () const
 
virtual
Parametric_camera_gl_interface
get_rendering_interface () const
 
void set_rotation_mode (kjb::Quaternion::Euler_mode imode)
 
virtual void set_angles_from_quaternion (const kjb::Quaternion &q)
 sets the rotation angles from an input quaternion More...
 
const kjb::Quaternionget_rotations_as_a_quaternion () const
 returns the rotations of this camera as a quaternion More...
 
const kjb::Quaternionget_orientation () const
 Alias of get_angles_as_a_quaternion() More...
 
void rotate_point_to_camera_frame (kjb::Vector &ipoint)
 Rotates the input point into the camera coordinate system. More...
 
void get_point_in_world_coordinates (const kjb::Vector &point_in_camera_coordinates, kjb::Vector &point_in_world_coordinates) const
 Given a point in camera coordinates, it converts it to world coordinates. More...
 
bool is_point_in_camera_frustum (const kjb::Vector &point_in_world_coordinates, double &x_, double &y_, unsigned int num_image_rows, unsigned int num_image_cols) const
 Given a point in world coordinates, it returns true if the point is in the viewing frustum, false otherwise. Notice that the OpenGL context will be set in this function, since it is needed for the computation. More...
 
void get_point_in_camera_coordinates (kjb::Vector &io_point) const
 Given a point in world coordinates, it converts it to camera coordinates. More...
 
void compute_new_euler_angles_on_rotations (double dpitch, double dyaw, double droll)
 
const Matrixget_camera_matrix () const
 
const Matrixbuild_camera_matrix () const
 
Vector to_camera_coordinates (const Vector &v) const
 
- Public Member Functions inherited from kjb::Cloneable
virtual ~Cloneable ()
 Deletes this Cloneable. More...
 
- Public Member Functions inherited from kjb::Readable
virtual ~Readable ()
 Deletes this Readable. More...
 
- Public Member Functions inherited from kjb::Writeable
virtual ~Writeable ()
 Deletes this Writeable. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from kjb::Readable
static const char * read_field_value (std::istream &in, const char *field_name, char *field_buf, size_t buf_len, char separator=':')
 Reads a line off in into a buffer and returns a pointer to the field value in the buffer. More...
 
static const char * read_field_value (std::istream &in, const char *field_name, char separator=':')
 Reads a line off in into an internal buffer and returns a pointer to the field value in the buffer. More...
 
- Protected Attributes inherited from kjb::Perspective_camera
Parametric_camera_gl_interface rendering_interface
 
bool intrinsic_dirty
 
bool extrinsic_dirty
 
bool cam_matrix_dirty
 
Matrix m_camera_matrix
 

Detailed Description

A perspective camera whose parameters are defined by a camera calibration matrix.

Author
Kyle Simek

Constructor & Destructor Documentation

kjb::Calibrated_camera::Calibrated_camera ( double  near = 10,
double  far = 10000 
)
inline
kjb::Calibrated_camera::Calibrated_camera ( const Matrix camera_matrix,
Calibration_descriptor  cal,
double  near = 10,
double  far = 10000 
)
inline
kjb::Calibrated_camera::Calibrated_camera ( const Self other)
inline

Member Function Documentation

virtual Self* kjb::Calibrated_camera::clone ( ) const
inlinevirtual

Virtual copy contructor

Reimplemented from kjb::Perspective_camera.

const Quaternion& kjb::Calibrated_camera::get_orientation ( ) const
inline
void kjb::Calibrated_camera::initialize ( const Matrix intrinsic,
Matrix  rotation,
Vector  translation 
)
inline
Precondition
intrinsic, rotation and translation are in "Standard" form, as defined in the documentation of kjb::standardize_camera_matrices.
virtual Self& kjb::Calibrated_camera::operator= ( const Self other)
inlinevirtual
void kjb::Calibrated_camera::set_orientation ( const Quaternion q)
inlinevirtual

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