Camera Intrinsics

Experimental APIs for computing and estimating camera intrinsic parameters and for querying the pixel-mapping between sensor and projector pixels. These APIs reside in Zivid::Experimental::Calibration and may change without prior notice.

        %%{init: {'themeVariables': {'fontSize': '18px'}, 'flowchart': {'nodeSpacing': 30, 'rankSpacing': 35}}}%%
flowchart LR
  Camera
  Settings
  Settings2D
  Frame

  intrinsicsOp(["intrinsics()"])
  estimateOp(["estimateIntrinsics()"])
  pixelMappingOp(["pixelMapping()"])

  CameraIntrinsics
  PixelMapping

  Camera -.-> intrinsicsOp --> CameraIntrinsics
  Settings -.-> intrinsicsOp
  Settings2D -.-> intrinsicsOp
  Frame -.-> estimateOp --> CameraIntrinsics
  Camera -.-> pixelMappingOp --> PixelMapping
  Settings -.-> pixelMappingOp

  classDef zividClass fill:#4A8FA4,stroke:#34323D,color:#FFFFFF
  classDef api fill:#91D2C8,stroke:#4A8FA4,color:#000000
  class Camera,Settings,Settings2D,Frame,CameraIntrinsics,PixelMapping zividClass
  class intrinsicsOp,estimateOp,pixelMappingOp api
    

intrinsics

Returns the camera intrinsic parameters for a given camera and, optionally, capture settings. Three overloads are available: camera-only, camera plus Settings, and camera plus Settings2D.

CameraIntrinsics Zivid::Experimental::Calibration::intrinsics(const Camera &camera)

Intrinsic parameters of a given camera.

These intrinsic parameters are only appropriate for the resolution that the default 3D settings for the given camera provides. If planning to capture with settings other than the default 3D then use intrinsics(const Camera &camera, const Settings &settings) or intrinsics(const Camera &camera, const Settings2D &settings2d), or one can estimate the intrinsics from the frame after capture with estimateIntrinsics. Note! If there is a mismatch between 2D and 3D resolution then use intrinsics(const Camera &camera, const Settings2D &settings2d).

Parameters:

camera – Reference to camera instance.

Returns:

A CameraIntrinsics instance.

CameraIntrinsics Zivid::Experimental::Calibration::intrinsics(const Camera &camera, const Settings &settings)

Intrinsic parameters of a given camera and settings.

These intrinsic parameters take into account the expected resolution of the point clouds captured with these settings.

Note: This function returns intrinsics for a fixed temperature and aperture value. The only part of Settings currently used by this function is Settings::Sampling::Pixel and Settings::Processing::Resampling::Mode.

For a 2D+3D capture, the 2D color image and 3D point cloud may have different resolutions, depending on the pixel sampling and resampling settings used in the Settings and in the Settings::Color. This function returns intrinsics applicable for the 3D point cloud resolution. You can use intrinsics(const Camera &camera, const Settings2D &settings2d) with Settings::Color for 2D intrinsics.

Parameters:
  • camera – Reference to camera instance.

  • settings – Reference to settings instance.

Returns:

A CameraIntrinsics instance.

CameraIntrinsics Zivid::Experimental::Calibration::intrinsics(const Camera &camera, const Settings2D &settings2d)

Intrinsic parameters of a given camera and 2D settings.

These intrinsics will match the resolution of a 2D capture done using this camera with the provided Settings2D.

Parameters:
  • camera – Reference to camera instance.

  • settings2d – Reference to a 2D settings instance.

Returns:

A CameraIntrinsics instance.

class Calibrator

Public Static Functions

static CameraIntrinsics ^ Intrinsics (Zivid::NET::Camera ^ camera)

Intrinsic parameters of a given camera.

These intrinsic parameters are only appropriate for the resolution that the default 3D settings for the given camera provides. If planning to capture with settings other than the default 3D then use Experimental::Calibration::Calibrator::Intrinsics(Camera ^camera, Settings ^settings) or Experimental::Calibration::Calibrator::Intrinsics(Camera ^camera, Settings2D ^settings2d), or one can estimate the intrinsics from the frame after capture with . Note! If there is a mismatch between 2D and 3D resolution then use .

Parameters:

camera – Reference to camera instance.

Returns:

A CameraIntrinsics instance.

static CameraIntrinsics ^ Intrinsics (Zivid::NET::Camera ^ camera, Zivid::NET::Settings ^ settings)

Intrinsic parameters of a given camera and settings.

These intrinsic parameters take into account the expected resolution of the point clouds captured with these settings.

Note: This function returns intrinsics for a fixed temperature and aperture value. The only part of Settings currently used by this function is Settings::Sampling::Pixel and Settings::Processing::Resampling::Mode.

For a 2D+3D capture, the 2D color image and 3D point cloud may have different resolutions, depending on the pixel sampling and resampling settings used in the Settings and in the Settings::Color. This function returns intrinsics applicable for the 3D point cloud resolution. You can use Experimental::Calibration::Calibrator::Intrinsics(Camera ^camera, Settings2D ^settings2d) with Settings::Color for 2D intrinsics.

Parameters:
  • camera – Reference to camera instance.

  • settings – Reference to settings instance.

Returns:

A CameraIntrinsics instance.

static CameraIntrinsics ^ Intrinsics (Zivid::NET::Camera ^ camera, Zivid::NET::Settings2D ^ settings2d)

Intrinsic parameters of a given camera and 2D settings.

These intrinsics will match the resolution of a 2D capture done using this camera with the provided Settings2D.

Parameters:
  • camera – Reference to camera instance.

  • settings2d – Reference to a 2D settings instance.

Returns:

A CameraIntrinsics instance.

zivid.experimental.calibration.intrinsics(camera) — see zivid-python.

estimateIntrinsics

Estimates intrinsic parameters from a captured Frame without access to the camera object directly. Useful when only a saved frame is available.

CameraIntrinsics Zivid::Experimental::Calibration::estimateIntrinsics(const Frame &frame)

Estimate camera intrinsics for a given frame.

The estimated parameters may be used to project 3D point cloud onto the corresponding 2D image. This function is for advanced use cases. Otherwise, use intrinsics(const Camera &camera) or intrinsics(const Camera &camera, const Settings &settings).

For a 2D+3D capture, the 2D color image and 3D point cloud may have different resolutions, depending on the pixel sampling and resampling settings used in the Settings and in the Settings::Color. This function returns intrinsics applicable for the 3D point cloud resolution.

Parameters:

frame – Reference to frame instance.

Returns:

A CameraIntrinsics instance.

class Calibrator

Public Static Functions

static CameraIntrinsics ^ EstimateIntrinsics (Zivid::NET::Frame ^ frame)

Estimate camera intrinsics for a given frame.

The estimated parameters may be used to project 3D point cloud onto the corresponding 2D image. This function is for advanced use cases. Otherwise, use Experimental::Calibration::Calibrator::Intrinsics(Camera ^camera) or Experimental::Calibration::Calibrator::Intrinsics(Camera ^camera, Settings ^settings).

For a 2D+3D capture, the 2D color image and 3D point cloud may have different resolutions, depending on the pixel sampling and resampling settings used in the Settings and in the Settings::Color. This function returns intrinsics applicable for the 3D point cloud resolution.

Parameters:

frame – Reference to frame instance.

Returns:

A CameraIntrinsics instance.

zivid.experimental.calibration.estimate_intrinsics(frame) — see zivid-python.

pixelMapping

Returns the mapping between camera sensor pixels and projector pixels for a given camera and capture settings.

PixelMapping Zivid::Experimental::Calibration::pixelMapping(const Camera &camera, const Settings &settings)

Return mapping between 3D pixels and 2D pixels given camera and settings.

A Settings object contains specifications for capturing a 3D point cloud and (optionally) a 2D image. In the cases where the 2D image is of higher resolution than the 3D point cloud, it can be useful to know how the index/coordinate of a given 3D pixel maps to index/coordinate in the 2D image. This function provides that information via a PixelMapping object. For a given 3D index (row3d, col3d), the corresponding 2D index is:

row2d = row3d*rowStride + rowOffset
col2d = col3d*colStride + colOffset

Note that the offsets may be non-integers. This implies that there is no exact match between the 3D pixel coordinates and the 2D pixel coordinates. Rounding off the result will give the closest matching index in the 2D image.

In cases where the given Settings object specifies that 2D capture is disabled, this function returns the mapping from the point cloud to a hypothetical full-resolution 2D image. In cases where the given Settings object specifies a 2D image of lower resolution than the 3D point cloud, this function will throw an exception.

Parameters:
  • camera – Reference to camera instance.

  • settings – Reference to settings instance.

Returns:

A PixelMapping instance.

Pixel mapping is exposed through the C++ and Python APIs. See the C++ and C# API reference for the full reference.

CameraIntrinsics

The intrinsic parameters returned by intrinsics and estimateIntrinsics (camera matrix and distortion coefficients).

class CameraIntrinsics

Information about the intrinsic parameters of the camera (OpenCV model)

Public Functions

CameraIntrinsics()

Default constructor.

explicit CameraIntrinsics(const std::string &fileName)

Construct CameraIntrinsics by loading from file.

std::string serialize() const

Serialize to a string.

See also fromSerialized. The returned string is formatted in YAML, and is compatible with the contents of files saved using save.

template<typename ...Args>
inline explicit CameraIntrinsics(Args&&... args)

Constructor taking variadic number of arguments.

One or more descendant types can be provided. All types not provided will be set to their default value. The result is the same as default constructing CameraIntrinsics then invoking set(args).

The provided arguments must be descendants of CameraIntrinsics. These types can be provided:

template<typename ...Args>
inline void set(Args&&... args)

Set multiple arguments.

The method invokes set(arg) with each of the provided arguments.

The provided arguments must be descendants of CameraIntrinsics. These types can be provided:

template<typename ...Args>
inline CameraIntrinsics copyWith(Args&&... args) const

Returns a copy of this object with the given argument(s) set to the new value(s)

Creates a copy of this CameraIntrinsics object, then invokes set(args) on the copy, and finally returns the copy. This method does not modify the original object.

The provided arguments must be descendants of CameraIntrinsics. These types can be provided:

inline const CameraMatrix &cameraMatrix() const

Get CameraMatrix.

inline CameraMatrix &cameraMatrix()

Get CameraMatrix.

inline CameraIntrinsics &set(const CameraMatrix &value)

Set CameraMatrix.

inline CameraIntrinsics &set(const CameraMatrix::CX &value)

Set CameraMatrix::CX.

inline CameraIntrinsics &set(const CameraMatrix::CY &value)

Set CameraMatrix::CY.

inline CameraIntrinsics &set(const CameraMatrix::FX &value)

Set CameraMatrix::FX.

inline CameraIntrinsics &set(const CameraMatrix::FY &value)

Set CameraMatrix::FY.

inline const Distortion &distortion() const

Get Distortion.

inline Distortion &distortion()

Get Distortion.

inline CameraIntrinsics &set(const Distortion &value)

Set Distortion.

inline CameraIntrinsics &set(const Distortion::K1 &value)

Set Distortion::K1.

inline CameraIntrinsics &set(const Distortion::K2 &value)

Set Distortion::K2.

inline CameraIntrinsics &set(const Distortion::K3 &value)

Set Distortion::K3.

inline CameraIntrinsics &set(const Distortion::P1 &value)

Set Distortion::P1.

inline CameraIntrinsics &set(const Distortion::P2 &value)

Set Distortion::P2.

template<typename F>
inline void forEach(const F &f) const

Run the given function on each direct member with the value of the member as parameter.

template<typename F>
inline void forEach(const F &f)

Run the given function on each direct member with the value of the member as parameter.

bool operator==(const CameraIntrinsics &other) const

Equality operator.

bool operator!=(const CameraIntrinsics &other) const

Inequality operator.

std::string toString() const

Get the value as string.

void save(const std::string &fileName) const

Save to the given file.

void load(const std::string &fileName)

Load from the given file.

Public Static Functions

static CameraIntrinsics fromSerialized(const std::string &value)

Construct a new CameraIntrinsics instance from a previously serialized string.

See also serialize.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::group

The type of this node.

static constexpr const char *path = {""}

The full path for this value.

static constexpr const char *name = {"CameraIntrinsics"}

The name of this value.

static constexpr const char * description  {R"description(Information about the intrinsic parameters of the camera (OpenCV model))description"}

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const CameraIntrinsics &value)

Operator to send the value as string to a stream.

class CameraMatrix

The camera matrix K (=[fx,0,cx;0,fy,cy;0,0,1])

Public Functions

CameraMatrix()

Default constructor.

template<typename ...Args>
inline explicit CameraMatrix(Args&&... args)

Constructor taking variadic number of arguments.

One or more descendant types can be provided. All types not provided will be set to their default value. The result is the same as default constructing CameraMatrix then invoking set(args).

The provided arguments must be descendants of CameraMatrix. These types can be provided:

template<typename ...Args>
inline void set(Args&&... args)

Set multiple arguments.

The method invokes set(arg) with each of the provided arguments.

The provided arguments must be descendants of CameraMatrix. These types can be provided:

template<typename ...Args>
inline CameraMatrix copyWith(Args&&... args) const

Returns a copy of this object with the given argument(s) set to the new value(s)

Creates a copy of this CameraMatrix object, then invokes set(args) on the copy, and finally returns the copy. This method does not modify the original object.

The provided arguments must be descendants of CameraMatrix. These types can be provided:

inline const CX &cx() const

Get CX.

inline CX &cx()

Get CX.

inline CameraMatrix &set(const CX &value)

Set CX.

inline const CY &cy() const

Get CY.

inline CY &cy()

Get CY.

inline CameraMatrix &set(const CY &value)

Set CY.

inline const FX &fx() const

Get FX.

inline FX &fx()

Get FX.

inline CameraMatrix &set(const FX &value)

Set FX.

inline const FY &fy() const

Get FY.

inline FY &fy()

Get FY.

inline CameraMatrix &set(const FY &value)

Set FY.

template<typename F>
inline void forEach(const F &f) const

Run the given function on each direct member with the value of the member as parameter.

template<typename F>
inline void forEach(const F &f)

Run the given function on each direct member with the value of the member as parameter.

bool operator==(const CameraMatrix &other) const

Equality operator.

bool operator!=(const CameraMatrix &other) const

Inequality operator.

std::string toString() const

Get the value as string.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::group

The type of this node.

static constexpr const char *path = {"CameraMatrix"}

The full path for this value.

static constexpr const char *name = {"CameraMatrix"}

The name of this value.

static constexpr const char * description  {R"description(The camera matrix K (=[fx,0,cx;0,fy,cy;0,0,1]))description"}

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const CameraMatrix &value)

Operator to send the value as string to a stream.

class CX

x coordinate of the principal point

Public Types

using ValueType = double

The type of the underlying value.

Public Functions

CX() = default

Default constructor.

inline explicit constexpr CX(double value)

Constructor.

double value() const

Get the value.

std::string toString() const

Get the value as string.

inline bool operator==(const CX &other) const

Comparison operator.

inline bool operator!=(const CX &other) const

Comparison operator.

inline bool operator<(const CX &other) const

Comparison operator.

inline bool operator>(const CX &other) const

Comparison operator.

inline bool operator<=(const CX &other) const

Comparison operator.

inline bool operator>=(const CX &other) const

Comparison operator.

Public Static Functions

static inline constexpr Range<double> validRange()

The range of valid values for CX.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::leafValue

The type of this node.

static constexpr const char *path = {"CameraMatrix/CX"}

The full path for this value.

static constexpr const char *name = {"CX"}

The name of this value.

static constexpr const char * description  {R"description(x coordinate of the principal point)description"}

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const CX &value)

Operator to serialize the value to a stream.

class CY

y coordinate of the principal point

Public Types

using ValueType = double

The type of the underlying value.

Public Functions

CY() = default

Default constructor.

inline explicit constexpr CY(double value)

Constructor.

double value() const

Get the value.

std::string toString() const

Get the value as string.

inline bool operator==(const CY &other) const

Comparison operator.

inline bool operator!=(const CY &other) const

Comparison operator.

inline bool operator<(const CY &other) const

Comparison operator.

inline bool operator>(const CY &other) const

Comparison operator.

inline bool operator<=(const CY &other) const

Comparison operator.

inline bool operator>=(const CY &other) const

Comparison operator.

Public Static Functions

static inline constexpr Range<double> validRange()

The range of valid values for CY.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::leafValue

The type of this node.

static constexpr const char *path = {"CameraMatrix/CY"}

The full path for this value.

static constexpr const char *name = {"CY"}

The name of this value.

static constexpr const char * description  {R"description(y coordinate of the principal point)description"}

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const CY &value)

Operator to serialize the value to a stream.

class FX

Focal length in x.

Public Types

using ValueType = double

The type of the underlying value.

Public Functions

FX() = default

Default constructor.

inline explicit constexpr FX(double value)

Constructor.

double value() const

Get the value.

std::string toString() const

Get the value as string.

inline bool operator==(const FX &other) const

Comparison operator.

inline bool operator!=(const FX &other) const

Comparison operator.

inline bool operator<(const FX &other) const

Comparison operator.

inline bool operator>(const FX &other) const

Comparison operator.

inline bool operator<=(const FX &other) const

Comparison operator.

inline bool operator>=(const FX &other) const

Comparison operator.

Public Static Functions

static inline constexpr Range<double> validRange()

The range of valid values for FX.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::leafValue

The type of this node.

static constexpr const char *path = {"CameraMatrix/FX"}

The full path for this value.

static constexpr const char *name = {"FX"}

The name of this value.

static constexpr const char * description   = { R"description(Focal length in x)description" }

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const FX &value)

Operator to serialize the value to a stream.

class FY

Focal length in y.

Public Types

using ValueType = double

The type of the underlying value.

Public Functions

FY() = default

Default constructor.

inline explicit constexpr FY(double value)

Constructor.

double value() const

Get the value.

std::string toString() const

Get the value as string.

inline bool operator==(const FY &other) const

Comparison operator.

inline bool operator!=(const FY &other) const

Comparison operator.

inline bool operator<(const FY &other) const

Comparison operator.

inline bool operator>(const FY &other) const

Comparison operator.

inline bool operator<=(const FY &other) const

Comparison operator.

inline bool operator>=(const FY &other) const

Comparison operator.

Public Static Functions

static inline constexpr Range<double> validRange()

The range of valid values for FY.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::leafValue

The type of this node.

static constexpr const char *path = {"CameraMatrix/FY"}

The full path for this value.

static constexpr const char *name = {"FY"}

The name of this value.

static constexpr const char * description   = { R"description(Focal length in y)description" }

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const FY &value)

Operator to serialize the value to a stream.

class Distortion

The radial and tangential distortion parameters.

Public Functions

Distortion()

Default constructor.

template<typename ...Args>
inline explicit Distortion(Args&&... args)

Constructor taking variadic number of arguments.

One or more descendant types can be provided. All types not provided will be set to their default value. The result is the same as default constructing Distortion then invoking set(args).

The provided arguments must be descendants of Distortion. These types can be provided:

template<typename ...Args>
inline void set(Args&&... args)

Set multiple arguments.

The method invokes set(arg) with each of the provided arguments.

The provided arguments must be descendants of Distortion. These types can be provided:

template<typename ...Args>
inline Distortion copyWith(Args&&... args) const

Returns a copy of this object with the given argument(s) set to the new value(s)

Creates a copy of this Distortion object, then invokes set(args) on the copy, and finally returns the copy. This method does not modify the original object.

The provided arguments must be descendants of Distortion. These types can be provided:

inline const K1 &k1() const

Get K1.

inline K1 &k1()

Get K1.

inline Distortion &set(const K1 &value)

Set K1.

inline const K2 &k2() const

Get K2.

inline K2 &k2()

Get K2.

inline Distortion &set(const K2 &value)

Set K2.

inline const K3 &k3() const

Get K3.

inline K3 &k3()

Get K3.

inline Distortion &set(const K3 &value)

Set K3.

inline const P1 &p1() const

Get P1.

inline P1 &p1()

Get P1.

inline Distortion &set(const P1 &value)

Set P1.

inline const P2 &p2() const

Get P2.

inline P2 &p2()

Get P2.

inline Distortion &set(const P2 &value)

Set P2.

template<typename F>
inline void forEach(const F &f) const

Run the given function on each direct member with the value of the member as parameter.

template<typename F>
inline void forEach(const F &f)

Run the given function on each direct member with the value of the member as parameter.

bool operator==(const Distortion &other) const

Equality operator.

bool operator!=(const Distortion &other) const

Inequality operator.

std::string toString() const

Get the value as string.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::group

The type of this node.

static constexpr const char *path = {"Distortion"}

The full path for this value.

static constexpr const char *name = {"Distortion"}

The name of this value.

static constexpr const char * description  {R"description(The radial and tangentialdistortionparameters)description"}

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const Distortion &value)

Operator to send the value as string to a stream.

class K1

First radial distortion term.

Public Types

using ValueType = double

The type of the underlying value.

Public Functions

K1() = default

Default constructor.

inline explicit constexpr K1(double value)

Constructor.

double value() const

Get the value.

std::string toString() const

Get the value as string.

inline bool operator==(const K1 &other) const

Comparison operator.

inline bool operator!=(const K1 &other) const

Comparison operator.

inline bool operator<(const K1 &other) const

Comparison operator.

inline bool operator>(const K1 &other) const

Comparison operator.

inline bool operator<=(const K1 &other) const

Comparison operator.

inline bool operator>=(const K1 &other) const

Comparison operator.

Public Static Functions

static inline constexpr Range<double> validRange()

The range of valid values for K1.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::leafValue

The type of this node.

static constexpr const char *path = {"Distortion/K1"}

The full path for this value.

static constexpr const char *name = {"K1"}

The name of this value.

static constexpr const char * description   = { R"description(First radial distortion term)description" }

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const K1 &value)

Operator to serialize the value to a stream.

class K2

Second radial distortion term.

Public Types

using ValueType = double

The type of the underlying value.

Public Functions

K2() = default

Default constructor.

inline explicit constexpr K2(double value)

Constructor.

double value() const

Get the value.

std::string toString() const

Get the value as string.

inline bool operator==(const K2 &other) const

Comparison operator.

inline bool operator!=(const K2 &other) const

Comparison operator.

inline bool operator<(const K2 &other) const

Comparison operator.

inline bool operator>(const K2 &other) const

Comparison operator.

inline bool operator<=(const K2 &other) const

Comparison operator.

inline bool operator>=(const K2 &other) const

Comparison operator.

Public Static Functions

static inline constexpr Range<double> validRange()

The range of valid values for K2.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::leafValue

The type of this node.

static constexpr const char *path = {"Distortion/K2"}

The full path for this value.

static constexpr const char *name = {"K2"}

The name of this value.

static constexpr const char * description   = { R"description(Second radial distortion term)description" }

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const K2 &value)

Operator to serialize the value to a stream.

class K3

Third radial distortion term.

Public Types

using ValueType = double

The type of the underlying value.

Public Functions

K3() = default

Default constructor.

inline explicit constexpr K3(double value)

Constructor.

double value() const

Get the value.

std::string toString() const

Get the value as string.

inline bool operator==(const K3 &other) const

Comparison operator.

inline bool operator!=(const K3 &other) const

Comparison operator.

inline bool operator<(const K3 &other) const

Comparison operator.

inline bool operator>(const K3 &other) const

Comparison operator.

inline bool operator<=(const K3 &other) const

Comparison operator.

inline bool operator>=(const K3 &other) const

Comparison operator.

Public Static Functions

static inline constexpr Range<double> validRange()

The range of valid values for K3.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::leafValue

The type of this node.

static constexpr const char *path = {"Distortion/K3"}

The full path for this value.

static constexpr const char *name = {"K3"}

The name of this value.

static constexpr const char * description   = { R"description(Third radial distortion term)description" }

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const K3 &value)

Operator to serialize the value to a stream.

class P1

First tangential distortion term.

Public Types

using ValueType = double

The type of the underlying value.

Public Functions

P1() = default

Default constructor.

inline explicit constexpr P1(double value)

Constructor.

double value() const

Get the value.

std::string toString() const

Get the value as string.

inline bool operator==(const P1 &other) const

Comparison operator.

inline bool operator!=(const P1 &other) const

Comparison operator.

inline bool operator<(const P1 &other) const

Comparison operator.

inline bool operator>(const P1 &other) const

Comparison operator.

inline bool operator<=(const P1 &other) const

Comparison operator.

inline bool operator>=(const P1 &other) const

Comparison operator.

Public Static Functions

static inline constexpr Range<double> validRange()

The range of valid values for P1.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::leafValue

The type of this node.

static constexpr const char *path = {"Distortion/P1"}

The full path for this value.

static constexpr const char *name = {"P1"}

The name of this value.

static constexpr const char * description   = { R"description(First tangential distortion term)description" }

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const P1 &value)

Operator to serialize the value to a stream.

class P2

Second tangential distortion term.

Public Types

using ValueType = double

The type of the underlying value.

Public Functions

P2() = default

Default constructor.

inline explicit constexpr P2(double value)

Constructor.

double value() const

Get the value.

std::string toString() const

Get the value as string.

inline bool operator==(const P2 &other) const

Comparison operator.

inline bool operator!=(const P2 &other) const

Comparison operator.

inline bool operator<(const P2 &other) const

Comparison operator.

inline bool operator>(const P2 &other) const

Comparison operator.

inline bool operator<=(const P2 &other) const

Comparison operator.

inline bool operator>=(const P2 &other) const

Comparison operator.

Public Static Functions

static inline constexpr Range<double> validRange()

The range of valid values for P2.

Public Static Attributes

static constexpr DataModel::NodeType nodeType = DataModel::NodeType::leafValue

The type of this node.

static constexpr const char *path = {"Distortion/P2"}

The full path for this value.

static constexpr const char *name = {"P2"}

The name of this value.

static constexpr const char * description  {R"description(Second tangentialdistortionterm)description"}

The description for this value.

Friends

inline friend std::ostream &operator<<(std::ostream &stream, const P2 &value)

Operator to serialize the value to a stream.

struct CameraIntrinsics

Information about the intrinsic parameters of the camera (OpenCV model)

Public Functions

System::String ^ Serialize ()

Serialize to a string.

See also FromSerialized. The returned string is formatted in YAML, and is compatible with the contents of files saved using Save.

void Save (System::String ^ fileName)

Save to the given file.

void Load (System::String ^ fileName)

Load from the given file.

inline CameraIntrinsics()

Constructor.

CameraIntrinsics ^ CopyWith (CopyWithDelegate ^ delegate)

Create a clone (deep copy) of the current instance and invoke delegate on the clone.

Creates a clone (deep copy) of this object, then invokes the delegate function on the clone, and finally returns the clone. This method can be used to create a clone of an instance and then change one or more properties on the clone in one method call. The current instance is unchanged.

CameraIntrinsics ^ Clone ()

Create a clone (deep copy) of the current instance.

System::String ^ ToString () override

Get string representation of the object.

Public Static Attributes

static CameraIntrinsics(System::String ^ fileName) CameraIntrinsics FromSerialized )(System::String ^ value)

Construct CameraIntrinsics by loading from file.

Construct a new CameraIntrinsics instance from a previously serialized string

See also Serialize.

struct CameraMatrixGroup

The camera matrix K (=[fx,0,cx;0,fy,cy;0,0,1])

Public Functions

inline CameraMatrixGroup()

Constructor.

CameraMatrixGroup ^ CopyWith (CopyWithDelegate ^ delegate)

Create a clone (deep copy) of the current instance and invoke delegate on the clone.

Creates a clone (deep copy) of this object, then invokes the delegate function on the clone, and finally returns the clone. This method can be used to create a clone of an instance and then change one or more properties on the clone in one method call. The current instance is unchanged.

CameraMatrixGroup ^ Clone ()

Create a clone (deep copy) of the current instance.

System::String ^ ToString () override

Get string representation of the object.

Properties

double CX

x coordinate of the principal point

double CY

y coordinate of the principal point

double FX

Focal length in x.

double FY

Focal length in y.

struct DistortionGroup

The radial and tangential distortion parameters.

Public Functions

inline DistortionGroup()

Constructor.

DistortionGroup ^ CopyWith (CopyWithDelegate ^ delegate)

Create a clone (deep copy) of the current instance and invoke delegate on the clone.

Creates a clone (deep copy) of this object, then invokes the delegate function on the clone, and finally returns the clone. This method can be used to create a clone of an instance and then change one or more properties on the clone in one method call. The current instance is unchanged.

DistortionGroup ^ Clone ()

Create a clone (deep copy) of the current instance.

System::String ^ ToString () override

Get string representation of the object.

Properties

double K1

First radial distortion term.

double K2

Second radial distortion term.

double K3

Third radial distortion term.

double P1

First tangential distortion term.

double P2

Second tangential distortion term.

PixelMapping

The mapping returned by pixelMapping describing how camera sensor pixels relate to projector pixels.

class PixelMapping

Pixel mapping from subsampled to full resolution.

Required when mapping an index in a subsampled point cloud to e.g. a full resolution 2D image.

Public Functions

inline int rowStride() const

Row stride.

Use it as the increment in a loop when looping through full resolution along rows.

inline int colStride() const

Col stride.

Use it as the increment in a loop when looping through full resolution along columns.

inline float rowOffset() const

Offset in y, or row.

Initialize the row counter to this value.

inline float colOffset() const

Offset in x, or column.

Initialize the column counter to this value.

ZIVID_UTILS_EXPORT std::string toString () const

Get string representation.

ZIVID_UTILS_EXPORT bool operator== (const PixelMapping &rhs) const

Check for equality.

ZIVID_UTILS_EXPORT bool operator!= (const PixelMapping &rhs) const

Check for inequality.

The pixel mapping is exposed through the C++ and Python APIs. See the C++ and C# API reference for the full reference.

See also