GTSAM  4.0.2
C++ library for smoothing and mapping (SAM)
Public Types | Protected Attributes | List of all members
gtsam::Cal3_S2 Class Reference

The most common 5DOF 3D->2D calibration. More...

#include <Cal3_S2.h>

Inheritance diagram for gtsam::Cal3_S2:
Inheritance graph
[legend]
Collaboration diagram for gtsam::Cal3_S2:
Collaboration graph
[legend]

Public Types

enum  { dimension = 5 }
 
using shared_ptr = std::shared_ptr< Cal3_S2 >
 
enum  { dimension = 5 }
 

Protected Attributes

double fx_ = 1.0f
 
double fy_ = 1.0f
 focal length
 
double s_ = 0.0f
 skew
 
double u0_ = 0.0f
 
double v0_ = 0.0f
 principal point
 

Testable

bool equals (const Cal3 &K, double tol=10e-9) const
 Check if equal up to specified tolerance.
 

Standard Interface

double fx () const
 focal length x
 
double fy () const
 focal length y
 
double aspectRatio () const
 aspect ratio
 
double skew () const
 skew
 
double px () const
 image center in x
 
double py () const
 image center in y
 
Point2 principalPoint () const
 return the principal point
 
Vector5 vector () const
 vectorized form (column-wise)
 
virtual Matrix3 K () const
 return calibration matrix K
 
Matrix3 inverse () const
 Return inverted calibration matrix inv(K)
 
virtual size_t dim () const
 return DOF, dimensionality of tangent space
 

Standard Constructors

 Cal3_S2 ()=default
 Create a default calibration that leaves coordinates unchanged.
 
 Cal3_S2 (double fx, double fy, double s, double u0, double v0)
 constructor from doubles
 
 Cal3_S2 (const Vector5 &d)
 constructor from vector
 
 Cal3_S2 (double fov, int w, int h)
 
Point2 uncalibrate (const Point2 &p, OptionalJacobian< 2, 5 > Dcal={}, OptionalJacobian< 2, 2 > Dp={}) const
 
Point2 calibrate (const Point2 &p, OptionalJacobian< 2, 5 > Dcal={}, OptionalJacobian< 2, 2 > Dp={}) const
 
Vector3 calibrate (const Vector3 &p) const
 

Testable

void print (const std::string &s="Cal3_S2") const override
 print with optional string
 
bool equals (const Cal3_S2 &K, double tol=10e-9) const
 Check if equal up to specified tolerance.
 
Cal3_S2 between (const Cal3_S2 &q, OptionalJacobian< 5, 5 > H1={}, OptionalJacobian< 5, 5 > H2={}) const
 "Between", subtracts calibrations. between(p,q) == compose(inverse(p),q)
 
GTSAM_EXPORT friend std::ostream & operator<< (std::ostream &os, const Cal3_S2 &cal)
 Output stream operator.
 

Manifold

Cal3_S2 retract (const Vector &d) const
 Given 5-dim tangent vector, create new calibration.
 
Vector5 localCoordinates (const Cal3_S2 &T2) const
 Unretraction for the calibration.
 
static size_t Dim ()
 return DOF, dimensionality of tangent space
 

Detailed Description

The most common 5DOF 3D->2D calibration.

Constructor & Destructor Documentation

◆ Cal3_S2()

gtsam::Cal3_S2::Cal3_S2 ( double  fov,
int  w,
int  h 
)
inline

Easy constructor, takes fov in degrees, asssumes zero skew, unit aspect

Parameters
fovfield of view in degrees
wimage width
himage height

Member Function Documentation

◆ calibrate() [1/2]

Point2 gtsam::Cal3_S2::calibrate ( const Point2 p,
OptionalJacobian< 2, 5 >  Dcal = {},
OptionalJacobian< 2, 2 >  Dp = {} 
) const

Convert image coordinates uv to intrinsic coordinates xy

Parameters
ppoint in image coordinates
Dcaloptional 2*5 Jacobian wrpt Cal3 parameters
Dpoptional 2*2 Jacobian wrpt intrinsic coordinates
Returns
point in intrinsic coordinates

◆ calibrate() [2/2]

Vector3 gtsam::Cal3_S2::calibrate ( const Vector3 &  p) const

Convert homogeneous image coordinates to intrinsic coordinates

Parameters
ppoint in image coordinates
Returns
point in intrinsic coordinates

◆ uncalibrate()

Point2 gtsam::Cal3_S2::uncalibrate ( const Point2 p,
OptionalJacobian< 2, 5 >  Dcal = {},
OptionalJacobian< 2, 2 >  Dp = {} 
) const

Convert intrinsic coordinates xy to image coordinates uv, fixed derivaitves

Parameters
ppoint in intrinsic coordinates
Dcaloptional 2*5 Jacobian wrpt Cal3 parameters
Dpoptional 2*2 Jacobian wrpt intrinsic coordinates
Returns
point in image coordinates

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