Class intrinsics_t

Class Documentation

class intrinsics_t

Camera intrinsic-parameter model.

This class stores focal length, principal point, and skew, and provides projection utilities.

Public Functions

inline intrinsics_t()

Default constructor initializes an empty intrinsics model.

inline explicit intrinsics_t(const Eigen::Matrix3d &matrix_)

Constructs an intrinsics model from a given 3x3 matrix.

Parameters:

matrix_ – Full camera calibration matrix in pixel units.

inline intrinsics_t(const double fx_, const double fy_, const double cx_, const double cy_)

Constructs an intrinsics model from an initializer list of parameters.

Parameters:
  • fx_ – Focal length along the image x-axis.

  • fy_ – Focal length along the image y-axis.

  • cx_ – Principal-point x coordinate.

  • cy_ – Principal-point y coordinate.

inline bool empty() const

Checks if the intrinsics model is empty (i.e., not set).

Returns:

true when no valid intrinsic parameters are stored.

inline intrinsics_t clone() const

Creates a copy of the current intrinsics model.

Returns:

Copy of this intrinsics object.

inline const Eigen::Matrix3d &matrix() const

Accesses the underlying 3x3 matrix of the intrinsics model.

Returns:

Reference to the internal 3x3 intrinsic calibration matrix.

inline double fx() const

Focal length in x

Returns:

Horizontal focal length in pixels.

inline double fy() const

Focal length in y

Returns:

Vertical focal length in pixels.

inline double cx() const

Principal point x

Returns:

Principal-point x coordinate in pixels.

inline double cy() const

Principal point y

Returns:

Principal-point y coordinate in pixels.

inline double skew() const

Skew factor

Returns:

Pixel skew coefficient between x and y axes.

inline std::tuple<double, double, double, double, double> get_parameters() const

Get all parameters as a tuple (fx, fy, skew, cx, cy)

Returns:

Tuple (fx, fy, skew, cx, cy) extracted from the matrix.

inline array2D_t get_image_size() const

Get the image size image (approximate) from the intrinsics.

Returns:

Approximate image size {width, height} derived from (cx, cy).

inline bool in_image(const array2D_t &point_) const

Check if a 2D point is within the image bounds defined by the intrinsics.

Parameters:

point_ – Pixel coordinate evaluated against image bounds.

Returns:

true when the pixel lies inside [0,width) x [0,height).

inline std::tuple<bool, array2D_t> project(const array3D_t &pointWorld_, slam_mer::pose_t worldToCamera_ = slam_mer::pose_t::Identity()) const

Projects a 3D world point onto the image plane.

The input point is transformed to camera coordinates with worldToCamera, then projected with the intrinsic parameters.

Parameters:
  • pointWorld_ – 3D point expressed in world coordinates.

  • worldToCamera_ – Pose transforming world coordinates into camera coordinates.

Returns:

Tuple with validity flag and projected pixel coordinates.

inline std::tuple<bool, slam_mer::point2d_t> project(const slam_mer::point3d_t &pointWorld_, slam_mer::pose_t worldToCamera_ = slam_mer::pose_t::Identity()) const

Projects a 3D world point onto the image plane.

This overload accepts point3d_t and returns point2d_t.

Parameters:
  • pointWorld_ – 3D point object expressed in world coordinates.

  • worldToCamera_ – Pose transforming world coordinates into camera coordinates.

Returns:

Tuple with validity flag and projected 2D point.

inline void print(std::string prefix_ = "") const

Prints the camera intrinsic parameters.

Parameters:

prefix_ – Prefix prepended to each printed output line.

Private Functions

inline void __check_not_empty() const

Throws if intrinsics have not been initialized.

Private Members

Eigen::Matrix3d _intrinsics

Intrinsic calibration matrix.

bool _isSet

Indicates whether intrinsics are initialized.