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

#include <CameraModelMatlab.h>

+ Inheritance diagram for libCalib::CameraModelMatlab:

Public Types

enum  ParameterIdx {
  fIdx = 0 , arIdx , cxIdx , cyIdx ,
  k1Idx , k2Idx , k3Idx , p1Idx ,
  p2Idx , skewIdx
}
 

Public Member Functions

ParameterReference f ()
 
ParameterReference ar ()
 
ParameterReference cx ()
 
ParameterReference cy ()
 
ParameterReference k1 ()
 
ParameterReference k2 ()
 
ParameterReference k3 ()
 
ParameterReference p1 ()
 
ParameterReference p2 ()
 
ParameterReference skew ()
 
template<class Archive >
void serialize (Archive &ar)
 
- Public Member Functions inherited from libCalib::CameraModelCRT< CameraModelMatlab >
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 distort (const T &x, const T &y, T &xd, T &yd, const T *params)
 
template<typename T >
static bool project (const T &X, const T &Y, const T &Z, T &c, T &r, 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 {10}
 

Detailed Description

Matlab version of the Brown-Conrady camera model.

The model is very close to a reduced 10-parameter OpenCV standard model. It's output has been verified in Matlab. Note that 1 has to be added to principle point coordinates when working in Matlab's 1-based indexing environment.

Member Data Documentation

◆ parameters

Parameters<nParameters> libCalib::CameraModelMatlab::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, 0.0, 0.0})