Zivid C++ API 2.17.1+7516d437-1
Zivid::Experimental::Toolbox Namespace Reference

Classes

class  BarcodeDetector
 Class for enabling the detection of barcodes. More...
class  BarcodeFormatFilter
 Filter type for defining which barcode formats to look for when reading barcodes. More...
class  LinearBarcodeDetectionResult
 Information about a detected linear (1D) barcode. More...
class  LocalPointCloudRegistrationResult
 The result of a call to localPointCloudRegistration() More...
class  MatrixBarcodeDetectionResult
 Information about a detected matrix (2D) barcode. More...

Typedefs

using LinearBarcodeFormatFilter = BarcodeFormatFilter<LinearBarcodeFormat>
 Filter type for defining which linear (1D) barcode formats to look for when reading barcodes.
using MatrixBarcodeFormatFilter = BarcodeFormatFilter<MatrixBarcodeFormat>
 Filter type for defining which matrix (2D) barcode formats to look for when reading barcodes.
using Pose = Zivid::Calibration::Pose

Enumerations

enum class  LinearBarcodeFormat : uint32_t {
  code128 = (1 << 0) , code93 = (1 << 1) , code39 = (1 << 2) , ean13 = (1 << 3) ,
  ean8 = (1 << 4) , upcA = (1 << 5) , upcE = (1 << 6)
}
 Enum describing the supported linear (1D) barcode formats. More...
enum class  MatrixBarcodeFormat : uint32_t { qrcode = (1 << 0) , dataMatrix = (1 << 1) }
 Enum describing the supported matrix (2D) barcode formats. More...

Functions

ZIVID_CORE_EXPORT std::ostream & operator<< (std::ostream &stream, const LinearBarcodeDetectionResult &result)
 Serialize the value to a stream.
ZIVID_CORE_EXPORT std::ostream & operator<< (std::ostream &stream, const MatrixBarcodeDetectionResult &result)
 Serialize the value to a stream.
ZIVID_CORE_EXPORT std::ostream & operator<< (std::ostream &stream, const BarcodeDetector &barcodeDetector)
 Serialize the value to a stream.
ZIVID_CORE_EXPORT std::string toString (LinearBarcodeFormat format)
 Get string representation of a barcode format.
ZIVID_CORE_EXPORT std::string toString (MatrixBarcodeFormat format)
 Get string representation of a barcode format.
template<typename FormatEnum>
constexpr BarcodeFormatFilter< FormatEnum > operator| (FormatEnum lhs, FormatEnum rhs)
template<typename FormatEnum>
constexpr BarcodeFormatFilter< FormatEnum > operator| (FormatEnum lhs, BarcodeFormatFilter< FormatEnum > rhs)
ZIVID_CORE_EXPORT std::ostream & operator<< (std::ostream &stream, const LocalPointCloudRegistrationResult &result)
 Serialize the value to a stream.
ZIVID_CORE_EXPORT LocalPointCloudRegistrationResult localPointCloudRegistration (const UnorganizedPointCloud &target, const UnorganizedPointCloud &source, const LocalPointCloudRegistrationParameters &params, const Pose &initialTransform=Pose{ Matrix4x4::identity() })
 Compute alignment transform between two point clouds.

Typedef Documentation

◆ LinearBarcodeFormatFilter

Filter type for defining which linear (1D) barcode formats to look for when reading barcodes.

When calling functions that has an argument of this type, one can specify the filter with single or multiple values of LinearBarcodeFormat. Examples:

◆ MatrixBarcodeFormatFilter

Filter type for defining which matrix (2D) barcode formats to look for when reading barcodes.

When calling functions that has an argument of this type, one can specify the filter with single or multiple values of MatrixBarcodeFormat. Examples:

◆ Pose

Enumeration Type Documentation

◆ LinearBarcodeFormat

Enum describing the supported linear (1D) barcode formats.

This enum is used for two things:

Enumerator
code128 
code93 
code39 
ean13 
ean8 
upcA 
upcE 

◆ MatrixBarcodeFormat

Enum describing the supported matrix (2D) barcode formats.

This enum is used for two things:

Enumerator
qrcode 
dataMatrix 

Function Documentation

◆ localPointCloudRegistration()

ZIVID_CORE_EXPORT LocalPointCloudRegistrationResult Zivid::Experimental::Toolbox::localPointCloudRegistration ( const UnorganizedPointCloud & target,
const UnorganizedPointCloud & source,
const LocalPointCloudRegistrationParameters & params,
const Pose & initialTransform = PoseMatrix4x4::identity() } )

Compute alignment transform between two point clouds.

Given a source point cloud and a target point cloud, this function attempts to compute the transform that must be applied to the source in order to align it with the target. This can be used to create a "stitched" unorganized point cloud of an object by combining data collected from different camera angles.

This function takes an argument initialTransform which is used as a starting-point for the computation of the transform that best aligns source with target. This initial guess is usually found from e.g. reference markers or robot capture pose, and this function is then used to refine the alignment. If the overlap of source and target is already quite good, one can pass the identity matrix as initialTransform.

The returned transform represents the total transform needed to align source with target, i.e. it includes both initialTransform and the refinement found by the algorithm.

Performance is very dependent on the number of points in either point cloud. To improve performance, voxel downsample one or both point clouds before passing them into this function. The resulting alignment transform can then be applied to the non-downsampled point clouds to still obtain a dense result.

Performance is also very dependent on MaxCorrespondenceDistance. To improve performance, try reducing this value. However, keep the value larger than the typical point-to-point distance in the point clouds, and larger than the expected translation error in the initial guess.

Parameters
targetThe point cloud to align with
sourceThe point cloud to be aligned with target
paramsParameters for the registration process and its convergence criteria
initialTransformInitial guess applied to source point cloud before refinement
Returns
Instance of LocalPointCloudRegistrationResult

◆ operator<<() [1/4]

ZIVID_CORE_EXPORT std::ostream & Zivid::Experimental::Toolbox::operator<< ( std::ostream & stream,
const BarcodeDetector & barcodeDetector )

Serialize the value to a stream.

◆ operator<<() [2/4]

ZIVID_CORE_EXPORT std::ostream & Zivid::Experimental::Toolbox::operator<< ( std::ostream & stream,
const LinearBarcodeDetectionResult & result )

Serialize the value to a stream.

◆ operator<<() [3/4]

ZIVID_CORE_EXPORT std::ostream & Zivid::Experimental::Toolbox::operator<< ( std::ostream & stream,
const LocalPointCloudRegistrationResult & result )

Serialize the value to a stream.

◆ operator<<() [4/4]

ZIVID_CORE_EXPORT std::ostream & Zivid::Experimental::Toolbox::operator<< ( std::ostream & stream,
const MatrixBarcodeDetectionResult & result )

Serialize the value to a stream.

◆ operator|() [1/2]

template<typename FormatEnum>
BarcodeFormatFilter< FormatEnum > Zivid::Experimental::Toolbox::operator| ( FormatEnum lhs,
BarcodeFormatFilter< FormatEnum > rhs )
constexpr

◆ operator|() [2/2]

template<typename FormatEnum>
BarcodeFormatFilter< FormatEnum > Zivid::Experimental::Toolbox::operator| ( FormatEnum lhs,
FormatEnum rhs )
constexpr

◆ toString() [1/2]

ZIVID_CORE_EXPORT std::string Zivid::Experimental::Toolbox::toString ( LinearBarcodeFormat format)

Get string representation of a barcode format.

Returns
LinearBarcodeFormat as a string

◆ toString() [2/2]

ZIVID_CORE_EXPORT std::string Zivid::Experimental::Toolbox::toString ( MatrixBarcodeFormat format)

Get string representation of a barcode format.

Returns
MatrixBarcodeFormat as a string