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)); })
46 class CalibrationConfiguration final
88 None = CExports::CVMETM_None,
108 HandleGuard<CalibrationConfiguration> handle_;
123 auto calConfig = Internal::DoResCallObjectOut<CalibrationConfiguration>([&](
void *&handle) {
124 return CVB_CALL_CAPI(CVMAQS12CreateInstrinsicCalConfig(
131 calConfig->SetEstimateEncoderStep(
true);
147 auto calConfig = Internal::DoResCallObjectOut<CalibrationConfiguration>([&](
void *&handle) {
148 return CVB_CALL_CAPI(
149 CVMAQS12CreateExtrinsicCalConfig(
reinterpret_cast<const CExports::CVC3DPointD *
>(aqs12.
Points().data()),
155 calConfig->SetEstimateEncoderStep(
true);
165 CExports::CVC3DPointD points[12] = {0};
166 double topBasePlaneDistance = 0.0;
168 CVMAQS12CalConfigGetPointsAndTopBasePlaneDistance(handle_.Handle(), points, topBasePlaneDistance));
171 auto from =
reinterpret_cast<const CExports::CVC3DVector *
>(points);
174 return AQS12Piece(pointsAqs12, topBasePlaneDistance);
187 CVMAQS12CalConfigSetCalculateHomography(handle_.Handle(),
static_cast<CExports::cvbbool_t
>(flag)));
196 return Internal::DoResCallValueOut<CExports::cvbbool_t>([&](CExports::cvbbool_t &flag) {
197 return CVB_CALL_CAPI(CVMAQS12CalConfigGetCalculateHomography(handle_.Handle(), flag));
245 Internal::DoResCall([&]() {
246 return CVB_CALL_CAPI(CVMAQS12CalConfigSetExtrinsicTransformationModel(
247 handle_.Handle(),
static_cast<CExports::CVMExtrinsicTransformationModel
>(model)));
257 CExports::CVMExtrinsicTransformationModel model = CExports::CVMETM_None;
258 Internal::DoResCall([&]() {
259 return CVB_CALL_CAPI(CVMAQS12CalConfigGetExtrinsicTransformationModel(handle_.Handle(), model));
279 Internal::DoResCall([&]() {
280 return CVB_CALL_CAPI(
281 CVMAQS12CalConfigSetCalculateEncoderStep(handle_.Handle(),
static_cast<CExports::cvbbool_t
>(flag)));
291 CExports::cvbbool_t flag =
static_cast<CExports::cvbbool_t
>(
true);
293 [&]() {
return CVB_CALL_CAPI(CVMAQS12CalConfigGetCalculateEncoderStep(handle_.Handle(), flag)); });
295 return static_cast<bool>(flag);
312 return std::make_unique<CalibrationConfiguration>(
std::move(guard), PrivateTag{});
321 return handle_.Handle();
332 using namespace Metric;
Object to collect all input parameters for the AQS12 calibration piece.
Definition decl_metric_aqs12_calibration_piece.hpp:28
double TopBasePlaneDistance() const noexcept
Gets the distance between the top and base plane.
Definition decl_metric_aqs12_calibration_piece.hpp:56
const std::array< Point3D< double >, 12 > & Points() const noexcept
Gets array with AQS12 points.
Definition decl_metric_aqs12_calibration_piece.hpp:46
Calibration configuration object.
Definition decl_metric_calibration_configuration.hpp:47
ExtrinsicCalibrationModel
Enum for extrinsic calibration model.
Definition decl_metric_calibration_configuration.hpp:86
@ SpecificTransformationParameters
Transformation parameters like rotation, scale and shear are estimated (recommended).
Definition decl_metric_calibration_configuration.hpp:99
@ AffineMatrix
Elements of affine matrix m11,..., m33 are estimated.
Definition decl_metric_calibration_configuration.hpp:93
@ None
Extrinsic transformation will not be estimated.
Definition decl_metric_calibration_configuration.hpp:88
bool IsCorrectionOfLaserPlaneInclinationCalculated() const noexcept
Gets the flag for the calculation of the correction for the laser plane inclination.
Definition decl_metric_calibration_configuration.hpp:231
AQS12Piece Aqs12Piece() const noexcept
Gets the AQS12 piece.
Definition decl_metric_calibration_configuration.hpp:163
bool IsEncoderStepEstimated() const noexcept
Gets the flag for the estimation of the encoder step (scale in Y).
Definition decl_metric_calibration_configuration.hpp:289
bool IsHomographyCalculated() const noexcept
Gets the calculate homography flag.
Definition decl_metric_calibration_configuration.hpp:194
static std::unique_ptr< CalibrationConfiguration > Create(const AQS12Piece &aqs12)
Creates a calibration configuration object.
Definition decl_metric_calibration_configuration.hpp:121
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:214
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:307
ExtrinsicCalibrationModel GetExtrinsicCalibrationModel() const noexcept
Gets the extrinsic calibration model.
Definition decl_metric_calibration_configuration.hpp:255
void SetEstimateEncoderStep(bool flag)
Sets the flag for the estimation of the encoder step (scale in Y).
Definition decl_metric_calibration_configuration.hpp:277
void SetExtrinsicCalibrationModel(ExtrinsicCalibrationModel model) noexcept
Sets the extrinsic calibration model.
Definition decl_metric_calibration_configuration.hpp:243
void SetHomographyCalculated(bool flag) noexcept
Sets the calculate homography flag.
Definition decl_metric_calibration_configuration.hpp:184
static std::unique_ptr< CalibrationConfiguration > CreateExtrinsic(const AQS12Piece &aqs12)
Creates an extrinsic calibration configuration object.
Definition decl_metric_calibration_configuration.hpp:145
void * Handle() const noexcept
Returns C-API style handle to Node Object.
Definition decl_metric_calibration_configuration.hpp:319
cvbbool_t ReleaseObject(OBJ &Object)
Namespace for metric calibration.
Definition decl_metric_aqs12_calibration_piece.hpp:19
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