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

#include <CameraModelDoubleSphere.h>

+ Inheritance diagram for libCalib::CameraModelDoubleSphere:

Public Types

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

Public Member Functions

ParameterReference f ()
 
ParameterReference ar ()
 
ParameterReference cx ()
 
ParameterReference cy ()
 
ParameterReference xi ()
 
ParameterReference alpha ()
 
template<class Archive >
void serialize (Archive &ar)
 
- Public Member Functions inherited from libCalib::CameraModelCRT< CameraModelDoubleSphere >
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.

Double Sphere camera model.

Usenko, Vladyslav, Nikolaus Demmel, and Daniel Cremers. "The double sphere camera model." 2018 International Conference on 3D Vision (3DV). IEEE, 2018.

Member Data Documentation

◆ parameters

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