17#include <peak_icv_c/algorithms/transformations/peak_icv_undistortion.h>
254 friend peak::common::detail::BackendAccessor<Undistortion>;
258 peak_icv_undistortion_handle m_handle{};
259 peak_icv_intrinsic_parameters m_newintrinsicParameters{};
265 return PEAK_ICV_C_ABI_PREFIX peak_icv_Transform_Undistortion_Create(&m_handle,
266 peak::common::detail::BackendAccessor<IntrinsicParameters>::CreateCType(intrinsicParameters), &m_newintrinsicParameters);
276 return PEAK_ICV_C_ABI_PREFIX peak_icv_Transform_Undistortion_Create_With_Image_CaptureInformation(&m_handle,
277 peak::common::detail::BackendAccessor<IntrinsicParameters>::CreateCType(intrinsicParameters), captureInformation,
278 sizeof(peak_icv_capture_information), &m_newintrinsicParameters);
285 return PEAK_ICV_C_ABI_PREFIX peak_icv_Transform_Undistortion_Create(&m_handle,
286 peak::common::detail::BackendAccessor<IntrinsicParameters>::CreateCType(calibrationParameters.
GetIntrinsicParameters()),
287 &m_newintrinsicParameters);
297 return PEAK_ICV_C_ABI_PREFIX peak_icv_Transform_Undistortion_Create_With_Image_CaptureInformation(&m_handle,
298 peak::common::detail::BackendAccessor<IntrinsicParameters>::CreateCType(calibrationParameters.
GetIntrinsicParameters()),
299 captureInformation,
sizeof(peak_icv_capture_information), &m_newintrinsicParameters);
306 return PEAK_ICV_C_ABI_PREFIX peak_icv_Transform_Undistortion_Create(&m_handle,
307 peak::common::detail::BackendAccessor<IntrinsicParameters>::CreateCType(
309 &m_newintrinsicParameters);
319 return PEAK_ICV_C_ABI_PREFIX peak_icv_Transform_Undistortion_Create_With_Image_CaptureInformation(&m_handle,
320 peak::common::detail::BackendAccessor<IntrinsicParameters>::CreateCType(
322 captureInformation,
sizeof(peak_icv_capture_information), &m_newintrinsicParameters);
328 if (m_handle != other.m_handle)
331 return PEAK_ICV_C_ABI_PREFIX peak_icv_Transform_Undistortion_IncreaseUseCount(other.m_handle);
333 m_handle = other.m_handle;
334 m_newintrinsicParameters = other.m_newintrinsicParameters;
340 if (m_handle != other.m_handle)
342 m_handle = other.m_handle;
343 other.m_handle =
nullptr;
345 m_newintrinsicParameters = other.m_newintrinsicParameters;
351 if (m_handle !=
nullptr)
353 PEAK_ICV_C_ABI_PREFIX peak_icv_Transform_Undistortion_Destroy(m_handle);
359 if (m_handle != other.m_handle)
361 if (m_handle !=
nullptr)
364 return PEAK_ICV_C_ABI_PREFIX peak_icv_Transform_Undistortion_Destroy(m_handle);
369 return PEAK_ICV_C_ABI_PREFIX peak_icv_Transform_Undistortion_IncreaseUseCount(other.m_handle);
371 m_handle = other.m_handle;
372 m_newintrinsicParameters = other.m_newintrinsicParameters;
380 if (m_handle != other.m_handle)
382 if (m_handle !=
nullptr)
385 return PEAK_ICV_C_ABI_PREFIX peak_icv_Transform_Undistortion_Destroy(m_handle);
389 m_handle = other.m_handle;
390 other.m_handle =
nullptr;
392 m_newintrinsicParameters = other.m_newintrinsicParameters;
400 auto*
const inputImageHandle = peak::common::detail::BackendAccessor<Image>::BackendHandle(image);
403 auto*
const outputImageHandle = peak::common::detail::BackendAccessor<Image>::BackendHandle(outputImage);
406 return PEAK_ICV_C_ABI_PREFIX peak_icv_Transform_Undistortion_Process(m_handle, inputImageHandle, outputImageHandle);
409 return { outputImage, peak::common::detail::BackendAccessor<IntrinsicParameters>::CreateInstance(m_newintrinsicParameters) };
414 peak_icv_interpolation interpolation;
417 return PEAK_ICV_C_ABI_PREFIX peak_icv_Transform_Undistortion_GetInterpolation(m_handle, &interpolation);
426 return PEAK_ICV_C_ABI_PREFIX peak_icv_Transform_Undistortion_SetInterpolation(
427 m_handle,
static_cast<peak_icv_interpolation
>(interpolation));
For detailed information about the use of ids_peak_icv Image refer to the Image Guide.
peak::common::Size GetSize() const
Provides the size of the image.
peak::common::PixelFormat GetPixelFormat() const
Provides the pixel format of the image.
Holds a complete set of camera calibration parameters, including both intrinsic and extrinsic data.
IntrinsicParameters GetIntrinsicParameters() const
Retrieves the intrinsic camera parameters.
Class for holding the results of a camera calibration.
CalibrationParameters GetCalibrationParameters() const
Extract the calibration parameters from a calibration result. The calibration parameters contain only...
The intrinsic parameters contain the necessary information to use the camera calibration.
Class for undistorting an image.
void SetInterpolation(Interpolation interpolation)
Sets the interpolation method for the undistortion transformation.
Undistortion & operator=(const Undistortion &other)
UndistortedImage Process(const Image &image) const
Applies the undistortion on the given image and returns the undistorted image.
Undistortion(const IntrinsicParameters &intrinsicParameters)
Creates an instance of class undistortion based on the given intrinsicParameters.
Interpolation GetInterpolation() const
Provides the current interpolation algorithm used by the undistortion.
peak_icv_capture_information CreateCCaptureInformationFromMetadata(const peak::common::Metadata &metadata)
void ExecuteAndMapReturnCodes(const CallableType &callableObject)
peak::common::detail::c_type_of_t< Type > * handle_of_t