File equirectangular_camera_cal.h#

namespace sym

Typedefs

using EquirectangularCameraCald = EquirectangularCameraCal<double>#
using EquirectangularCameraCalf = EquirectangularCameraCal<float>#
template<typename ScalarType>
class EquirectangularCameraCal#
#include <equirectangular_camera_cal.h>

Autogenerated C++ implementation of symforce.cam.equirectangular_camera_cal.EquirectangularCameraCal.

Equirectangular camera model with parameters [fx, fy, cx, cy].

(fx, fy) representing focal length; (cx, cy) representing principal point.

Public Types

using Scalar = ScalarType#
using Self = EquirectangularCameraCal<Scalar>#
using DataVec = Eigen::Matrix<Scalar, 4, 1>#

Public Functions

inline EquirectangularCameraCal(const Eigen::Matrix<Scalar, 2, 1> &focal_length, const Eigen::Matrix<Scalar, 2, 1> &principal_point)#
inline explicit EquirectangularCameraCal(const DataVec &data)#
inline const DataVec &Data() const#
inline void ToStorage(Scalar *const vec) const#
Eigen::Matrix<Scalar, 2, 1> FocalLength() const#

Return the focal length.

Eigen::Matrix<Scalar, 2, 1> PrincipalPoint() const#

Return the principal point.

Eigen::Matrix<Scalar, 2, 1> PixelFromCameraPoint(const Eigen::Matrix<Scalar, 3, 1> &point, const Scalar epsilon, Scalar *const is_valid = nullptr) const#

Project a 3D point in the camera frame into 2D pixel coordinates.

Returns: pixel: (x, y) coordinate in pixels if valid is_valid: 1 if the operation is within bounds else 0

Eigen::Matrix<Scalar, 2, 1> PixelFromCameraPointWithJacobians(const Eigen::Matrix<Scalar, 3, 1> &point, const Scalar epsilon, Scalar *const is_valid = nullptr, Eigen::Matrix<Scalar, 2, 4> *const pixel_D_cal = nullptr, Eigen::Matrix<Scalar, 2, 3> *const pixel_D_point = nullptr) const#

Project a 3D point in the camera frame into 2D pixel coordinates.

Returns: pixel: (x, y) coordinate in pixels if valid is_valid: 1 if the operation is within bounds else 0 pixel_D_cal: Derivative of pixel with respect to intrinsic calibration parameters pixel_D_point: Derivative of pixel with respect to point

Eigen::Matrix<Scalar, 3, 1> CameraRayFromPixel(const Eigen::Matrix<Scalar, 2, 1> &pixel, const Scalar epsilon, Scalar *const is_valid = nullptr) const#

Backproject a 2D pixel coordinate into a 3D ray in the camera frame.

Returns: camera_ray: The ray in the camera frame (NOT normalized) is_valid: 1 if the operation is within bounds else 0

Eigen::Matrix<Scalar, 3, 1> CameraRayFromPixelWithJacobians(const Eigen::Matrix<Scalar, 2, 1> &pixel, const Scalar epsilon, Scalar *const is_valid = nullptr, Eigen::Matrix<Scalar, 3, 4> *const point_D_cal = nullptr, Eigen::Matrix<Scalar, 3, 2> *const point_D_pixel = nullptr) const#

Backproject a 2D pixel coordinate into a 3D ray in the camera frame.

Returns: camera_ray: The ray in the camera frame (NOT normalized) is_valid: 1 if the operation is within bounds else 0 point_D_cal: Derivative of point with respect to intrinsic calibration parameters point_D_pixel: Derivation of point with respect to pixel

inline bool IsApprox(const Self &b, const Scalar tol) const#
template<typename ToScalar>
inline EquirectangularCameraCal<ToScalar> Cast() const#
inline bool operator==(const EquirectangularCameraCal &rhs) const#

Public Static Functions

static inline constexpr int32_t StorageDim()#
static inline EquirectangularCameraCal FromStorage(const Scalar *const vec)#

Protected Attributes

DataVec data_#