Skip to content

Class libCalibGeom::CameraModelHalconDivision

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

Inherits from: public libCalibGeom::CameraModelCRT< CameraModelHalconDivision >

Constructors and destructors

CameraModelHalconDivision()

CameraModelHalconDivision()

Returns:

void

CameraModelHalconDivision()

CameraModelHalconDivision(ImageSize imageSize,ImageRegion validRegion = ImageRegion())

Returns:

void

Public member functions

distort()

booldistort(const T &u, const T &v, T &ud, T &vd, const T *params) const

Returns:

bool

project()

boolproject(const T &X, const T &Y, const T &Z, T &c, T &r, const T *params) const

Returns:

bool

unproject()

boolunproject(const T &u, const T &v, T &X, T &Y, T &Z, const T *params) const

Returns:

bool

project()

boolproject(const double X, const double Y, const double Z, double &u, double &v) const

Returns:

bool

unproject()

boolunproject(const double u, const double v, double &X, double &Y, double &Z) const

Returns:

bool

initialize()

boolinitialize(const std::vector< std::vector< Point3 >> &worldPoints, const std::vector< std::vector< Point2 >> &imagePoints, std::vector< Rotation > &Rc, std::vector< Translation > &Tc, const InitializationMethod method) override

Initializes the model from calibration observations.

Returns:

bool

getUndistortionMaps()

voidgetUndistortionMaps(Image< float > &mapU, Image< float > &mapV, Matrix< double, 3, 3 > &K) const override

Computes undistortion maps and the new camera matrix.

The returned maps define a source-image remap induced by a default virtual linear camera. For each output pixel, K maps the pixel to a point on the virtual camera plane at Z==1, which in turn defines the corresponding virtual camera ray. The maps contain the source-image lookup coordinates produced by projecting that ray through the camera model.

For central models this rectification is exact. For non-central models, a single depth-independent 2D remap is only an approximation, so the result should be interpreted as a convenient best-fit rectification.

Parameters:

mapUMap for u-coordinates.
mapVMap for v-coordinates.
KNew camera matrix.

Returns:

void

Public data members

Sx

const doubleSx

No documentation provided.

Sy

const doubleSy

No documentation provided.

parameters

CameraParametersparameters

No documentation provided.

Public Types

ParameterId

ParameterId

Values:

Focus = = 0
Kappa
Cx
Cy

Public Static Attributes

nParameters

constexpr intnParameters

No documentation provided.

Public Static Functions

name()

const std::stringname()

Returns:

const std::string

parameterNames()

const std::array< ParameterSpec, nParameters > &parameterNames()

Returns:

const std::array< ParameterSpec, nParameters > &