Class RadTanDistortion¶
Defined in File distortion-radtan.h
Inheritance Relationships¶
Base Type¶
public aslam::Cloneable< Distortion, RadTanDistortion >
(Template Class Cloneable)
Class Documentation¶
-
class
aslam
::
RadTanDistortion
: public aslam::Cloneable<Distortion, RadTanDistortion>¶ An implementation of the standard radial tangential distortion model for pinhole cameras.
Two radial (k1, k2) and tangential (p1, p2) parameters are used in this implementation. The ordering of the parameter vector is: k1 k2 p1 p2 NOTE: The inverse transformation (undistort) in this case is not available in closed form and so it is computed iteratively!
Constructors/destructors and operators
-
explicit
RadTanDistortion
(const Eigen::VectorXd &distortionParams)¶ RadTanDistortion Ctor.
- Parameters
[in] distortionParams
: Vector containing the distortion parameter. (dim=4: k1, k2, p1, p2)
-
RadTanDistortion
(const RadTanDistortion&) = default¶ Copy constructor for clone operation.
-
void
operator=
(const RadTanDistortion&) = delete¶
-
friend friend std::ostream & operator<< (std::ostream &out, const RadTanDistortion &distortion)
Convenience function to print the state using streams.
Distort methods: applies the distortion model to a point.
-
virtual void
distortUsingExternalCoefficients
(const Eigen::VectorXd *dist_coeffs, Eigen::Vector2d *point, Eigen::Matrix2d *out_jacobian) const¶ Apply distortion to a point in the normalized image plane using provided distortion coefficients.
External distortion coefficients can be specified using this function. (Ignores the internally stored parameters.
- Parameters
[in] dist_coeffs
: Vector containing the coefficients for the distortion model. NOTE: If nullptr, use internal distortion parameters.[inout] point
: The point in the normalized image plane. After the function, this point is distorted.[out] out_jacobian
: The Jacobian of the distortion function with respect to small changes in the input point. If NULL is passed, the Jacobian calculation is skipped.
-
virtual void
distortParameterJacobian
(const Eigen::VectorXd *dist_coeffs, const Eigen::Vector2d &point, Eigen::Matrix<double, 2, Eigen::Dynamic> *out_jacobian) const¶ Apply distortion to the point and provide the Jacobian of the distortion with respect to small changes in the distortion parameters.
- Parameters
[in] dist_coeffs
: Vector containing the coefficients for the distortion model. NOTE: If nullptr, use internal distortion parameters.[in] point
: The point in the normalized image plane.[out] out_jacobian
: The Jacobian of the distortion with respect to small changes in the distortion parameters.
Undistort methods: Removes the modeled distortion effects from a point.
-
virtual void
undistortUsingExternalCoefficients
(const Eigen::VectorXd &dist_coeffs, Eigen::Vector2d *point) const¶ Apply undistortion to recover a point in the normalized image plane using provided distortion coefficients.
External distortion coefficients can be specified using this function. Ignores the internally stored parameters.
- Parameters
[in] dist_coeffs
: Vector containing the coefficients for the distortion model.[inout] point
: The distorted point. After the function, this point is in the normalized image plane.
Methods to support unit testing.
-
static inline RadTanDistortion::UniquePtr
createTestDistortion
()¶ Create a test distortion object for unit testing.
-
static inline RadTanDistortion::UniquePtr
createZeroTestDistortion
()¶ Create a test distortion object for unit testing with null distortion.
Methods to set/get distortion parameters
-
virtual bool
distortionParametersValid
(const Eigen::VectorXd &dist_coeffs) const¶ Check the validity of distortion parameters.
- Return
If the distortion parameters are valid.
- Parameters
[in] dist_coeffs
: Vector containing the coefficients. Parameters will NOT be stored.
-
inline virtual int
getParameterSize
() const¶ Returns the number of parameters used in the distortion model.
NOTE: Use the constexpr function parameterCount if you know the exact distortion type.
-
virtual void
printParameters
(std::ostream &out, const std::string &text) const¶ Print the internal parameters of the distortion in a human-readable form Print to the ostream that is passed in.
The text is extra text used by the calling function to distinguish cameras.
-
static bool
areParametersValid
(const Eigen::VectorXd ¶meters)¶ Static function that checks whether the given intrinsic parameters are valid for this model.
-
static inline constexpr size_t
parameterCount
()¶ Returns the number of parameters used in this distortion model.
Public Types
Public Functions
-
ASLAM_POINTER_TYPEDEFS
(RadTanDistortion)¶
-
explicit