Calibration Library 1.0.0
A C++ library for camera calibration and vision-related geometric transformations
Loading...
Searching...
No Matches
calib::PinholeCamera< DistortionT > Class Template Referencefinal

Pinhole camera model with intrinsics and distortion correction. More...

#include <pinhole.h>

Collaboration diagram for calib::PinholeCamera< DistortionT >:

Public Types

using Scalar = typename DistortionT::Scalar
 Scalar type from distortion model.
 

Public Member Functions

 PinholeCamera ()=default
 Default constructor.
 
 PinholeCamera (const CameraMatrixT< Scalar > &matrix, const DistortionT &distortion_model)
 Construct camera with intrinsic matrix and distortion model.
 
template<typename Derived >
 PinholeCamera (const CameraMatrixT< Scalar > &matrix, const Eigen::MatrixBase< Derived > &coeffs)
 Construct camera with intrinsic matrix and distortion coefficients.
 
template<typename T >
auto apply_intrinsics (const Eigen::Matrix< T, 2, 1 > &pixel) const -> Eigen::Matrix< T, 2, 1 >
 Normalize pixel coordinates using intrinsic parameters.
 
template<typename T >
auto remove_intrinsics (const Eigen::Matrix< T, 2, 1 > &norm_xy) const -> Eigen::Matrix< T, 2, 1 >
 
template<typename T >
auto distort (const Eigen::Matrix< T, 2, 1 > &norm_xy) const -> Eigen::Matrix< T, 2, 1 >
 
template<typename T >
auto undistort (const Eigen::Matrix< T, 2, 1 > &distorted_xy) const -> Eigen::Matrix< T, 2, 1 >
 
template<typename T >
auto project (const Eigen::Matrix< T, 2, 1 > &norm_xy) const -> Eigen::Matrix< T, 2, 1 >
 
template<typename T >
auto project (const Eigen::Matrix< T, 3, 1 > &xyz) const -> Eigen::Matrix< T, 2, 1 >
 
template<typename T >
auto unproject (const Eigen::Matrix< T, 2, 1 > &pixel) const -> Eigen::Matrix< T, 2, 1 >
 

Public Attributes

CameraMatrixT< Scalarkmtx
 Intrinsic camera matrix parameters.
 
DistortionT distortion
 Distortion model instance.
 

Detailed Description

template<distortion_model DistortionT>
class calib::PinholeCamera< DistortionT >

Pinhole camera model with intrinsics and distortion correction.

This class represents a pinhole camera model combining intrinsic parameters (focal length, principal point, skew) with lens distortion correction. The distortion model is templated and must satisfy the distortion_model concept.

Template Parameters
DistortionTDistortion model type (must satisfy distortion_model concept)

Key features:

  • Unified pixel-to-world and world-to-pixel transformations
  • Template-based distortion model support
  • Automatic type deduction for scalar types
  • Efficient coordinate transformations

Definition at line 39 of file pinhole.h.

Member Typedef Documentation

◆ Scalar

template<distortion_model DistortionT>
using calib::PinholeCamera< DistortionT >::Scalar = typename DistortionT::Scalar

Scalar type from distortion model.

Definition at line 41 of file pinhole.h.

Constructor & Destructor Documentation

◆ PinholeCamera() [1/3]

template<distortion_model DistortionT>
calib::PinholeCamera< DistortionT >::PinholeCamera ( )
default

Default constructor.

◆ PinholeCamera() [2/3]

template<distortion_model DistortionT>
calib::PinholeCamera< DistortionT >::PinholeCamera ( const CameraMatrixT< Scalar > &  matrix,
const DistortionT &  distortion_model 
)
inline

Construct camera with intrinsic matrix and distortion model.

Parameters
matrixIntrinsic camera matrix
distortion_modelDistortion model instance

Definition at line 53 of file pinhole.h.

◆ PinholeCamera() [3/3]

template<distortion_model DistortionT>
template<typename Derived >
calib::PinholeCamera< DistortionT >::PinholeCamera ( const CameraMatrixT< Scalar > &  matrix,
const Eigen::MatrixBase< Derived > &  coeffs 
)
inline

Construct camera with intrinsic matrix and distortion coefficients.

Template Parameters
DerivedEigen matrix expression type
Parameters
matrixIntrinsic camera matrix
coeffsDistortion coefficients

Definition at line 63 of file pinhole.h.

Member Function Documentation

◆ apply_intrinsics()

template<distortion_model DistortionT>
template<typename T >
auto calib::PinholeCamera< DistortionT >::apply_intrinsics ( const Eigen::Matrix< T, 2, 1 > &  pixel) const -> Eigen::Matrix<T, 2, 1>
inline

Normalize pixel coordinates using intrinsic parameters.

Template Parameters
TScalar type for computation
Parameters
pixel2D pixel coordinate
Returns
Normalized 2D coordinate

Definition at line 74 of file pinhole.h.

◆ distort()

template<distortion_model DistortionT>
template<typename T >
auto calib::PinholeCamera< DistortionT >::distort ( const Eigen::Matrix< T, 2, 1 > &  norm_xy) const -> Eigen::Matrix<T, 2, 1>
inline

Definition at line 86 of file pinhole.h.

◆ project() [1/2]

template<distortion_model DistortionT>
template<typename T >
auto calib::PinholeCamera< DistortionT >::project ( const Eigen::Matrix< T, 2, 1 > &  norm_xy) const -> Eigen::Matrix<T, 2, 1>
inline

Definition at line 98 of file pinhole.h.

◆ project() [2/2]

template<distortion_model DistortionT>
template<typename T >
auto calib::PinholeCamera< DistortionT >::project ( const Eigen::Matrix< T, 3, 1 > &  xyz) const -> Eigen::Matrix<T, 2, 1>
inline

Definition at line 104 of file pinhole.h.

◆ remove_intrinsics()

template<distortion_model DistortionT>
template<typename T >
auto calib::PinholeCamera< DistortionT >::remove_intrinsics ( const Eigen::Matrix< T, 2, 1 > &  norm_xy) const -> Eigen::Matrix<T, 2, 1>
inline

Definition at line 80 of file pinhole.h.

◆ undistort()

template<distortion_model DistortionT>
template<typename T >
auto calib::PinholeCamera< DistortionT >::undistort ( const Eigen::Matrix< T, 2, 1 > &  distorted_xy) const -> Eigen::Matrix<T, 2, 1>
inline

Definition at line 92 of file pinhole.h.

◆ unproject()

template<distortion_model DistortionT>
template<typename T >
auto calib::PinholeCamera< DistortionT >::unproject ( const Eigen::Matrix< T, 2, 1 > &  pixel) const -> Eigen::Matrix<T, 2, 1>
inline

Definition at line 111 of file pinhole.h.

Member Data Documentation

◆ distortion

template<distortion_model DistortionT>
DistortionT calib::PinholeCamera< DistortionT >::distortion

Distortion model instance.

Definition at line 43 of file pinhole.h.

◆ kmtx

template<distortion_model DistortionT>
CameraMatrixT<Scalar> calib::PinholeCamera< DistortionT >::kmtx

Intrinsic camera matrix parameters.

Definition at line 42 of file pinhole.h.


The documentation for this class was generated from the following file: