IDS peak ICV v1.3.0
Loading...
Searching...
No Matches
CameraCalibration.cs
Go to the documentation of this file.
1using System.Runtime.InteropServices;
3
5
26{
27 private readonly CalibrationPlate _calibrationPlate;
28
36 public CameraCalibration(CalibrationPlate calibrationPlate)
37 {
38 _calibrationPlate = calibrationPlate;
39 }
40
80 {
81 IntPtr[] cImages = images.Select(image => image._handle.DangerousGetHandle()).ToArray();
82
83 var calibrationResultHandle = new CalibrationResult.Handle();
84
85 DllHelper.ExecuteAndMapReturnCodes(() =>
86 CInterface.peak_icv_Calibration_Process(_calibrationPlate._handle, cImages, (uint) images.Count,
87 ref calibrationResultHandle));
88
89 return new CalibrationResult(calibrationResultHandle);
90 }
91
92 private static class CInterface
93 {
94 [DllImport(Global.LibraryName, CallingConvention = Global.CallingConvention)]
95 public static extern Backend.Types.peak_icv_status peak_icv_Calibration_Process(
96 CalibrationPlate.Handle input_calibration_plate,
97 IntPtr[] input_images,
98 nuint num_input_images,
99 ref CalibrationResult.Handle output_calibration_result);
100 }
101}
Calibration plate representation holding the world coordinates of the reference points on a calibrati...
Camera calibration representation holding the logic to compute intrinsic and extrinsic parameters.
CameraCalibration(CalibrationPlate calibrationPlate)
Constructs a CameraCalibration with the given calibration plate.
CalibrationResult Process(DisposableList< Image > images)
Calculates intrinsic and extrinsic parameters.
A list that automatically calls IDisposable.Dispose on all its elements when disposed.