21#include <peak_icv_c/algorithms/calibration/peak_icv_calibration_view.h>
124 friend peak::common::detail::BackendAccessor<CalibrationView>;
127 explicit CalibrationView(peak_icv_calibration_view_handle calibrationViewHandle);
131 peak_icv_calibration_view_handle m_calibrationViewHandle{};
134inline CalibrationView::CalibrationView()
137 return PEAK_ICV_C_ABI_PREFIX peak_icv_Calibration_View_Create(&m_calibrationViewHandle);
141inline CalibrationView::CalibrationView(peak_icv_calibration_view_handle calibrationViewHandle)
142 : m_calibrationViewHandle(calibrationViewHandle)
147 if (m_calibrationViewHandle !=
nullptr)
149 PEAK_ICV_C_ABI_PREFIX peak_icv_Calibration_View_Destroy(m_calibrationViewHandle);
156 return PEAK_ICV_C_ABI_PREFIX peak_icv_Calibration_View_IncreaseUseCount(other.m_calibrationViewHandle);
158 m_calibrationViewHandle = other.m_calibrationViewHandle;
162 : m_calibrationViewHandle(other.m_calibrationViewHandle)
164 other.m_calibrationViewHandle =
nullptr;
174 if (m_calibrationViewHandle !=
nullptr)
177 return PEAK_ICV_C_ABI_PREFIX peak_icv_Calibration_View_Destroy(m_calibrationViewHandle);
182 return PEAK_ICV_C_ABI_PREFIX peak_icv_Calibration_View_IncreaseUseCount(other.m_calibrationViewHandle);
184 m_calibrationViewHandle = other.m_calibrationViewHandle;
195 if (m_calibrationViewHandle !=
nullptr)
198 return PEAK_ICV_C_ABI_PREFIX peak_icv_Calibration_View_Destroy(m_calibrationViewHandle);
202 m_calibrationViewHandle = other.m_calibrationViewHandle;
203 other.m_calibrationViewHandle =
nullptr;
209 return m_calibrationViewHandle;
214 return &m_calibrationViewHandle;
219 size_t reprojectionErrorsCount{};
221 return PEAK_ICV_C_ABI_PREFIX peak_icv_Calibration_View_GetReprojectionErrors_GetCount(
222 m_calibrationViewHandle, &reprojectionErrorsCount);
225 std::vector<peak_icv_reprojection_error> cReprojectionErrors(reprojectionErrorsCount);
228 return PEAK_ICV_C_ABI_PREFIX peak_icv_Calibration_View_GetReprojectionErrors(
229 m_calibrationViewHandle, cReprojectionErrors.data(), reprojectionErrorsCount);
232 std::vector<ReprojectionError> reprojectionErrors;
233 reprojectionErrors.reserve(reprojectionErrorsCount);
235 std::transform(cReprojectionErrors.begin(), cReprojectionErrors.end(), std::back_inserter(reprojectionErrors),
237 return reprojectionError;
240 return reprojectionErrors;
245 peak_icv_extrinsic_parameters extrinsicParameters{};
247 return PEAK_ICV_C_ABI_PREFIX peak_icv_Calibration_View_GetExtrinsicParameters(
248 m_calibrationViewHandle, &extrinsicParameters,
sizeof(extrinsicParameters));
250 return peak::common::detail::BackendAccessor<ExtrinsicParameters>::CreateInstance(extrinsicParameters);
256 auto* polygonHandle = peak::common::detail::BackendAccessor<PolygonF>::BackendHandle(polygonF);
259 return PEAK_ICV_C_ABI_PREFIX peak_icv_Calibration_View_GetConvexHull(m_calibrationViewHandle, &polygonHandle);
262 return peak::common::detail::BackendAccessor<PolygonF>::CreateInstance(polygonHandle);
267 peak_icv_coordinate_system coordinateSystem{};
269 return PEAK_ICV_C_ABI_PREFIX peak_icv_Calibration_View_GetCoordinateSystem(m_calibrationViewHandle, &coordinateSystem);
272 return peak::common::detail::BackendAccessor<CoordinateSystem>::CreateInstance(coordinateSystem);
A polygon is a two-dimensional geometric shape that is made up of a finite number of straight line se...
Class for holding the extrinsic result for one image of camera calibration and also the reprojection ...
std::vector< ReprojectionError > GetReprojectionErrors() const
Provides the reprojection errors for every marker in the view.
CoordinateSystem GetCoordinateSystem() const
Provides the coordinate system of the calibration view that was projected into the image plane....
~CalibrationView() override
ExtrinsicParameters GetExtrinsicParameters() const
Provides the extrinsic parameters for the view.
PolygonF GetConvexHull() const
Provides the convex hull of the found calibration pattern in the view.
CalibrationView & operator=(const CalibrationView &other)
Represents the coordinate system of a calibration view projected into the image plane....
This class stores and provides access to the extrinsic parameters, which include the translation,...
Class to represent the reprojection error in a calibration view.
void ExecuteAndMapReturnCodes(const CallableType &callableObject)
peak::common::detail::c_type_of_t< Type > * handle_of_t