111 Performs an optional HDR calibration step.
113 Calibration estimates camera response characteristics and may
114 reduce processing time when calling :meth:`process`.
117 Images of the same scene with different exposure settings.
120 @since ids_peak_icv 1.2
122 if not isinstance(images, np.ndarray):
124 "Parameter images has to be a numpy array of ids_peak_icv or ids_peak_ipl images.")
128 _images.append(_check_and_get_icv_image(image))
130 image_handles = create_array(peak_icv_image_handle, len(_images))
131 transform(_images, image_handles,
lambda image: image._handle)
133 execute_and_map_return_codes(
134 lib_loader.dll().peak_icv_HDR_Calibrate,
137 ctypes.c_size_t(len(image_handles)),
140 def process(self, images: ImageArray) -> Image:
143 Generates an HDR image from the specified input images.
145 If the HDR object was not explicitly calibrated using
146 :meth:`calibrate`, calibration is performed implicitly.
149 Images of the same scene with different exposure settings.
150 All input images must contain exposure time metadata.
154 The resulting HDR image.
156 @since ids_peak_icv 1.2
158 if not isinstance(images, np.ndarray):
160 "Parameter images has to be a numpy array of ids_peak_icv images.")
164 _images.append(_check_and_get_icv_image(image))
166 image_handles = create_array(peak_icv_image_handle, len(images))
167 transform(images, image_handles,
lambda image: image._handle)
170 output_pixel_format = ctypes.c_uint()
171 execute_and_map_return_codes(
172 lib_loader.dll().peak_icv_HDR_Process_GetOutputPixelFormat,
174 ctypes.c_uint(images[0].pixel_format.value),
175 ctypes.pointer(output_pixel_format),
178 output_image = Image.create_from_pixel_format_and_size(
180 Size(images[0].width, images[0].height),
183 execute_and_map_return_codes(
184 lib_loader.dll().peak_icv_HDR_Process,
187 ctypes.c_size_t(len(image_handles)),
188 output_image._handle,