1from __future__
import annotations
4from typing
import Any, cast
8from ids_peak_icv
import lib_loader
19 Represents the calibration parameters, which include intrinsic and extrinsic
22 @ingroup ids_peak_icv_python_calibration
23 @since ids_peak_icv 1.1
26 def __init__(self, *args: Any, **kwargs: Any) ->
None:
29 In order to create CalibrationParameters, please refer to the classmethods.
31 @since ids_peak_icv 1.1
34 if "_parameters" in kwargs:
35 parameters = kwargs[
"_parameters"]
38 elif "_extrinsic_parameters" in kwargs
and "_intrinsic_parameters" in kwargs:
45 f
"{self.__class__.__name__} shall not be initialized directly. Use class methods."
52 Creates an instance of CalibrationParameters from a file.
54 @param file_path: An existing file path to a JSON file containing the calibration parameters.
56 @exception IOException: If the given file_path does not exist, or the permissions are not sufficient
58 @exception CorruptedException: If the file content is corrupted.
60 @return A new instance of CalibrationParameters
62 @since ids_peak_icv 1.1
64 c_file_path = file_path.encode(
'utf-8')
67 execute_and_map_return_codes(
68 lib_loader.dll().peak_icv_CalibrationParameters_CreateFromFile,
69 ctypes.pointer(parameters), ctypes.sizeof(parameters),
70 ctypes.c_char_p(c_file_path)
77 extrinsic_parameters: ExtrinsicParameters) -> CalibrationParameters:
80 Creates an instance of CalibrationParameters using intrinsic and extrinsic parameters.
82 @param intrinsic_parameters: The intrinsic camera parameters.
83 @param extrinsic_parameters: The extrinsic camera parameters.
85 @return A new instance of CalibrationParameters
87 @since ids_peak_icv 1.1
90 _intrinsic_parameters=intrinsic_parameters,
91 _extrinsic_parameters=extrinsic_parameters
98 Creates an instance of CalibrationParameters from binary data.
100 @param binary: A NumPy array containing the binary representation of calibration parameters.
102 @return A new instance of CalibrationParameters
104 @exception CorruptedException: If the binary calibration parameters are corrupted.
106 @since ids_peak_icv 1.1
108 if binary.dtype != np.uint8:
111 is_valid = ctypes.c_bool(
False)
114 execute_and_map_return_codes(
115 lib_loader.dll().peak_icv_ValidateBinary,
116 binary.ctypes.data_as(ctypes.POINTER(ctypes.c_uint8)), size,
117 ctypes.pointer(is_valid)
120 if not is_valid.value:
124 execute_and_map_return_codes(
125 lib_loader.dll().peak_icv_CalibrationParameters_CreateFromBinary,
126 binary.ctypes.data_as(ctypes.POINTER(ctypes.c_uint8)), size,
127 ctypes.pointer(calibration_parameters), ctypes.sizeof(calibration_parameters)
135 Converts the CalibrationParameters instance to a binary representation.
137 @return A NumPy array containing the binary data.
139 @since ids_peak_icv 1.1
147 binary_size = ctypes.c_size_t()
148 execute_and_map_return_codes(
149 lib_loader.dll().peak_icv_CalibrationParameters_ToBinaryGetSizeInBytes,
150 ctypes.sizeof(calibration_parameters), ctypes.pointer(binary_size)
152 data = np.zeros(binary_size.value, dtype=np.uint8)
154 execute_and_map_return_codes(
155 lib_loader.dll().peak_icv_CalibrationParameters_ToBinary,
156 calibration_parameters, ctypes.sizeof(calibration_parameters),
157 data.ctypes.data_as(ctypes.POINTER(ctypes.c_uint8)), binary_size
166 Retrieves the intrinsic parameters of the calibration.
168 @return The intrinsic camera parameters.
170 @since ids_peak_icv 1.1
178 Retrieves the extrinsic parameters of the calibration.
180 @return The extrinsic camera parameters.
182 @since ids_peak_icv 1.1
186 @extrinsic_parameters.setter
190 Sets the extrinsic parameters of the calibration.
192 @param extrinsic_parameters: The extrinsic camera parameters.
194 @since ids_peak_icv 1.2
198 def save(self, file_path: str) ->
None:
201 Saves the calibration parameters to a file.
203 @param file_path: The path where the parameters should be saved.
205 @exception IOException: If the file cannot be saved or permissions are insufficient.
207 @since ids_peak_icv 1.1
209 c_file_path = file_path.encode(
'utf-8')
216 execute_and_map_return_codes(
217 lib_loader.dll().peak_icv_CalibrationParameters_SaveToFile,
218 parameters, ctypes.sizeof(parameters),
219 ctypes.c_char_p(c_file_path)
225 Compares two CalibrationParameters instances for equality.
227 @param other: Another instance to compare.
229 @return True if both instances are equal, False otherwise.
231 @since ids_peak_icv 1.1
234 if not isinstance(other, CalibrationParameters):
Represents the calibration parameters, which include intrinsic and extrinsic parameters.
CalibrationParameters create_from_parameters(cls, IntrinsicParameters intrinsic_parameters, ExtrinsicParameters extrinsic_parameters)
Creates an instance of CalibrationParameters using intrinsic and extrinsic parameters.
ExtrinsicParameters _extrinsic_parameters
None extrinsic_parameters(self, ExtrinsicParameters extrinsic_parameters)
Sets the extrinsic parameters of the calibration.
None __init__(self, *Any args, **Any kwargs)
In order to create CalibrationParameters, please refer to the classmethods.
None save(self, str file_path)
Saves the calibration parameters to a file.
IntrinsicParameters intrinsic_parameters
bool __eq__(self, object other)
Compares two CalibrationParameters instances for equality.
CalibrationParameters create_from_file(cls, str file_path)
Creates an instance of CalibrationParameters from a file.
ExtrinsicParameters extrinsic_parameters
IntrinsicParameters intrinsic_parameters(self)
Retrieves the intrinsic parameters of the calibration.
ExtrinsicParameters extrinsic_parameters(self)
Retrieves the extrinsic parameters of the calibration.
CalibrationParameters create_from_binary(cls, np.ndarray binary)
Creates an instance of CalibrationParameters from binary data.
np.ndarray to_binary(self)
Converts the CalibrationParameters instance to a binary representation.
Class for handling extrinsic parameters related to camera calibration.
Class for intrinsic parameters.
Thrown when input data or a file is malformed, unreadable, or otherwise corrupted.
Thrown when input parameters do not match the expected conditions.
Thrown when an operation cannot be performed due to logical constraints.