libCalib
C++ library documentation
libCalib::CameraModelEnhancedUnified Class Reference

#include <CameraModelEnhancedUnified.h>

+ Inheritance diagram for libCalib::CameraModelEnhancedUnified:

Public Types

enum  ParameterIdx {
  fIdx = 0 , arIdx , cxIdx , cyIdx ,
  alphaIdx , betaIdx
}
 

Public Member Functions

ParameterReference f ()
 
ParameterReference ar ()
 
ParameterReference cx ()
 
ParameterReference cy ()
 
ParameterReference alpha ()
 
ParameterReference beta ()
 
template<class Archive >
void serialize (Archive &ar)
 
- Public Member Functions inherited from libCalib::CameraModelCRT< CameraModelEnhancedUnified >
std::unique_ptr< ceres::CostFunction > newCostFunction (const Point2 &imagePoint) const override
 
double getVal (const std::string &name) const override
 
double getVal (const int idx) const override
 
double * getValsPtr () override
 
std::vector< double > getVals () const override
 
void setVals (const std::vector< double > &vals) override
 
bool setVal (const std::string name, const double val) override
 
bool setVal (const int idx, const double val) override
 
bool setState (const std::string name, const ParameterState state) override
 
ParameterState getState (const std::string name) override
 
std::vector< int > getConstantIds () const override
 
int getNParams () const override
 
const std::string getName () const override
 
std::vector< ParameterNamegetParameterNames () const override
 
bool projectPoint (const double X, const double Y, const double Z, double &u, double &v) const override
 
bool unprojectPoint (const double &u, const double &v, double &X, double &Y, double &Z) const override
 
virtual void getUndistortionMaps (Image< float > &mapU, Image< float > &mapV, Matrix< double, 3, 3 > &K) const override
 
virtual void getUnprojectionMaps (Image< float > &mapX, Image< float > &mapY) const override
 
std::string toString () const override
 
std::unique_ptr< CameraModelBaseclone () const override
 
virtual void initialize (const double f, const double ar, const double cx, const double cy, const double k1) override
 
virtual std::unique_ptr< ceres::CostFunction > regularizationFunction (const int nResiduals) const override
 
void serialize (Archive &ar)
 
 CameraModelBase (const ImageSize imageSize)
 
 CameraModelBase ()
 
- Public Member Functions inherited from libCalib::CameraModelBase
 CameraModelBase (const ImageSize imageSize)
 
template<class Archive >
void serialize (Archive &ar)
 

Static Public Member Functions

static const std::string name ()
 
static const std::array< ParameterName, nParameters > parameterNames ()
 
template<typename T >
static bool project (const T &X, const T &Y, const T &Z, T &u, T &v, const T *params)
 
template<typename T >
static bool unproject (const T &u, const T &v, T &X, T &Y, T &Z, const T *params)
 

Public Attributes

Parameters< nParameters > parameters
 
- Public Attributes inherited from libCalib::CameraModelBase
ImageSize imageSize
 

Static Public Attributes

static const int nParameters {6}
 

Detailed Description

NOTE: This Camera Model is currently experimental. It as not been extensively tested.

Enhanced Unified camera model.

Reduces to Mei and Rives's Unified Camera model with beta = 1.0

Khomutenko, Bogdan, Gaƫtan Garcia, and Philippe Martinet. "An enhanced unified camera model." IEEE Robotics and Automation Letters 1.1 (2015): 137-144.

Member Data Documentation

◆ parameters

Parameters<nParameters> libCalib::CameraModelEnhancedUnified::parameters
Initial value:
= Parameters<nParameters>(
parameterNames(), {1.0, 1.0, imageSize.width / 2.0 - 0.5,
imageSize.height / 2.0 - 0.5, 0.0, 1.0})