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

#include <CameraModelHalconDivision.h>

+ Inheritance diagram for libCalib::CameraModelHalconDivision:

Public Types

enum  ParameterIdx { FocusIdx = 0 , KappaIdx , CxIdx , CyIdx }
 

Public Member Functions

template<typename T >
bool distort (const T &u, const T &v, T &ud, T &vd, const T *params) const
 
template<typename T >
bool project (const T &X, const T &Y, const T &Z, T &c, T &r, const T *params) const
 
template<typename T >
bool unproject (const T &u, const T &v, T &X, T &Y, T &Z, const T *params) const
 
void initialize (const double f, const double ar, const double cx, const double cy, const double k1) override
 
void getUndistortionMaps (Image< float > &mapU, Image< float > &mapV, Matrix< double, 3, 3 > &K) const override
 
ParameterReference Focus ()
 
ParameterReference Kappa ()
 
ParameterReference Cx ()
 
ParameterReference Cy ()
 
template<class Archive >
void serialize (Archive &ar)
 
- Public Member Functions inherited from libCalib::CameraModelCRT< CameraModelHalconDivision >
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 getUnprojectionMaps (Image< float > &mapX, Image< float > &mapY) const override
 
std::string toString () const override
 
std::unique_ptr< CameraModelBaseclone () const 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 ()
 

Public Attributes

const double Sx = 1e-6
 
const double Sy = 1e-6
 
Parameters< nParameters > parameters
 
- Public Attributes inherited from libCalib::CameraModelBase
ImageSize imageSize
 

Static Public Attributes

static const int nParameters {4}
 

Detailed Description

Halcon divison camera model for non-telecentric area-scan cameras. Note that Sx and Sy are fixed to 1e-6 (reasonable pixel size) as they cannot be estimated jointly with Focus. https://www.mvtec.com/doc/halcon/12/en/calibrate_cameras.html

Member Function Documentation

◆ getUndistortionMaps()

void libCalib::CameraModelHalconDivision::getUndistortionMaps ( Image< float > &  mapU,
Image< float > &  mapV,
Matrix< double, 3, 3 > &  K 
) const
overridevirtual

◆ initialize()

void libCalib::CameraModelHalconDivision::initialize ( const double  f,
const double  ar,
const double  cx,
const double  cy,
const double  k1 
)
overridevirtual

Member Data Documentation

◆ parameters

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