20#include <peak_icv_c/algorithms/calibration/peak_icv_camera_calibration.h>
108 PEAK_ICV_NO_DISCARD std::vector<CalibrationView>
GetViews()
const;
143 friend peak::common::detail::BackendAccessor<CalibrationResult>;
146 explicit CalibrationResult(peak_icv_calibration_result_handle calibrationResultHandle);
150 peak_icv_calibration_result_handle m_calibrationResultHandle{};
153inline CalibrationResult::CalibrationResult()
156 return PEAK_ICV_C_ABI_PREFIX peak_icv_Calibration_Result_Create(&m_calibrationResultHandle);
162 return m_calibrationResultHandle;
167 return &m_calibrationResultHandle;
170inline CalibrationResult::CalibrationResult(peak_icv_calibration_result_handle calibrationResultHandle)
171 : m_calibrationResultHandle{ calibrationResultHandle }
177 return PEAK_ICV_C_ABI_PREFIX peak_icv_Calibration_Result_IncreaseUseCount(other.m_calibrationResultHandle);
179 m_calibrationResultHandle = other.m_calibrationResultHandle;
184 m_calibrationResultHandle = other.m_calibrationResultHandle;
185 other.m_calibrationResultHandle =
nullptr;
190 if (m_calibrationResultHandle != other.m_calibrationResultHandle)
192 if (m_calibrationResultHandle !=
nullptr)
195 return PEAK_ICV_C_ABI_PREFIX peak_icv_Calibration_Result_Destroy(m_calibrationResultHandle);
200 return PEAK_ICV_C_ABI_PREFIX peak_icv_Calibration_Result_IncreaseUseCount(other.m_calibrationResultHandle);
202 m_calibrationResultHandle = other.m_calibrationResultHandle;
210 if (m_calibrationResultHandle != other.m_calibrationResultHandle)
212 if (m_calibrationResultHandle !=
nullptr)
215 return PEAK_ICV_C_ABI_PREFIX peak_icv_Calibration_Result_Destroy(m_calibrationResultHandle);
219 m_calibrationResultHandle = other.m_calibrationResultHandle;
220 other.m_calibrationResultHandle =
nullptr;
228 if (m_calibrationResultHandle !=
nullptr)
230 PEAK_ICV_C_ABI_PREFIX peak_icv_Calibration_Result_Destroy(m_calibrationResultHandle);
234inline CalibrationResult::CalibrationResult(
const std::string& filePath)
237 return PEAK_ICV_C_ABI_PREFIX peak_icv_Calibration_Result_CreateFromFile(&m_calibrationResultHandle, filePath.c_str());
243 double meanReprojectionError{};
246 return PEAK_ICV_C_ABI_PREFIX peak_icv_Calibration_Result_GetMeanReprojectionError(
247 m_calibrationResultHandle, &meanReprojectionError);
249 return meanReprojectionError;
256 return PEAK_ICV_C_ABI_PREFIX peak_icv_Calibration_Result_GetCalibrationViews_GetCount(m_calibrationResultHandle, &numViews);
259 std::vector<peak_icv_calibration_view_handle> viewHandles(numViews);
261 return PEAK_ICV_C_ABI_PREFIX peak_icv_Calibration_View_Array_Create(viewHandles.data(), viewHandles.size());
265 return PEAK_ICV_C_ABI_PREFIX peak_icv_Calibration_Result_GetCalibrationViews(
266 m_calibrationResultHandle, viewHandles.data(), viewHandles.size());
269 return peak::common::detail::BackendAccessor<CalibrationView>::CreateInstances(viewHandles);
274 peak_icv_calibration_parameters calibrationParameters{};
277 return PEAK_ICV_C_ABI_PREFIX peak_icv_Calibration_Result_ToParameters(m_calibrationResultHandle, &calibrationParameters);
285 return GetCalibrationParameters();
Holds a complete set of camera calibration parameters, including both intrinsic and extrinsic data.
Class for holding the results of a camera calibration.
~CalibrationResult() override
double GetMeanReprojectionError() const
Retrieves the mean reprojection error from calibration result.
CalibrationResult & operator=(const CalibrationResult &other)
std::vector< CalibrationView > GetViews() const
Provides a vector of CalibrationView.
CalibrationParameters GetCalibrationParameters() const
Extract the calibration parameters from a calibration result. The calibration parameters contain only...
void ExecuteAndMapReturnCodes(const CallableType &callableObject)
peak::common::detail::c_type_of_t< Type > * handle_of_t