3#include "../../_cexports/c_metric.h"
5#include "decl_metric_aqs12_calibration_piece.hpp"
20 inline HandleGuard<Foundation::Metric::CalibrationConfiguration>::HandleGuard(
void *handle) noexcept
21 : HandleGuard<Foundation::Metric::CalibrationConfiguration>(
22 handle, [](
void *handle) { CVB_CALL_CAPI(
ReleaseObject(handle)); })
40 class CalibrationConfiguration final
82 None = CExports::CVMETM_None,
102 HandleGuard<CalibrationConfiguration> handle_;
117 auto calConfig = Internal::DoResCallObjectOut<CalibrationConfiguration>([&](
void *&handle) {
118 return CVB_CALL_CAPI(CVMAQS12CreateInstrinsicCalConfig(
125 calConfig->SetEstimateEncoderStep(
true);
141 auto calConfig = Internal::DoResCallObjectOut<CalibrationConfiguration>([&](
void *&handle) {
142 return CVB_CALL_CAPI(
143 CVMAQS12CreateExtrinsicCalConfig(
reinterpret_cast<const CExports::CVC3DPointD *
>(aqs12.
Points().data()),
149 calConfig->SetEstimateEncoderStep(
true);
159 CExports::CVC3DPointD points[12] = {0};
160 double topBasePlaneDistance = 0.0;
162 CVMAQS12CalConfigGetPointsAndTopBasePlaneDistance(handle_.Handle(), points, topBasePlaneDistance));
165 auto from =
reinterpret_cast<const CExports::CVC3DVector *
>(points);
168 return AQS12Piece(pointsAqs12, topBasePlaneDistance);
181 CVMAQS12CalConfigSetCalculateHomography(handle_.Handle(),
static_cast<CExports::cvbbool_t
>(flag)));
190 return Internal::DoResCallValueOut<CExports::cvbbool_t>([&](CExports::cvbbool_t &flag) {
191 return CVB_CALL_CAPI(CVMAQS12CalConfigGetCalculateHomography(handle_.Handle(), flag));
239 Internal::DoResCall([&]() {
240 return CVB_CALL_CAPI(CVMAQS12CalConfigSetExtrinsicTransformationModel(
241 handle_.Handle(),
static_cast<CExports::CVMExtrinsicTransformationModel
>(model)));
251 CExports::CVMExtrinsicTransformationModel model = CExports::CVMETM_None;
252 Internal::DoResCall([&]() {
253 return CVB_CALL_CAPI(CVMAQS12CalConfigGetExtrinsicTransformationModel(handle_.Handle(), model));
273 Internal::DoResCall([&]() {
274 return CVB_CALL_CAPI(
275 CVMAQS12CalConfigSetCalculateEncoderStep(handle_.Handle(),
static_cast<CExports::cvbbool_t
>(flag)));
285 CExports::cvbbool_t flag =
static_cast<CExports::cvbbool_t
>(
true);
287 [&]() {
return CVB_CALL_CAPI(CVMAQS12CalConfigGetCalculateEncoderStep(handle_.Handle(), flag)); });
289 return static_cast<bool>(flag);
306 return std::make_unique<CalibrationConfiguration>(
std::move(guard), PrivateTag{});
315 return handle_.Handle();
40 class CalibrationConfiguration final {
…};
326 using namespace Metric;
Object to collect all input parameters for the AQS12 calibration piece.
Definition decl_metric_aqs12_calibration_piece.hpp:22
double TopBasePlaneDistance() const noexcept
Gets the distance between the top and base plane.
Definition decl_metric_aqs12_calibration_piece.hpp:50
const std::array< Point3D< double >, 12 > & Points() const noexcept
Gets array with AQS12 points.
Definition decl_metric_aqs12_calibration_piece.hpp:40
Calibration configuration object.
Definition decl_metric_calibration_configuration.hpp:41
ExtrinsicCalibrationModel
Enum for extrinsic calibration model.
Definition decl_metric_calibration_configuration.hpp:80
@ SpecificTransformationParameters
Transformation parameters like rotation, scale and shear are estimated (recommended).
Definition decl_metric_calibration_configuration.hpp:93
@ AffineMatrix
Elements of affine matrix m11,..., m33 are estimated.
Definition decl_metric_calibration_configuration.hpp:87
@ None
Extrinsic transformation will not be estimated.
Definition decl_metric_calibration_configuration.hpp:82
bool IsCorrectionOfLaserPlaneInclinationCalculated() const noexcept
Gets the flag for the calculation of the correction for the laser plane inclination.
Definition decl_metric_calibration_configuration.hpp:225
AQS12Piece Aqs12Piece() const noexcept
Gets the AQS12 piece.
Definition decl_metric_calibration_configuration.hpp:157
bool IsEncoderStepEstimated() const noexcept
Gets the flag for the estimation of the encoder step (scale in Y).
Definition decl_metric_calibration_configuration.hpp:283
bool IsHomographyCalculated() const noexcept
Gets the calculate homography flag.
Definition decl_metric_calibration_configuration.hpp:188
static std::unique_ptr< CalibrationConfiguration > Create(const AQS12Piece &aqs12)
Creates a calibration configuration object.
Definition decl_metric_calibration_configuration.hpp:115
void SetCorrectionOfLaserPlaneInclinationCalculated(bool flag) noexcept
Sets the flag for the calculation of the correction for the laser plane inclination.
Definition decl_metric_calibration_configuration.hpp:208
static std::unique_ptr< CalibrationConfiguration > FromHandle(HandleGuard< CalibrationConfiguration > &&guard)
Creates a calibration configuration object from a classic API handle.
Definition decl_metric_calibration_configuration.hpp:301
ExtrinsicCalibrationModel GetExtrinsicCalibrationModel() const noexcept
Gets the extrinsic calibration model.
Definition decl_metric_calibration_configuration.hpp:249
void SetEstimateEncoderStep(bool flag)
Sets the flag for the estimation of the encoder step (scale in Y).
Definition decl_metric_calibration_configuration.hpp:271
void SetExtrinsicCalibrationModel(ExtrinsicCalibrationModel model) noexcept
Sets the extrinsic calibration model.
Definition decl_metric_calibration_configuration.hpp:237
void SetHomographyCalculated(bool flag) noexcept
Sets the calculate homography flag.
Definition decl_metric_calibration_configuration.hpp:178
static std::unique_ptr< CalibrationConfiguration > CreateExtrinsic(const AQS12Piece &aqs12)
Creates an extrinsic calibration configuration object.
Definition decl_metric_calibration_configuration.hpp:139
void * Handle() const noexcept
Returns C-API style handle to Node Object.
Definition decl_metric_calibration_configuration.hpp:313
cvbbool_t ReleaseObject(OBJ &Object)
Namespace for metric calibration.
Definition decl_metric_aqs12_calibration_piece.hpp:13
Namespace for the Foundation package.
Definition decl_metric_aqs12_calibration_piece.hpp:11
Root namespace for the Image Manager interface.
Definition c_bayer_to_rgb.h:17