FVVLib
1.0.0 beta 4

Interface to access camera calibration information from the capture cameras. More...
Public Member Functions  
virtual const char *  GetCameraName () const =0 
Get the camera name.  
virtual const float *  GetFocalLength () const =0 
2x1 focal length vector in x and ydirection, fx and fy (unit: pixel).  
virtual const float *  GetPrincipalPoint () const =0 
2x1 principal point vector, px and py (unit: pixel).  
virtual const float *  GetDistortion () const =0 
4x1 vector with the radial distortion coefficients of the lense, kc1, kc2, kc3 and kc4.  
virtual float  GetSkew () const =0 
The skew coefficient.  
virtual const float *  GetOpticalCenter () const =0 
3x1 vector with the camera centre or optical centre C in world coordinates.  
virtual const float *  GetCalibrationMatrix () const =0 
The 3x3 camera calibration matrix.  
virtual const float *  GetTransformationMatrix () const =0 
The 4x4 transformation matrix.  
virtual const float *  GetProjectionMatrix () const =0 
Get the 3x4 euclidean projection matrix.  
virtual  ~FVVCameraInfo () 
Interface to access camera calibration information from the capture cameras.
Please refer to Hartley and Zisserman, "Multiple View Geometry in Computer Vision", Second Edition, 2004 for a detailed description on camera models and the related terms.
Some useful information also here:
http://en.wikipedia.org/wiki/Pinhole_camera_model
http://www.vision.caltech.edu/bouguetj/calib_doc/htmls/parameters.html
virtual ~FVVCameraInfo  (  )  [virtual] 
const string & GetCameraName  (  )  const [pure virtual] 
Get the camera name.
const float * GetFocalLength  (  )  const [pure virtual] 
2x1 focal length vector in x and ydirection, fx and fy (unit: pixel).
An individual pixel of an imager is typically rectangular rather than square. fx is the product f * sx and fy is the product f * sy. f is thereby the physical focal length of the lense in millimeter, centimeter or meter. sx and sy are the size of individual imager elements in x and ydirection and are in the unit pixels per millimeter, centimeter or meter. Only the product fx and fy can be measured through the camera calibration process directly and not the individual f, sx or sy.
const float * GetPrincipalPoint  (  )  const [pure virtual] 
2x1 principal point vector, px and py (unit: pixel).
The principal point is where the principal axis meets the image plane. This point is on the centre of the camera coordinate system with an offset by f (focal length) in zdirection. We first derive the coordinates of the principal point in the image coordinate system, rather than in the camera coordinate system. This means the coordinates describe the offset of the intersection of the principal axis with the image plane relative to the image coordinate system. Any coordinate projected on the image plane in camera coordinates have to be offset by this values to get the image coordinates. Finally to derive pixel coordinates (px, py) we multiply the image coordinates (x, y) by sx and sy similar to the focal length. px = sx * x py = sy * y
const float * GetDistortion  (  )  const [pure virtual] 
4x1 vector with the radial distortion coefficients of the lense, kc1, kc2, kc3 and kc4.
Paramters for undoing nonlinear distortion. They should be directly usable with OpenCV's undistortion functions.
float GetSkew  (  )  const [pure virtual] 
The skew coefficient.
Describes the "skewness" of the CCD array with respect to the camera axis. Defines the angle between the x and y pixel axes. Is 0 for most normal cameras.
const float * GetOpticalCenter  (  )  const [pure virtual] 
3x1 vector with the camera centre or optical centre C in world coordinates.
Position of the camera center in the common world coordinate system and the centre of projection of the camera. The translation vector can be derived from this by t = RC, where R is the 3x3 rotation matrix representing the orientation of the camera coordinate frame.
const float * GetCalibrationMatrix  (  )  const [pure virtual] 
The 3x3 camera calibration matrix.
The internal camera parameters, such as focal length and aspect ratio are packed in this 3x3 matrix. K can be obtained from the projection matrix P through a simple decomposition. This matrix represents the mapping from camera to image coordinates. Projection matrix is represented as 9 element vector in rowmajor format:
{ [ K[0], K[1], K[2] ];
[ K[3], K[4], K[5] ];
[ K[6], K[7], K[8] ] }
const float * GetTransformationMatrix  (  )  const [pure virtual] 
The 4x4 transformation matrix.
External transformation matrix [Rt]. Represents the external camera parameters and the mapping from world to camera coordinates, i.e. relation between the world coordinate frame and the camera coordinate frame. Transformation matrix is represented as 16 element vector in rowmajor format:
{ [ T[0], T[1], T[2], T[3] ];
[ T[4], T[5], T[6], T[7] ];
[ T[8], T[9], T[10], T[11] ];
[ T[12], T[13], T[14], T[15] ] }
const float * GetProjectionMatrix  (  )  const [pure virtual] 
Get the 3x4 euclidean projection matrix.
Camera projection matrix P = K * [Rt]. Describes the projection of 3D scene space onto a 2D image plane. It is a 3x4 matrix that maps from homogeneous coordinates of a world point in 3space (object space) to homogeneous coordinates of the imaged point on the image plane. Has in general 11 degrees of freedom. The properties of the camera, such as its centre and focal length may be extracted from it. Projection matrix is represented as 12 element vector in rowmajor format:
{ [ P[0], P[1], P[2], P[3] ];
[ P[4], P[5], P[6], P[7] ];
[ P[8], P[9], T[10], P[11] ]; }