File linear_camera_cal.h¶
- 
namespace sym
 Typedefs
- 
using LinearCameraCald = LinearCameraCal<double>¶
 
- 
using LinearCameraCalf = LinearCameraCal<float>¶
 
- 
template<typename ScalarType>
class LinearCameraCal - #include <linear_camera_cal.h>
Autogenerated C++ implementation of
symforce.cam.linear_camera_cal.LinearCameraCal.Standard pinhole camera w/ four parameters [fx, fy, cx, cy].
(fx, fy) representing focal length; (cx, cy) representing principal point.
Public Types
- 
using Scalar = ScalarType
 
- 
using Self = LinearCameraCal<Scalar>
 
- 
using DataVec = Eigen::Matrix<Scalar, 4, 1, Eigen::DontAlign>
 
Public Functions
- 
inline LinearCameraCal(const Eigen::Matrix<Scalar, 2, 1> &focal_length, const Eigen::Matrix<Scalar, 2, 1> &principal_point)
 
- 
inline explicit LinearCameraCal(const DataVec &data, bool normalize = true)
 Construct from data vec
- Parameters:
 normalize – Project to the manifold on construction. This ensures numerical stability as this constructor is called after each codegen operation. Constructing from a normalized vector may be faster, e.g. with
FromStorage.
- 
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
- 
template<typename ToScalar>
inline LinearCameraCal<ToScalar> Cast() const 
- 
inline bool operator==(const LinearCameraCal &rhs) const
 
- 
inline bool operator!=(const LinearCameraCal &rhs) const
 
Public Static Functions
- 
static inline constexpr int32_t StorageDim()
 
- 
static inline LinearCameraCal FromStorage(const Scalar *const vec)
 
 - 
using Scalar = ScalarType
 
- 
using LinearCameraCald = LinearCameraCal<double>¶