gtsam 4.2.0
gtsam
|
Calibration of a fisheye camera.
Uses same distortionmodel as OpenCV, with https://docs.opencv.org/master/db/d58/group__calib3d__fisheye.html 3D point in camera frame p = (x, y, z) Intrinsic coordinates: [x_i;y_i] = [x/z; y/z] Distorted coordinates: r² = (x_i)² + (y_i)² th = atan(r) th_d = th(1 + k1*th² + k2*th⁴ + k3*th⁶ + k4*th⁸) [x_d; y_d] = (th_d / r)*[x_i; y_i] Pixel coordinates: K = [fx s u0; 0 fy v0 ;0 0 1] [u; v; 1] = K*[x_d; y_d; 1]
Advanced Interface | |
class | boost::serialization::access |
Serialization function. | |
Testable | |
GTSAM_EXPORT friend std::ostream & | operator<< (std::ostream &os, const Cal3Fisheye &cal) |
Output stream operator. | |
void | print (const std::string &s="") const override |
print with optional string More... | |
bool | equals (const Cal3Fisheye &K, double tol=10e-9) const |
assert equality up to a tolerance | |
Standard Constructors | |
Cal3Fisheye ()=default | |
Default Constructor with only unit focal length. | |
Cal3Fisheye (const double fx, const double fy, const double s, const double u0, const double v0, const double k1, const double k2, const double k3, const double k4, double tol=1e-5) | |
~Cal3Fisheye () override | |
Advanced Constructors | |
Cal3Fisheye (const Vector9 &v) | |
Standard Interface | |
double | k1 () const |
First distortion coefficient. | |
double | k2 () const |
Second distortion coefficient. | |
double | k3 () const |
First tangential distortion coefficient. | |
double | k4 () const |
Second tangential distortion coefficient. | |
Vector4 | k () const |
return distortion parameter vector | |
Vector9 | vector () const |
Return all parameters as a vector. | |
Point2 | uncalibrate (const Point2 &p, OptionalJacobian< 2, 9 > Dcal=boost::none, OptionalJacobian< 2, 2 > Dp=boost::none) const |
convert intrinsic coordinates [x_i; y_i] to (distorted) image coordinates [u; v] More... | |
Point2 | calibrate (const Point2 &p, OptionalJacobian< 2, 9 > Dcal=boost::none, OptionalJacobian< 2, 2 > Dp=boost::none) const |
Convert (distorted) image coordinates [u;v] to intrinsic coordinates [x_i, y_i]. More... | |
static double | Scaling (double r) |
Helper function that calculates atan(r)/r. | |
Manifold | |
size_t | dim () const override |
Return dimensions of calibration manifold object. More... | |
Cal3Fisheye | retract (const Vector &d) const |
Given delta vector, update calibration. | |
Vector | localCoordinates (const Cal3Fisheye &T2) const |
Given a different calibration, calculate update to obtain it. | |
static size_t | Dim () |
Return dimensions of calibration manifold object. | |
Clone | |
virtual boost::shared_ptr< Cal3Fisheye > | clone () const |
Public Types | |
enum | { dimension = 9 } |
using | shared_ptr = boost::shared_ptr< Cal3Fisheye > |
![]() | |
enum | { dimension = 5 } |
using | shared_ptr = boost::shared_ptr< Cal3 > |
Additional Inherited Members | |
![]() | |
bool | equals (const Cal3 &K, double tol=10e-9) const |
Check if equal up to specified tolerance. | |
Cal3 ()=default | |
Create a default calibration that leaves coordinates unchanged. | |
Cal3 (double fx, double fy, double s, double u0, double v0) | |
constructor from doubles | |
Cal3 (const Vector5 &d) | |
constructor from vector | |
Cal3 (double fov, int w, int h) | |
Easy constructor, takes fov in degrees, asssumes zero skew, unit aspect. More... | |
virtual | ~Cal3 () |
Virtual destructor. | |
Cal3 (const std::string &path) | |
Load calibration parameters from calibration_info.txt file located in path directory. More... | |
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 More... | |
Matrix3 | inverse () const |
Return inverted calibration matrix inv(K) | |
![]() | |
static size_t | Dim () |
return DOF, dimensionality of tangent space | |
![]() | |
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 | |
Point2 gtsam::Cal3Fisheye::calibrate | ( | const Point2 & | p, |
OptionalJacobian< 2, 9 > | Dcal = boost::none , |
||
OptionalJacobian< 2, 2 > | Dp = boost::none |
||
) | const |
Convert (distorted) image coordinates [u;v] to intrinsic coordinates [x_i, y_i].
p | point in image coordinates |
Dcal | optional 2*9 Jacobian wrpt intrinsic parameters |
Dp | optional 2*2 Jacobian wrpt intrinsic coordinates (xi, yi) |
|
inlinevirtual |
|
inlineoverridevirtual |
Return dimensions of calibration manifold object.
Reimplemented from gtsam::Cal3.
|
overridevirtual |
print with optional string
Reimplemented from gtsam::Cal3.
Point2 gtsam::Cal3Fisheye::uncalibrate | ( | const Point2 & | p, |
OptionalJacobian< 2, 9 > | Dcal = boost::none , |
||
OptionalJacobian< 2, 2 > | Dp = boost::none |
||
) | const |
convert intrinsic coordinates [x_i; y_i] to (distorted) image coordinates [u; v]
p | point in intrinsic coordinates |
Dcal | optional 2*9 Jacobian wrpt intrinsic parameters |
Dp | optional 2*2 Jacobian wrpt intrinsic coordinates (xi, yi) |